#TARS - Added TARS_SESSION.debugunitsearch = false and F10 search zone draw for debugging

This commit is contained in:
Applevangelist
2026-04-16 12:38:15 +02:00
parent b82b882e02
commit 87d0c4e9d4
+40 -8
View File
@@ -17,6 +17,7 @@
-- @type TARS_SESSION
-- @extends Core.Base#BASE
-- @field #boolean debug Enable debugging in TARS_SESSION.
-- @field #boolean debugunitsearch Enable Target Search Debug.
-- @field Wrapper.Unit#UNIT unit The MOOSE UNIT object for the recon aircraft.
-- @field #string lid Log-line prefix shown in Moose.log entries.
-- @field DCS#Vec3 vec3 World position snapshot taken at session creation.
@@ -57,6 +58,7 @@
-- @field #TARS_SESSION
TARS_SESSION = {}
TARS_SESSION.debug = false
TARS_SESSION.debugunitsearch = false
--- @type TARS
-- @extends Core.Base#BASE
@@ -146,7 +148,7 @@ TARS_SESSION.debug = false
--
-- TARS_Instance.reconTypes["F-16C_50"] = true
-- TARS_Instance.parameters["F-16C_50"] = {
-- minAlt=300, maxAlt=8000, maxRoll=10, maxPitch=15,
-- minAlt=300, maxAlt=8000, maxRoll=10, maxPitch=15, -- Note altitude is AGL!
-- fov=35, duration=300, offset=math.rad(20),
-- name="F-16C with RECCE pod"
-- }
@@ -280,7 +282,7 @@ TARS = {}
-------------------------------------------------
--- @field #string version
TARS.version = "v2.2.1"
TARS.version = "v2.2.2"
--- Active locale.
-- @field #string locale
@@ -356,7 +358,8 @@ TARS.reconTypes = {
-- TODO PER-PLATFORM PARAMETERS
-------------------------------------------------
--- @field #table parameters
--- @type #TARS.parameters
-- @field #table parameters
TARS.parameters = {}
TARS.parameters["F-4E-45MC"] = { minAlt=100, maxAlt=6096, maxRoll=10, maxPitch=15, fov=23, duration=120, offset=math.rad(60), name="RF-4E with KS-87 Forward Oblique Camera" }
@@ -950,12 +953,13 @@ end
function TARS_SESSION:FindTargets()
local unit = self.unit
local vec3 = unit:GetVec3()
local MSL = land.getHeight({ x = vec3.x, y = vec3.z })
local alt = vec3.y - MSL
local params = self.Callback.parameters[self.type]
--local MSL = land.getHeight({ x = vec3.x, y = vec3.z })
--local alt = vec3.y - MSL
local alt = unit:GetAltitude(true)
local params = self.Callback.parameters[self.type] -- #TARS.parameters
local roll = math.abs(math.deg(TARS.getRoll(unit)))
local pitch = math.abs(math.deg(TARS.getPitch(unit)))
local roll = math.abs(TARS.getRoll(unit))
local pitch = math.abs(TARS.getPitch(unit))
local isFlat = roll < params.maxRoll and pitch < params.maxPitch
local radius = params.optimalAlt
@@ -967,6 +971,34 @@ function TARS_SESSION:FindTargets()
coordinate = coordinate:UpdateFromVec3({ x=offset.x, y=MSL, z=offset.z })
self.coordinate = coordinate
if self.debugunitsearch then
-- TODO Search Zone Debug
-- Draw the searczone on the F10 map
local searchzone = self.searchzone or ZONE_RADIUS:New("TARS Debug",coordinate:GetVec2(),radius,true)
if searchzone then
searchzone:UndrawZone()
searchzone:UpdateFromVec2(coordinate:GetVec2(),radius)
self.searchzone = searchzone
searchzone:DrawZone(-1,{0,0,1},1,{0,1,0},.2,2,true)
end
--- TODO Params check and output
if params and unit and unit:IsAlive() then
self:I({Roll=roll,Pitch=pitch,AGL=alt})
if roll > params.maxRoll then
MESSAGE:New(string.format("Roll - NOK out of parameters (%d°)!",roll or 0),9,"PARAM"):ToUnit(unit)
elseif pitch > params.maxPitch then
MESSAGE:New(string.format("Pitch - NOK out of parameters (%d°)!", pitch or 0),9,"PARAM"):ToUnit(unit)
elseif alt < params.minAlt or alt > params.maxAlt then
MESSAGE:New(string.format("AGL - NOK too high or too low (%dm)!", alt or 0),9,"PARAM"):ToUnit(unit)
else
MESSAGE:New("Params - OK!",9,"PARAM"):ToUnit(unit)
end
end
end
local debugunitset
if self.debug == true then
self:I(self.lid.."FindTargets Debug SET_UNIT created")