mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Integrate option for Shorad in Mantis
Also, correct some documentation errors
This commit is contained in:
parent
695f204493
commit
e8bfab515c
@ -24,14 +24,14 @@
|
|||||||
|
|
||||||
-------------------------------------------------------------------------
|
-------------------------------------------------------------------------
|
||||||
--- **MANTIS** class, extends @{#Core.Base#BASE}
|
--- **MANTIS** class, extends @{#Core.Base#BASE}
|
||||||
-- @type MANTIS #MANTIS
|
-- @type MANTIS
|
||||||
-- @field #string Classname
|
-- @field #string Classname
|
||||||
-- @field #string name Name of this Mantis
|
-- @field #string name Name of this Mantis
|
||||||
-- @field #string SAM_Templates_Prefix Prefix to build the #GROUP_SET for SAM sites
|
-- @field #string SAM_Templates_Prefix Prefix to build the #SET_GROUP for SAM sites
|
||||||
-- @field @{#Core.Set#GROUP_SET} SAM_Group The SAM #GROUP_SET
|
-- @field @{#Core.Set#SET_GROUP} SAM_Group The SAM #SET_GROUP
|
||||||
-- @field #string EWR_Templates_Prefix Prefix to build the #GROUP_SET for EWR group
|
-- @field #string EWR_Templates_Prefix Prefix to build the #SET_GROUP for EWR group
|
||||||
-- @field @{#Core.Set#GROUP_SET} EWR_Group The EWR #GROUP_SET
|
-- @field @{#Core.Set#SET_GROUP} EWR_Group The EWR #SET_GROUP
|
||||||
-- @field @{#Core.Set#GROUP_SET} Adv_EWR_Group The EWR #GROUP_SET used for advanced mode
|
-- @field @{#Core.Set#SET_GROUP} Adv_EWR_Group The EWR #SET_GROUP used for advanced mode
|
||||||
-- @field #string HQ_Template_CC The ME name of the HQ object
|
-- @field #string HQ_Template_CC The ME name of the HQ object
|
||||||
-- @field @{#Wrapper.Group#GROUP} HQ_CC The #GROUP object of the HQ
|
-- @field @{#Wrapper.Group#GROUP} HQ_CC The #GROUP object of the HQ
|
||||||
-- @field #table SAM_Table Table of SAM sites
|
-- @field #table SAM_Table Table of SAM sites
|
||||||
@ -51,6 +51,9 @@
|
|||||||
-- @field #number adv_state Advanced mode state tracker
|
-- @field #number adv_state Advanced mode state tracker
|
||||||
-- @field #boolean advAwacs Boolean switch to use Awacs as a separate detection stream
|
-- @field #boolean advAwacs Boolean switch to use Awacs as a separate detection stream
|
||||||
-- @field #number awacsrange Detection range of an optional Awacs unit
|
-- @field #number awacsrange Detection range of an optional Awacs unit
|
||||||
|
-- @field @{#Functional.Shorad#SHORAD} Shorad SHORAD Object, if available
|
||||||
|
-- @field #boolean ShoradLink If true, #MANTIS has #SHORAD enabled
|
||||||
|
-- @field #number ShoradTime Timer in seconds, how long #SHORAD will be active after a detection inside of the defense range
|
||||||
-- @extends @{#Core.Base#BASE}
|
-- @extends @{#Core.Base#BASE}
|
||||||
|
|
||||||
|
|
||||||
@ -163,7 +166,10 @@ MANTIS = {
|
|||||||
AWACS_Prefix = "",
|
AWACS_Prefix = "",
|
||||||
advAwacs = false,
|
advAwacs = false,
|
||||||
verbose = false,
|
verbose = false,
|
||||||
awacsrange = 250000
|
awacsrange = 250000,
|
||||||
|
Shorad = nil,
|
||||||
|
ShoradLink = false,
|
||||||
|
ShoradTime = 600,
|
||||||
}
|
}
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -230,6 +236,9 @@ do
|
|||||||
self.Adv_EWR_Group = nil
|
self.Adv_EWR_Group = nil
|
||||||
self.AWACS_Prefix = awacs or nil
|
self.AWACS_Prefix = awacs or nil
|
||||||
self.awacsrange = 250000 --TODO: 250km, User Function to change
|
self.awacsrange = 250000 --TODO: 250km, User Function to change
|
||||||
|
self.Shorad = nil
|
||||||
|
self.ShoradLink = false
|
||||||
|
self.ShoradTime = 600
|
||||||
if type(awacs) == "string" then
|
if type(awacs) == "string" then
|
||||||
self.advAwacs = true
|
self.advAwacs = true
|
||||||
else
|
else
|
||||||
@ -709,6 +718,27 @@ do
|
|||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Function to link up #MANTIS with a #SHORAD installation
|
||||||
|
-- @param #MANTIS self
|
||||||
|
-- @param Functional.Shorad#SHORAD Shorad The #SHORAD object
|
||||||
|
-- @param #number Shoradtime Number of seconds #SHORAD stays active post wake-up
|
||||||
|
function MANTIS:AddShorad(Shorad,Shoradtime)
|
||||||
|
local Shorad = Shorad or nil
|
||||||
|
local ShoradTime = Shoradtime or 600
|
||||||
|
local ShoradLink = true
|
||||||
|
if Shorad:IsInstanceOf("SHORAD") then
|
||||||
|
self.ShoradLink = ShoradLink
|
||||||
|
self.Shorad = Shorad --#SHORAD
|
||||||
|
self.ShoradTime = Shoradtime -- #number
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Function to unlink #MANTIS from a #SHORAD installation
|
||||||
|
-- @param #MANTIS self
|
||||||
|
function MANTIS:RemoveShorad()
|
||||||
|
self.ShoradLink = false
|
||||||
|
end
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- MANTIS main functions
|
-- MANTIS main functions
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
@ -743,8 +773,15 @@ do
|
|||||||
if samgroup:IsAlive() then
|
if samgroup:IsAlive() then
|
||||||
-- switch off SAM
|
-- switch off SAM
|
||||||
samgroup:OptionAlarmStateRed()
|
samgroup:OptionAlarmStateRed()
|
||||||
--samgroup:OptionROEWeaponFree()
|
-- link in to SHORAD if available
|
||||||
--samgroup:SetAIOn()
|
-- TODO Test integration
|
||||||
|
if self.ShoradLink then
|
||||||
|
local Shorad = self.Shorad
|
||||||
|
local radius = self.checkradius
|
||||||
|
local ontime = self.ShoradTime
|
||||||
|
Shorad:WakeUpShorad(name, radius, ontime)
|
||||||
|
end
|
||||||
|
-- debug output
|
||||||
local text = string.format("SAM %s switched to alarm state RED!", name)
|
local text = string.format("SAM %s switched to alarm state RED!", name)
|
||||||
local m=MESSAGE:New(text,10,"MANTIS"):ToAllIf(self.debug)
|
local m=MESSAGE:New(text,10,"MANTIS"):ToAllIf(self.debug)
|
||||||
if self.verbose then env.info(self.lid..text) end
|
if self.verbose then env.info(self.lid..text) end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user