AFSim仿真系统—48 任务处理器
当发生转换时,将执行当前状态的 on_exit 脚本(如果已定义),并执行新状态的 on_entry 脚本(如果已定义)。WSF_TASK_PROCESSOR 是 WSF_TRACK_STATE_CONTROLLER 的扩展,提供了一种通用机制,用于发送和接收与轨迹相关的“任务分配”。它利用 WSF_TRACK_STATE_CONTROLLER 的功能来分类轨迹,并提供额外的脚本命令(例如,Ass
本栏目将对《AFSim 2.9中文参考手册》进行持续更新,欢迎关注交流!
对本书全文和AFSIM其它资料感兴趣的伙伴,可联系作者领取~
全部内容索引请看 ⬇️⬇️⬇️
AFSIM配套视频教程请看 ⬇️⬇️⬇️afsim2.9官方培训视频教程https://space.bilibili.com/3546837967440641编辑https://space.bilibili.com/3546837967440641https://space.bilibili.com/3546837967440641
processor <name> WSF_TASK_PROCESSOR
WSF_SCRIPT_PROCESSOR Commands ...
# Track State Controller Commands
evaluate_candidate_tracks ...
evaluation_interval ...
number_of_servers ...
show_state_evaluations
show_state_transitions
state <state-name>
... state definition ...
on_entry ...end_on_entry
on_exit ...end_on_exit
next_state...end_next_state
end_state
time_to_evaluate ...
# Task Processor Commands
track_processor ...
comm_retry_attempts ...
comm_retry_interval ...
operating_level ...
time_to_recognize_messages ...
track_update_interval ...
track_update_strategy ...
weapon_uplink_path ...
uplink_source ...
uplink_comm ...
uplink_delay ...
auto_weapon_uplink ...
auto_weapon_uplink_platform ...
uplink_send_interval ...
show_task_messages
show_uncompleted_tasks
# Script Interface
on_initialize ... end_on_initialize
on_initialize2 ... end_on_initialize2
on_update ... end_on_update
script_variables ... end_script_variables
script ... end_script
.. Other Script Commands ...
script void on_task_assign(WsfTask aTask, WsfTrack aTrack)
... script commands ...
end_script
script void on_task_cancel(WsfTask aTask)
... script commands ...
end_script
script void on_task_complete(WsfTask aTask)
... script commands ...
end_script
script void on_task_assign_sent(WsfTask aTask, WsfTrack aTrack)
... script commands ...
end_script
script void on_task_cancel_sent(WsfTask aTask)
... script commands ...
end_script
script void on_task_complete_sent(WsfTask aTask)
... script commands ...
end_script
script void on_operating_level_change(string aLevel)
... script commands ...
end_script
script void on_track_drop()
... script commands ...
end_script
end_processor
WSF_TASK_PROCESSOR 是 WSF_TRACK_STATE_CONTROLLER 的扩展,提供了一种通用机制,用于发送和接收与轨迹相关的“任务分配”。它利用 WSF_TRACK_STATE_CONTROLLER 的功能来分类轨迹,并提供额外的脚本命令(例如,AssignTask 和 CancelTask,如 WsfTaskManager 中定义),以允许任务的发送和接收。
轨迹状态控制器命令
- evaluate_candidate_tracks <boolean>: 指示是否评估“候选轨迹”。候选轨迹是已接收但尚未确定为“稳定”的轨迹(由过滤器定义)。
默认值: false
- evaluation_interval <state-name> <random-time-reference>: 指定在指示状态下轨迹应(重新)评估的频率。
- number_of_servers <integer>: 指示可以同时进行的最大轨迹评估数。评估所需的时间通过 time_to_evaluate 命令设置。
默认值: 1
- show_state_evaluations: 指示应将有关状态评估的信息写入标准输出。这基本上显示了每个 next_state 块评估的真或假状态。
- show_state_transitions: 指示应将有关状态转换的信息写入标准输出。
- state <state-name>: 定义状态机中的一个状态,名称为 <state-name>。
- on_entry … end_on_entry: 进入此状态时执行这些脚本命令。这是一个可选的子命令。
- on_exit … end_on_exit: 离开此状态时执行这些脚本命令。这是一个可选的子命令。
- next_state <next-state-name> … end_next_state: 这是一个可选的脚本块,必须返回一个真/假值。评估时,返回值决定是否转换到由 <next-state-name> 定义的命名状态。如果未定义 next_state,则将在此状态中“死胡同”。多个 next_state 子命令是允许的,但只有在所有先前的转换评估为假时才会被评估(第一个“真”会短路进一步的评估)。因此,建议在进行更复杂的 next_state 评估之前,先执行最简单的评估以节省 CPU 周期。
状态命令定义结构:
state <state-name>
on_entry
... <script-commands> ...
end_on_entry
on_exit
... <script-commands> ...
end_on_exit
next_state <next-state-name-1>
... <script-commands> ...
end_next_state
next_state <next-state-name-2>
... <script-commands> ...
end_next_state
end_state
- time_to_evaluate <state-name> <random-time-reference>: 指定在指示状态下执行轨迹评估所需的时间。这模拟了在逻辑上“思考”或执行评估所需的时间。
默认值: 0.01 秒
- track_processor <track-proc-name>: 指定一个 WSF_TRACK_PROCESSOR 的名称(通常作为非主轨迹处理器运行),其轨迹列表将用于评估过程。
默认值: 使用平台的主轨迹列表。
- comm_retry_attempts <integer>: 指示重试失败通信的尝试次数。
- comm_retry_interval <time-value>: 指示重试失败通信的尝试之间的时间。
- operating_level <name> <level>: 指示操作条件或状态及其相关级别。
示例:
operating_level Engage 0
- time_to_recognize_messages <time-value>: 指示识别消息所需的时间。
- track_update_interval <time-value>: 指示向受让人发送轨迹更新的时间间隔。
- track_update_strategy [ default | suppressor ]: 指示如何发送轨迹更新。
- default: 如果任务已被接受,则定期向受让人发送轨迹更新。
- suppressor: 仅当轨迹管理器指示轨迹已更新时,才向受让人发送轨迹更新。
- weapon_uplink_path <sensor-name> <comm-name>: 指示支持武器上行链路时使用的传感器和通信设备。
- uplink_source <sensor-name>: 指示上行链路时轨迹的来源。
默认值: track-manager
- uplink_comm <comm-name>: 指示用于传输上行链路的通信系统。
- uplink_delay <time-value>: 指示在接收到上行链路任务后启动上行链路之前的延迟。
默认值: 0.0 秒
- auto_weapon_uplink <boolean-value>: 指示任务管理器在调用 FireAt() 脚本时是否自动为每个发射的武器分配上行链路任务。
默认值: off
- auto_weapon_uplink_platform <platform-name>: 指示使用 auto_weapon_uplink 启动的上行链路任务的受让人。
默认值: 此平台
- uplink_send_interval <time-value>: 发送上行链路轨迹之间的最小间隔(仅用于基于任务的上行链路)。
默认值: 0.0 秒
- show_task_messages: 指示与任务分配、取消和完成相关的信息应写入标准输出。
- show_uncompleted_tasks: 这是一个调试工具,指示在任务处理器销毁期间未完成任务的信息应写入标准输出。
脚本接口
WSF_TASK_PROCESSOR 利用通用脚本接口和 WSF_SCRIPT_PROCESSOR 的功能,并提供以下附加脚本:
- on_task_assign: 当接收到任务分配时调用。
script void on_task_assign(WsfTask aTask, WsfTrack aTrack)
...
end_script
- on_task_cancel: 当接收到任务取消时调用。
script void on_task_cancel(WsfTask aTask)
...
end_script
- on_task_complete: 当任务的分配者收到受让人完成指定任务的通知时调用。
script void on_task_complete(WsfTask aTask)
...
end_script
- on_task_assign_sent: 当发送任务分配时调用。
script void on_task_assign_sent(WsfTask aTask, WsfTrack aTrack)
...
end_script
- on_task_cancel_sent: 当发送任务取消时调用。
script void on_task_cancel_sent(WsfTask aTask)
...
end_script
- on_task_complete_sent: 当任务的受让人发送任务完成消息时调用。
script void on_task_complete_sent(WsfTask aTask)
...
end_script
- on_operating_level_change: 每当检测到“操作级别”变化时调用。
script void on_operating_level_change(string aLevel)
...
end_script
- on_track_drop: 每当处理器被轨迹管理器告知轨迹丢失时调用。
script void on_track_drop()
...
end_script
操作方法
每个轨迹在首次被发现时,最初会在 time_to_evaluate 间隔过后进入输入文件中定义的第一个状态。从那时起,它将继续评估当前状态的转换规则,并根据规则允许的情况转换到新状态。当发生转换时,将执行当前状态的 on_exit 脚本(如果已定义),并执行新状态的 on_entry 脚本(如果已定义)。首次进入状态时,应用 time_to_evaluate 间隔。这作为状态进入时的思考延迟。
每个轨迹在其当前存在的状态定义的间隔内被(重新)评估。执行评估所需的逻辑时间由该状态的 time_to_evaluate 定义。控制器可以一次执行多达 number_of_servers 个评估。当需要评估给定轨迹的状态时,将确定是否有服务器可用于执行评估。如果有服务器可用,则标记为忙,并将在间隔完成时执行实际的规则评估(从而模拟思考过程)并安排下一次评估。如果没有可用的服务器,则将其放入待处理队列,以便下一个可用的服务器进行评估。

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)