11月修改

This commit is contained in:
2025-12-03 10:49:15 +08:00
parent 7cdc44e10d
commit 035efd8ca7
14 changed files with 226 additions and 61 deletions

View File

@@ -8,11 +8,13 @@ processor SSM_CMDR_TASK_MGR WSF_TASK_PROCESSOR
#script_debug_writes true
#show_state_transitions
#show_task_messages
script_variables
int MAX_SAMS_PER_TARGET = 2;
int MAX_ASSIGNMENTS_PER_SAM = 4;
string WEAPON_NAME = "";
string IS_MOVE = "true";
end_script_variables
// determine if TRACK is assignable
@@ -47,11 +49,13 @@ processor SSM_CMDR_TASK_MGR WSF_TASK_PROCESSOR
end_script
# -------------------------------------------------------------------------
script void sendMessage()
#writeln("MakeAssignments ");
script void sendMessage()
writeln("sendMessage");
Array<WsfPlatform> firer = Array<WsfPlatform>();
Array<WsfPlatform> mover = Array<WsfPlatform>();
Array<WsfPlatform> waiter = Array<WsfPlatform>();
Array<WsfPlatform> net_mover = Array<WsfPlatform>();
foreach (WsfPlatform sub in PLATFORM.Subordinates())
{
@@ -70,13 +74,25 @@ processor SSM_CMDR_TASK_MGR WSF_TASK_PROCESSOR
}
}
if(sub.Type() == "NET_DETECT_GROUP")
{
writeln("is NET_DETECT_GROUP");
if(IS_MOVE=="true")
{
IS_MOVE="false";
writeln("*** Adding ", sub.Name(), " to net_mover");
net_mover.PushBack(sub);
}
}
}
int i;
int numAssignments = (int)MATH.Min(firer.Size(), MAX_SAMS_PER_TARGET);
int num=(int)net_mover.Size();
for (int i=0; i < numAssignments; i = i + 1)
{
writeln("assign fire");
@@ -86,34 +102,23 @@ processor SSM_CMDR_TASK_MGR WSF_TASK_PROCESSOR
PLATFORM.Comm("sub_net").SendMessage(msg,firer[i].Name(),"cmdr_net");
AssignTask(TRACK, "FIRE", firer[i]);
}
for(int i=0;i<num;i=i+1)
{
writeln("assign net_move");
WsfControlMessage msg = WsfControlMessage();
msg.SetAuxData("task","MOVE");
PLATFORM.Comm("sub_net").SendMessage(msg,net_mover[i].Name(),"cmdr_net");
}
end_script
# -------------------------------------------------------------------------
evaluation_interval DETECTED 20.0 sec
time_to_evaluate DETECTED 5.0 secs
state DETECTED
next_state ASSIGNED
if (! IsAssignable()) return false;
sendMessage();
return true;
end_next_state
end_state
evaluation_interval ASSIGNED 20.0 sec
time_to_evaluate ASSIGNED 1.0 secs
state ASSIGNED
next_state DETECTED
if (! IsAssignable())
{
return true;
}
sendMessage();
return false;
end_next_state
end_state
update_interval 10 s
on_update
sendMessage();
end_on_update
end_processor
platform_type SSM_CMDR WSF_PLATFORM
@@ -137,11 +142,9 @@ platform_type SSM_CMDR WSF_PLATFORM
purge_interval 60 sec
end_processor
processor task_mgr COMMON_CMDR_TASK_MGR
operating_level ENGAGE 1
processor task_mgr SSM_CMDR_TASK_MGR
end_processor
end_platform_type