当前位置: 首页 > article >正文

AFSim脚本学习

定时更新
定时检测两个平台的距离,若距离小于某个值时触发函数

# File generated by Wizard 2.9.0 on Nov 21, 2024.

platform_type TANK WSF_PLATFORM
   icon tank
   
   mover WSF_GROUND_MOVER
   end_mover
   
end_platform_type

platform tank_red TANK
   position 24:42:36.68n 121:01:27.23e
   side red
   
   route
      position 24:42:36.680n 121:01:27.230e altitude 0.00 ft agl
         speed 22.352 m/s 
      label Waypoint-1
         position 24:42:27.710n 121:00:48.453e
         altitude 0.00 ft agl 
      label Waypoint-2
         position 24:42:15.430n 120:59:47.653e
         altitude 0.00 ft agl 
      label Waypoint-3
         position 24:42:04.213n 120:58:36.929e
         altitude 0.00 ft agl 
      label Waypoint-4
         position 24:41:51.923n 120:57:44.916e
         altitude 0.00 ft agl 
      label Waypoint-5
         position 24:41:12.493n 120:57:22.169e
         altitude 0.00 ft agl 
      label Waypoint-6
         position 24:40:53.822n 120:57:52.570e
         altitude 0.00 ft agl 
      label Waypoint-7
         position 24:41:10.909n 120:58:41.639e
         altitude 0.00 ft agl  
   end_route

end_platform

platform tank_blue TANK
   position 24:41:26.923n 120:57:42.288e
   side blue
   
   update_interval 0.5 s
   
   on_initialize
      
   end_on_initialize
   
   script_variables
      bool flag = true;
   end_script_variables

   on_update
      WsfPlatform tank_red = WsfSimulation.FindPlatform("tank_red");
      WsfPlatform tank_blue = WsfSimulation.FindPlatform("tank_blue");
      double lat_red = tank_red.Latitude();
      double lon_red = tank_red.Longitude();
         
      double lat_blue = tank_blue.Latitude();
      double lon_blue = tank_blue.Longitude();
         
      WsfGeoPoint loc = tank_blue.Location();
         
      double distance = Math.Sqrt((lat_red - lat_blue)*(lat_red - lat_blue) + (lon_red - lon_blue)*(lon_red - lon_blue));
      
      if (distance < 0.003 && flag) {
         writeln("In area, distance is: ", distance);
         flag = false;
      }
      
   end_on_update
end_platform

event_output
   file jacksonabad.evt
end_event_output

event_pipe
   file jacksonabad.aer
end_event_pipe

end_time 1 hr




http://www.kler.cn/a/406407.html

相关文章:

  • FPGA实现串口升级及MultiBoot(九)BPI FLASH相关实例演示
  • 任务通知的本质(任务通知车辆运行) 软件定时器的本质(增加游戏音效)
  • 【Python TensorFlow】进阶指南(续篇三)
  • 大模型呼入系统是什么?
  • 远程管理不再难!树莓派5安装Raspberry Pi OS并实现使用VNC异地连接
  • 使用redis-shake工具进行redis的数据同步
  • 未来已来:少儿编程竞赛聚焦物联网,激发创新潜力
  • vue3-基于element-plus实现定制化动态表单及校验
  • CentOS使用中遇到的问题及解决方法
  • java的强,软,弱,虚引用介绍以及应用
  • 提供一个集中式的数字媒体模板库,涵盖各类设计模板(如海报、视频片头、社交媒体帖子等),支持关键词、标签、风格等多维度搜索,帮助用户快速定位所需模板。
  • 【.ner core】 配置使用百度编辑器
  • JavaScript中的this指向问题
  • 容器安全检测和渗透测试工具
  • 成都栩熙酷,电商服务新选择
  • 【SQL Server】华中农业大学空间数据库实验报告 实验七 数据查询
  • 【大语言模型】ACL2024论文-13 透过分裂投票的镜头:探索法律案例结果分类中的分歧、难度和校准
  • “AI玩手机”原理揭秘:大模型驱动的移动端GUI智能体
  • 【Redis 探秘】Redis 持久化机制:RDB 与 AOF
  • 特征融合篇 | CARAFE:轻量级通用上采样算子,可提高目标检测性能
  • 设计模式在项目中有用过吗?怎么用的?
  • 数据结构 (3)线性表的概念及其抽象数据类型定义
  • go项目中比较好的实践方案
  • 【qt版本概述】
  • js前端加密方案库Crypto-js之aes的使用
  • 速通前端篇 —— CSS