From fe79821474589eaf4ad238e05f27415cf4cedc51 Mon Sep 17 00:00:00 2001 From: FlightControl Date: Tue, 14 Mar 2017 03:36:12 +0100 Subject: [PATCH] Fixing SCHEDULER - TO BE FURTHER STUDIES AND FIXED TASK object should dissapear after nillified. They are hooked to the SCHEDULER... SCHEDULEs should dissapear, but they don't.... To be further studied. --- Moose Development/Moose/Core/Fsm.lua | 16 ++ .../Moose/Core/ScheduleDispatcher.lua | 2 +- .../Moose/Functional/Detection.lua | 244 ++++++++++++------ Moose Development/Moose/Tasking/Task.lua | 28 ++ Moose Development/Moose/Wrapper/Group.lua | 2 +- Moose Development/Moose/Wrapper/Unit.lua | 25 ++ .../l10n/DEFAULT/Moose.lua | 2 +- Moose Mission Setup/Moose.lua | 2 +- ...- A2G Task Dispatching DETECTION_UNITS.lua | 34 +++ ...- A2G Task Dispatching DETECTION_UNITS.miz | Bin 0 -> 54220 bytes 10 files changed, 268 insertions(+), 87 deletions(-) create mode 100644 Moose Test Missions/TAD - Task Dispatching/TAD-120 - A2G Task Dispatching DETECTION_UNITS/TAD-120 - A2G Task Dispatching DETECTION_UNITS.lua create mode 100644 Moose Test Missions/TAD - Task Dispatching/TAD-120 - A2G Task Dispatching DETECTION_UNITS/TAD-120 - A2G Task Dispatching DETECTION_UNITS.miz diff --git a/Moose Development/Moose/Core/Fsm.lua b/Moose Development/Moose/Core/Fsm.lua index 7a39fc64f..38ffcbf02 100644 --- a/Moose Development/Moose/Core/Fsm.lua +++ b/Moose Development/Moose/Core/Fsm.lua @@ -932,6 +932,22 @@ do -- FSM_PROCESS return NewFsm end + + --- Removes an FSM_PROCESS object. + -- @param #FSM_PROCESS self + -- @return #FSM_PROCESS + function FSM_PROCESS:Remove() + self:T( { self:GetClassNameAndID() } ) + + -- Copy Processes + for ProcessID, Process in pairs( self:GetProcesses() ) do + self:E( { Process} ) + Process.fsm:Remove() + Process.fsm = nil + end + + return self + end --- Sets the task of the process. -- @param #FSM_PROCESS self diff --git a/Moose Development/Moose/Core/ScheduleDispatcher.lua b/Moose Development/Moose/Core/ScheduleDispatcher.lua index 81ceaf3f1..a7962e677 100644 --- a/Moose Development/Moose/Core/ScheduleDispatcher.lua +++ b/Moose Development/Moose/Core/ScheduleDispatcher.lua @@ -64,7 +64,7 @@ function SCHEDULEDISPATCHER:AddSchedule( Scheduler, ScheduleFunction, ScheduleAr -- Initialize the ObjectSchedulers array, which is a weakly coupled table. -- If the object used as the key is nil, then the garbage collector will remove the item from the Functions array. - self.ObjectSchedulers = self.ObjectSchedulers or {} -- setmetatable( {}, { __mode = "v" } ) + self.ObjectSchedulers = self.ObjectSchedulers or setmetatable( {}, { __mode = "v" } ) -- or {} if Scheduler.MasterObject then self.ObjectSchedulers[self.CallID] = Scheduler diff --git a/Moose Development/Moose/Functional/Detection.lua b/Moose Development/Moose/Functional/Detection.lua index 5763bc583..ee8141cd9 100644 --- a/Moose Development/Moose/Functional/Detection.lua +++ b/Moose Development/Moose/Functional/Detection.lua @@ -930,6 +930,58 @@ do -- DETECTION_BASE return DetectedItem.FriendliesNearBy or false end + --- Background worker function to determine if there are friendlies nearby ... + -- @param #DETECTION_BASE self + function DETECTION_BASE:ReportFriendliesNearBy( ReportGroupData ) + self:F2() + + local DetectedItem = ReportGroupData.DetectedItem -- Functional.Detection#DETECTION_BASE.DetectedItem + local DetectedSet = ReportGroupData.DetectedItem.Set + local DetectedUnit = DetectedSet:GetFirst() + + DetectedItem.FriendliesNearBy = false + + local SphereSearch = { + id = world.VolumeType.SPHERE, + params = { + point = DetectedUnit:GetVec3(), + radius = 6000, + } + + } + + --- @param Dcs.DCSWrapper.Unit#Unit FoundDCSUnit + -- @param Wrapper.Group#GROUP ReportGroup + -- @param Set#SET_GROUP ReportSetGroup + local FindNearByFriendlies = function( FoundDCSUnit, ReportGroupData ) + + local DetectedItem = ReportGroupData.DetectedItem -- Functional.Detection#DETECTION_BASE.DetectedItem + local DetectedSet = ReportGroupData.DetectedItem.Set + local DetectedUnit = DetectedSet:GetFirst() -- Wrapper.Unit#UNIT + local ReportSetGroup = ReportGroupData.ReportSetGroup + + local EnemyCoalition = DetectedUnit:GetCoalition() + + local FoundUnitCoalition = FoundDCSUnit:getCoalition() + local FoundUnitName = FoundDCSUnit:getName() + local FoundUnitGroupName = FoundDCSUnit:getGroup():getName() + local EnemyUnitName = DetectedUnit:GetName() + local FoundUnitInReportSetGroup = ReportSetGroup:FindGroup( FoundUnitGroupName ) ~= nil + + self:T3( { "Friendlies search:", FoundUnitName, FoundUnitCoalition, EnemyUnitName, EnemyCoalition, FoundUnitInReportSetGroup } ) + + if FoundUnitCoalition ~= EnemyCoalition and FoundUnitInReportSetGroup == false then + DetectedItem.FriendliesNearBy = true + return false + end + + return true + end + + world.searchObjects( Object.Category.UNIT, SphereSearch, FindNearByFriendlies, ReportGroupData ) + + end + end --- Determines if a detected object has already been identified during detection processing. @@ -1193,6 +1245,44 @@ do -- DETECTION_UNITS return self end + + --- Make text documenting the changes of the detected zone. + -- @param #DETECTION_UNITS self + -- @param #DETECTION_UNITS.DetectedItem DetectedItem + -- @return #string The Changes text + function DETECTION_UNITS:GetChangeText( DetectedItem ) + self:F( DetectedItem ) + + local MT = {} + + for ChangeCode, ChangeData in pairs( DetectedItem.Changes ) do + + if ChangeCode == "AU" then + local MTUT = {} + for ChangeUnitType, ChangeUnitCount in pairs( ChangeData ) do + if ChangeUnitType ~= "ItemID" then + MTUT[#MTUT+1] = ChangeUnitCount .. " of " .. ChangeUnitType + end + end + MT[#MT+1] = " New target(s) detected: " .. table.concat( MTUT, ", " ) .. "." + end + + if ChangeCode == "RU" then + local MTUT = {} + for ChangeUnitType, ChangeUnitCount in pairs( ChangeData ) do + if ChangeUnitType ~= "ItemID" then + MTUT[#MTUT+1] = ChangeUnitCount .. " of " .. ChangeUnitType + end + end + MT[#MT+1] = " Invisible or destroyed target(s): " .. table.concat( MTUT, ", " ) .. "." + end + + end + + return table.concat( MT, "\n" ) + + end + --- Create the DetectedItems list from the DetectedObjects table. -- For each DetectedItem, a one field array is created containing the Unit detected. @@ -1201,24 +1291,70 @@ do -- DETECTION_UNITS function DETECTION_UNITS:CreateDetectionSets() self:F2( #self.DetectedObjects ) - self.DetectedItems = {} + -- Loop the current detected items, and check if each object still exists and is detected. + for DetectedItemID, DetectedItem in pairs( self.DetectedItems ) do + + local DetectedItemSet = DetectedItem:GetSet() -- Core.Set#SET_UNIT + local DetectedTypeName = DetectedItem.Type + + for DetectedUnitName, DetectedUnitData in pairs( DetectedItemSet ) do + local DetectedUnit = DetectedUnitData -- Wrapper.Unit#UNIT + + local DetectedObject = nil + if DetectedUnit:IsAlive() then + --self:E(DetectedUnit:GetName()) + DetectedObject = self:GetDetectedObject( DetectedUnit:GetName() ) + end + if DetectedObject then + + -- Yes, the DetectedUnit is still detected or exists. Flag as identified. + self:IdentifyDetectedObject( DetectedObject ) + else + -- There was no DetectedObject, remove DetectedUnit from the Set. + self:AddChangeUnit( DetectedItem, "RU", DetectedUnitName ) + DetectedItemSet:Remove( DetectedUnitName ) + end + end + end + + + -- Now we need to loop through the unidentified detected units and add these... These are all new items. for DetectedUnitName, DetectedObjectData in pairs( self.DetectedObjects ) do - self:T( { "Detected Unit #", DetectedUnitName } ) - - local DetectedUnit = UNIT:FindByName( DetectedUnitName ) -- Wrapper.Unit#UNIT - - if DetectedUnit then - - local DetectedItem = self:AddDetectedItem() - DetectedItem.Type = DetectedObjectData.Type - DetectedItem.Name = DetectedObjectData.Name - DetectedItem.Visible = DetectedObjectData.Visible - DetectedItem.Distance = DetectedObjectData.Distance - DetectedItem.Set:AddUnit( DetectedUnit ) + local DetectedObject = self:GetDetectedObject( DetectedUnitName ) + if DetectedObject then + self:T( { "Detected Unit #", DetectedUnitName } ) + + local DetectedUnit = UNIT:FindByName( DetectedUnitName ) -- Wrapper.Unit#UNIT + + if DetectedUnit then + local DetectedTypeName = DetectedUnit:GetTypeName() + local DetectedItem = self:GetDetectedItem( DetectedUnitName ) + if not DetectedItem then + self:T( "Added new DetectedItem" ) + DetectedItem = self:AddDetectedItem( DetectedUnitName ) + DetectedItem.Type = DetectedUnit:GetTypeName() + DetectedItem.Name = DetectedObjectData.Name + DetectedItem.Visible = DetectedObjectData.Visible + DetectedItem.Distance = DetectedObjectData.Distance + end + + DetectedItem.Set:AddUnit( DetectedUnit ) + self:AddChangeUnit( DetectedItem, "AU", DetectedTypeName ) + end end end + + for DetectedItemID, DetectedItemData in pairs( self.DetectedItems ) do + + local DetectedItem = DetectedItemData -- #DETECTION_BASE.DetectedItem + local DetectedSet = DetectedItem.Set + + self:ReportFriendliesNearBy( { DetectedItem = DetectedItem, ReportSetGroup = self.DetectionSetGroup } ) -- Fill the Friendlies table + --self:NearestFAC( DetectedItem ) + end + end --- Report summary of a DetectedItem using a given numeric index. @@ -1329,14 +1465,6 @@ do -- DETECTION_TYPES for ChangeCode, ChangeData in pairs( DetectedItem.Changes ) do - if ChangeCode == "AI" then - MT[#MT+1] = "Detected targets of new type " .. ChangeData.ItemUnitType .. "." - end - - if ChangeCode == "RI" then - MT[#MT+1] = "No more targets of type " .. ChangeData.ItemUnitType .. " detected." - end - if ChangeCode == "AU" then local MTUT = {} for ChangeUnitType, ChangeUnitCount in pairs( ChangeData ) do @@ -1344,7 +1472,7 @@ do -- DETECTION_TYPES MTUT[#MTUT+1] = ChangeUnitCount .. " of " .. ChangeUnitType end end - MT[#MT+1] = "New target(s) detected: " .. table.concat( MTUT, ", " ) .. "." + MT[#MT+1] = " New target(s) detected: " .. table.concat( MTUT, ", " ) .. "." end if ChangeCode == "RU" then @@ -1354,7 +1482,7 @@ do -- DETECTION_TYPES MTUT[#MTUT+1] = ChangeUnitCount .. " of " .. ChangeUnitType end end - MT[#MT+1] = "Invisible or destroyed target(s): " .. table.concat( MTUT, ", " ) .. "." + MT[#MT+1] = " Invisible or destroyed target(s): " .. table.concat( MTUT, ", " ) .. "." end end @@ -1396,11 +1524,6 @@ do -- DETECTION_TYPES DetectedItemSet:Remove( DetectedUnitName ) end end - - -- If all the detected units are removed from the DetectedItemSet, then we need to notify that. - if DetectedItemSet:Count() == 0 then - self:AddChangeItem( DetectedItem, "RI", DetectedTypeName ) - end end @@ -1419,7 +1542,6 @@ do -- DETECTION_TYPES if not DetectedItem then DetectedItem = self:AddDetectedItem( DetectedTypeName ) DetectedItem.Type = DetectedUnit:GetTypeName() - self:AddChangeItem( DetectedItem, "AI", DetectedTypeName ) end DetectedItem.Set:AddUnit( DetectedUnit ) @@ -1427,6 +1549,16 @@ do -- DETECTION_TYPES end end end + + for DetectedItemID, DetectedItemData in pairs( self.DetectedItems ) do + + local DetectedItem = DetectedItemData -- #DETECTION_BASE.DetectedItem + local DetectedSet = DetectedItem.Set + + self:ReportFriendliesNearBy( { DetectedItem = DetectedItem, ReportSetGroup = self.DetectionSetGroup } ) -- Fill the Friendlies table + --self:NearestFAC( DetectedItem ) + end + end --- Report summary of a DetectedItem using a given numeric index. @@ -1540,60 +1672,6 @@ do -- DETECTION_AREAS return nil end - --- Background worker function to determine if there are friendlies nearby ... - -- @param #DETECTION_AREAS self - -- @param Wrapper.Unit#UNIT ReportUnit - function DETECTION_AREAS:ReportFriendliesNearBy( ReportGroupData ) - self:F2() - - local DetectedItem = ReportGroupData.DetectedItem -- Functional.Detection#DETECTION_BASE.DetectedItem - local DetectedSet = ReportGroupData.DetectedItem.Set - local DetectedZone = ReportGroupData.DetectedItem.Zone - local DetectedZoneUnit = DetectedZone.ZoneUNIT - - DetectedItem.FriendliesNearBy = false - - local SphereSearch = { - id = world.VolumeType.SPHERE, - params = { - point = DetectedZoneUnit:GetVec3(), - radius = 6000, - } - - } - - --- @param Dcs.DCSWrapper.Unit#Unit FoundDCSUnit - -- @param Wrapper.Group#GROUP ReportGroup - -- @param Set#SET_GROUP ReportSetGroup - local FindNearByFriendlies = function( FoundDCSUnit, ReportGroupData ) - - local DetectedItem = ReportGroupData.DetectedItem -- Functional.Detection#DETECTION_BASE.DetectedItem - local DetectedSet = ReportGroupData.DetectedItem.Set - local DetectedZone = ReportGroupData.DetectedItem.Zone - local DetectedZoneUnit = DetectedZone.ZoneUNIT -- Wrapper.Unit#UNIT - local ReportSetGroup = ReportGroupData.ReportSetGroup - - local EnemyCoalition = DetectedZoneUnit:GetCoalition() - - local FoundUnitCoalition = FoundDCSUnit:getCoalition() - local FoundUnitName = FoundDCSUnit:getName() - local FoundUnitGroupName = FoundDCSUnit:getGroup():getName() - local EnemyUnitName = DetectedZoneUnit:GetName() - local FoundUnitInReportSetGroup = ReportSetGroup:FindGroup( FoundUnitGroupName ) ~= nil - - self:T3( { "Friendlies search:", FoundUnitName, FoundUnitCoalition, EnemyUnitName, EnemyCoalition, FoundUnitInReportSetGroup } ) - - if FoundUnitCoalition ~= EnemyCoalition and FoundUnitInReportSetGroup == false then - DetectedItem.FriendliesNearBy = true - return false - end - - return true - end - - world.searchObjects( Object.Category.UNIT, SphereSearch, FindNearByFriendlies, ReportGroupData ) - - end --- Returns if there are friendlies nearby the FAC units ... -- @param #DETECTION_AREAS self diff --git a/Moose Development/Moose/Tasking/Task.lua b/Moose Development/Moose/Tasking/Task.lua index 1990bd383..c08b72653 100644 --- a/Moose Development/Moose/Tasking/Task.lua +++ b/Moose Development/Moose/Tasking/Task.lua @@ -713,7 +713,9 @@ end function TASK:RemoveStateMachine( TaskUnit ) self:F( { TaskUnit, self.Fsm[TaskUnit] ~= nil } ) + self.Fsm[TaskUnit]:Remove() self.Fsm[TaskUnit] = nil + collectgarbage() self:T( "Garbage Collected, Processes should be finalized now ...") end @@ -830,6 +832,32 @@ function TASK:IsStatePlanned() return self:Is( "Planned" ) end +--- Sets a @{Task} to status **Aborted**. +-- @param #TASK self +function TASK:StateAborted() + self:SetState( self, "State", "Aborted" ) + return self +end + +--- Is the @{Task} status **Aborted**. +-- @param #TASK self +function TASK:IsStateAborted() + return self:Is( "Aborted" ) +end + +--- Sets a @{Task} to status **Cancelled**. +-- @param #TASK self +function TASK:StateCancelled() + self:SetState( self, "State", "Cancelled" ) + return self +end + +--- Is the @{Task} status **Cancelled**. +-- @param #TASK self +function TASK:IsStateCancelled() + return self:Is( "Cancelled" ) +end + --- Sets a @{Task} to status **Assigned**. -- @param #TASK self function TASK:StateAssigned() diff --git a/Moose Development/Moose/Wrapper/Group.lua b/Moose Development/Moose/Wrapper/Group.lua index ce1256f1b..75fc4c5d1 100644 --- a/Moose Development/Moose/Wrapper/Group.lua +++ b/Moose Development/Moose/Wrapper/Group.lua @@ -231,7 +231,7 @@ function GROUP:GetCategory() return nil end ---- Returns the category name of the DCS Group. +--- Returns the category name of the #GROUP. -- @param #GROUP self -- @return #string Category name = Helicopter, Airplane, Ground Unit, Ship function GROUP:GetCategoryName() diff --git a/Moose Development/Moose/Wrapper/Unit.lua b/Moose Development/Moose/Wrapper/Unit.lua index 697ac1616..56d26c9d9 100644 --- a/Moose Development/Moose/Wrapper/Unit.lua +++ b/Moose Development/Moose/Wrapper/Unit.lua @@ -522,6 +522,31 @@ function UNIT:GetLife0() return nil end +--- Returns the category name of the #UNIT. +-- @param #UNIT self +-- @return #string Category name = Helicopter, Airplane, Ground Unit, Ship +function UNIT:GetCategoryName() + self:F3( self.UnitName ) + + local DCSUnit = self:GetDCSObject() + if DCSUnit then + local CategoryNames = { + [Unit.Category.AIRPLANE] = "Airplane", + [Unit.Category.HELICOPTER] = "Helicopter", + [Unit.Category.GROUND_UNIT] = "Ground Unit", + [Unit.Category.SHIP] = "Ship", + [Unit.Category.STRUCTURE] = "Structure", + } + local UnitCategory = DCSUnit:getDesc().category + self:T3( UnitCategory ) + + return CategoryNames[UnitCategory] + end + + return nil +end + + --- Returns the Unit's A2G threat level on a scale from 1 to 10 ... -- The following threat levels are foreseen: -- diff --git a/Moose Mission Setup/Moose Mission Update/l10n/DEFAULT/Moose.lua b/Moose Mission Setup/Moose Mission Update/l10n/DEFAULT/Moose.lua index cac96a543..c4875bc19 100644 --- a/Moose Mission Setup/Moose Mission Update/l10n/DEFAULT/Moose.lua +++ b/Moose Mission Setup/Moose Mission Update/l10n/DEFAULT/Moose.lua @@ -1,5 +1,5 @@ env.info( '*** MOOSE DYNAMIC INCLUDE START *** ' ) -env.info( 'Moose Generation Timestamp: 20170312_1326' ) +env.info( 'Moose Generation Timestamp: 20170313_1139' ) local base = _G diff --git a/Moose Mission Setup/Moose.lua b/Moose Mission Setup/Moose.lua index cac96a543..c4875bc19 100644 --- a/Moose Mission Setup/Moose.lua +++ b/Moose Mission Setup/Moose.lua @@ -1,5 +1,5 @@ env.info( '*** MOOSE DYNAMIC INCLUDE START *** ' ) -env.info( 'Moose Generation Timestamp: 20170312_1326' ) +env.info( 'Moose Generation Timestamp: 20170313_1139' ) local base = _G diff --git a/Moose Test Missions/TAD - Task Dispatching/TAD-120 - A2G Task Dispatching DETECTION_UNITS/TAD-120 - A2G Task Dispatching DETECTION_UNITS.lua b/Moose Test Missions/TAD - Task Dispatching/TAD-120 - A2G Task Dispatching DETECTION_UNITS/TAD-120 - A2G Task Dispatching DETECTION_UNITS.lua new file mode 100644 index 000000000..1e355b8fb --- /dev/null +++ b/Moose Test Missions/TAD - Task Dispatching/TAD-120 - A2G Task Dispatching DETECTION_UNITS/TAD-120 - A2G Task Dispatching DETECTION_UNITS.lua @@ -0,0 +1,34 @@ + --- +-- Name: TAD-120 - A2G Task Dispatching DETECTION_UNITS +-- Author: FlightControl +-- Date Created: 13 Mar 2017 +-- +-- # Situation: +-- +-- This mission demonstrates the dynamic task dispatching for Air to Ground operations. +-- FACA's and FAC's are patrolling around the battle field, while detecting targets. +-- The detection method used is the DETECTION_UNITS method, which groups detected targets per detected unit. +-- +-- # Test cases: +-- +-- 1. Observe the FAC(A)'s detecting targets and grouping them. +-- 2. Check that the HQ provides menus to engage on a task set by the FACs. +-- +local HQ = GROUP:FindByName( "HQ", "Bravo HQ" ) + +local CommandCenter = COMMANDCENTER:New( HQ, "Lima" ) + +local Scoring = SCORING:New( "Detect Demo" ) + +local Mission = MISSION + :New( CommandCenter, "Overlord", "High", "Attack Detect Mission Briefing", coalition.side.RED ) + :AddScoring( Scoring ) + +local FACSet = SET_GROUP:New():FilterPrefixes( "FAC" ):FilterCoalitions("red"):FilterStart() + +local FACAreas = DETECTION_UNITS:New( FACSet ) + + +local AttackGroups = SET_GROUP:New():FilterCoalitions( "red" ):FilterPrefixes( "Attack" ):FilterStart() +local TaskDispatcher = TASK_A2G_DISPATCHER:New( Mission, HQ, AttackGroups, FACAreas ) + diff --git a/Moose Test Missions/TAD - Task Dispatching/TAD-120 - A2G Task Dispatching DETECTION_UNITS/TAD-120 - A2G Task Dispatching DETECTION_UNITS.miz b/Moose Test Missions/TAD - Task Dispatching/TAD-120 - A2G Task Dispatching DETECTION_UNITS/TAD-120 - A2G Task Dispatching DETECTION_UNITS.miz new file mode 100644 index 0000000000000000000000000000000000000000..578dd1ab828a548165a510ddd550c0a6ca7f103f GIT binary patch literal 54220 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�ODwv+PI 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 literal 0 HcmV?d00001