From d93d0afdf3425577c47fc47b10589a4a40b51d1a Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 30 Jun 2020 00:33:26 +0200 Subject: [PATCH] Ops --- Moose Development/Moose/Ops/FlightGroup.lua | 43 +++++++++++++++++++++ Moose Development/Moose/Ops/NavyGroup.lua | 16 ++++---- Moose Development/Moose/Ops/OpsGroup.lua | 3 -- 3 files changed, 52 insertions(+), 10 deletions(-) diff --git a/Moose Development/Moose/Ops/FlightGroup.lua b/Moose Development/Moose/Ops/FlightGroup.lua index 40c740a02..8d954f327 100644 --- a/Moose Development/Moose/Ops/FlightGroup.lua +++ b/Moose Development/Moose/Ops/FlightGroup.lua @@ -42,6 +42,8 @@ -- @field #table menu F10 radio menu. -- @field #string controlstatus Flight control status. -- @field #boolean ishelo If true, the is a helicopter group. +-- @field #number callsignName Callsign name. +-- @field #number callsignNumber Callsign number. -- -- @extends Ops.OpsGroup#OPSGROUP @@ -1414,6 +1416,11 @@ function FLIGHTGROUP:onafterSpawned(From, Event, To) if self.radioFreqDefault then self:SwitchRadioOn(self.radioFreqDefault, self.radioModuDefault) end + + -- Set callsign. + if self.callsignNameDefault then + self:SwitchCallsign(self.callsignNameDefault, self.callsignNumberDefault) + end -- Update route. self:__UpdateRoute(-0.5) @@ -3712,6 +3719,42 @@ function FLIGHTGROUP:SwitchFormation(Formation) return self end +--- Set default formation. +-- @param #FLIGHTGROUP self +-- @param #number CallsignName Callsign name. +-- @param #number CallsignNumber Callsign number. +-- @return #FLIGHTGROUP self +function FLIGHTGROUP:SetDefaultCallsign(CallsignName, CallsignNumber) + + self.callsignNameDefault=CallsignName + self.callsignNumberDefault=CallsignNumber or 1 + + return self +end + +--- Switch to a specific callsign. +-- @param #FLIGHTGROUP self +-- @param #number CallsignName Callsign name. +-- @param #number CallsignNumber Callsign number. +-- @return #FLIGHTGROUP self +function FLIGHTGROUP:SwitchCallsign(CallsignName, CallsignNumber) + + if self:IsAlive() and CallsignName then + + self.callsignName=CallsignName + self.callsignNumber=CallsignNumber or 1 + + self:I(self.lid..string.format("Switching callsign to %d-%d", self.callsignName, self.callsignNumber)) + + local group=self.group --Wrapper.Group#GROUP + + group:CommandSetCallsign(self.callsignName, self.callsignNumber) + + end + + return self +end + ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- MENU FUNCTIONS diff --git a/Moose Development/Moose/Ops/NavyGroup.lua b/Moose Development/Moose/Ops/NavyGroup.lua index b38ec5d4a..61bd2b40d 100644 --- a/Moose Development/Moose/Ops/NavyGroup.lua +++ b/Moose Development/Moose/Ops/NavyGroup.lua @@ -59,9 +59,10 @@ NAVYGROUP.version="0.0.1" -- TODO list ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --- TODO: Stop and resume route. --- TODO: Add waypoints. --- TODO: Add tasks. +-- TODO: Detour, add temporary waypoint and resume route. +-- DONE: Stop and resume route. +-- DONE: Add waypoints. +-- DONE: Add tasks. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- Constructor @@ -392,10 +393,11 @@ function NAVYGROUP:onafterUpdateRoute(From, Event, To, n, Speed, Depth) --- self:I(self.lid..string.format("No waypoints left")) - - -- TODO: Switch to waypoint 1 - - --self:UpdateRoute(1) + + if #self.waypoints>1 then + self:I(self.lid..string.format("Resuming route at first waypoint")) + self:UpdateRoute(1) + end end diff --git a/Moose Development/Moose/Ops/OpsGroup.lua b/Moose Development/Moose/Ops/OpsGroup.lua index bb6979c23..08e61ef37 100644 --- a/Moose Development/Moose/Ops/OpsGroup.lua +++ b/Moose Development/Moose/Ops/OpsGroup.lua @@ -64,9 +64,6 @@ -- @field #boolean radioOn If true, radio is currently turned on. -- @field Core.RadioQueue#RADIOQUEUE radioQueue Radio queue. -- --- @field #number CallsignName Call sign name. --- @field #number CallsignNumber Call sign number. --- -- @field #boolean eplrsDefault Default EPLRS data link setting. -- @field #boolean eplrs If true, EPLRS data link is on. --