From be68314c3a1c7e0f5d797539305d791641e3fb94 Mon Sep 17 00:00:00 2001 From: Applevangelist Date: Mon, 23 Jan 2023 17:11:18 +0100 Subject: [PATCH] #CONTROLLABLE * Added CommandActivateACLS() * Added CommandDeactivateACLS() --- .../Moose/Wrapper/Controllable.lua | 127 +++++++++--------- 1 file changed, 67 insertions(+), 60 deletions(-) diff --git a/Moose Development/Moose/Wrapper/Controllable.lua b/Moose Development/Moose/Wrapper/Controllable.lua index a7c29b626..0c743259b 100644 --- a/Moose Development/Moose/Wrapper/Controllable.lua +++ b/Moose Development/Moose/Wrapper/Controllable.lua @@ -668,12 +668,61 @@ function CONTROLLABLE:CommandActivateBeacon( Type, System, Frequency, UnitID, Ch return self end +--- Activate ACLS system of the CONTROLLABLE. The controllable should be an aircraft carrier! Also needs Link4 to work. +-- @param #CONTROLLABLE self +-- @param #number UnitID (Optional) The DCS UNIT ID of the unit the ACLS system is attached to. Defaults to the UNIT itself. +-- @param #string Name (Optional) Name of the ACLS Beacon +-- @param #number Delay (Optional) Delay in seconds before the ICLS is activated. +-- @return #CONTROLLABLE self +function CONTROLLABLE:CommandActivateACLS( UnitID, Name, Delay ) + + -- Command to activate ACLS system. + local CommandActivateACLS= { + id = 'ActivateACLS', + params = { + unitId = UnitID or self:GetID(), + name = Name or "ACL", + } +} + + self:T({CommandActivateACLS}) + + if Delay and Delay > 0 then + SCHEDULER:New( nil, self.CommandActivateACLS, { self, UnitID, Name }, Delay ) + else + self:SetCommand( CommandActivateACLS ) + end + + return self +end + +--- Deactivate ACLS system of the CONTROLLABLE. The controllable should be an aircraft carrier! +-- @param #CONTROLLABLE self +-- @param #number Delay (Optional) Delay in seconds before the ICLS is deactivated. +-- @return #CONTROLLABLE self +function CONTROLLABLE:CommandDeactivateACLS( Delay ) + + -- Command to activate ACLS system. + local CommandDeactivateACLS= { + id = 'DeactivateACLS', + params = { } +} + + if Delay and Delay > 0 then + SCHEDULER:New( nil, self.CommandDeactivateACLS, { self }, Delay ) + else + self:SetCommand( CommandDeactivateACLS ) + end + + return self +end + --- Activate ICLS system of the CONTROLLABLE. The controllable should be an aircraft carrier! -- @param #CONTROLLABLE self -- @param #number Channel ICLS channel. -- @param #number UnitID The DCS UNIT ID of the unit the ICLS system is attached to. Useful if more units are in one group. -- @param #string Callsign Morse code identification callsign. --- @param #number Delay (Optional) Delay in seconds before the ICLS is deactivated. +-- @param #number Delay (Optional) Delay in seconds before the ICLS is activated. -- @return #CONTROLLABLE self function CONTROLLABLE:CommandActivateICLS( Channel, UnitID, Callsign, Delay ) @@ -683,13 +732,13 @@ function CONTROLLABLE:CommandActivateICLS( Channel, UnitID, Callsign, Delay ) params = { ["type"] = BEACON.Type.ICLS, ["channel"] = Channel, - ["unitId"] = UnitID, + ["unitId"] = UnitID or self:GetID(), ["callsign"] = Callsign, }, } if Delay and Delay > 0 then - SCHEDULER:New( nil, self.CommandActivateICLS, { self }, Delay ) + SCHEDULER:New( nil, self.CommandActivateICLS, { self, Channel, UnitID, Callsign }, Delay ) else self:SetCommand( CommandActivateICLS ) end @@ -699,53 +748,29 @@ end --- Activate LINK4 system of the CONTROLLABLE. The controllable should be an aircraft carrier! -- @param #CONTROLLABLE self --- @param #number Frequency Link4 Frequency in MHz, e.g. 336 --- @param #number UnitID The DCS UNIT ID of the unit the LINK4 system is attached to. Useful if more units are in one group. --- @param #string Callsign Morse code identification callsign. --- @param #number Delay (Optional) Delay in seconds before the LINK4 is deactivated. +-- @param #number Frequency Link4 Frequency in MHz, e.g. 336 (defaults to 336 MHz) +-- @param #number UnitID (Optional) The DCS UNIT ID of the unit the LINK4 system is attached to. Defaults to the UNIT itself. +-- @param #string Callsign (Optional) Morse code identification callsign. +-- @param #number Delay (Optional) Delay in seconds before the LINK4 is activated. -- @return #CONTROLLABLE self function CONTROLLABLE:CommandActivateLink4(Frequency, UnitID, Callsign, Delay) - + + local freq = Frequency or 336 + -- Command to activate Link4 system. local CommandActivateLink4= { id = "ActivateLink4", params= { - ["frequency "] = Frequency*1000, - ["unitId"] = UnitID, - ["name"] = Callsign, + ["frequency "] = freq*1000000, + ["unitId"] = UnitID or self:GetID(), + ["name"] = Callsign or "LNK", } } - + + self:T({CommandActivateLink4}) + if Delay and Delay>0 then - SCHEDULER:New(nil, self.CommandActivateLink4, {self}, Delay) - else - self:SetCommand(CommandActivateLink4) - end - - return self -end - ---- Activate LINK4 system of the CONTROLLABLE. The controllable should be an aircraft carrier! --- @param #CONTROLLABLE self --- @param #number Frequency Link4 Frequency in MHz, e.g. 336 --- @param #number UnitID The DCS UNIT ID of the unit the LINK4 system is attached to. Useful if more units are in one group. --- @param #string Callsign Morse code identification callsign. --- @param #number Delay (Optional) Delay in seconds before the LINK4 is deactivated. --- @return #CONTROLLABLE self -function CONTROLLABLE:CommandActivateLink4(Frequency, UnitID, Callsign, Delay) - - -- Command to activate Link4 system. - local CommandActivateLink4= { - id = "ActivateLink4", - params= { - ["frequency "] = Frequency*1000, - ["unitId"] = UnitID, - ["name"] = Callsign, - } - } - - if Delay and Delay>0 then - SCHEDULER:New(nil, self.CommandActivateLink4, {self}, Delay) + SCHEDULER:New(nil, self.CommandActivateLink4, {self, Frequency, UnitID, Callsign}, Delay) else self:SetCommand(CommandActivateLink4) end @@ -809,24 +834,6 @@ function CONTROLLABLE:CommandDeactivateICLS( Delay ) return self end ---- Deactivate the active Link4 of the CONTROLLABLE. --- @param #CONTROLLABLE self --- @param #number Delay (Optional) Delay in seconds before the Link4 is deactivated. --- @return #CONTROLLABLE self -function CONTROLLABLE:CommandDeactivateLink4(Delay) - - -- Command to deactivate - local CommandDeactivateLink4={id='DeactivateLink4', params={}} - - if Delay and Delay>0 then - SCHEDULER:New(nil, self.CommandDeactivateLink4, {self}, Delay) - else - self:SetCommand(CommandDeactivateLink4) - end - - return self -end - --- Set callsign of the CONTROLLABLE. See [DCS command setCallsign](https://wiki.hoggitworld.com/view/DCS_command_setCallsign) -- @param #CONTROLLABLE self -- @param DCS#CALLSIGN CallName Number corresponding the the callsign identifier you wish this group to be called. @@ -3973,4 +3980,4 @@ function CONTROLLABLE:SetAltitude(Altitude, Keep, AltType) end end return self -end \ No newline at end of file +end