TaskConfig.cs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521
  1. using Newtonsoft.Json;
  2. namespace Model;
  3. public class MissionInformation
  4. {
  5. [JsonProperty("任务名称")]
  6. public string MissionName;
  7. [JsonProperty("任务ID")]
  8. public string MissionId;
  9. [JsonProperty("任务主要类型")]
  10. public string MissionMainType;
  11. [JsonProperty("任务类型")]
  12. public string MissionType;
  13. [JsonProperty("任务触发器")]
  14. public string MissionTrigger;
  15. [JsonProperty("下一个任务ID")]
  16. public List<string> NextTaskId;
  17. [JsonProperty("取水点")]
  18. public string WaterId;
  19. [JsonProperty("目标点ID")]
  20. public int TargetPointId;
  21. [JsonProperty("开始日期")]
  22. public string StartDate;
  23. [JsonProperty("开始时间")]
  24. public string StartTime;
  25. [JsonProperty("结束日期")]
  26. public string EndDate;
  27. [JsonProperty("结束时间")]
  28. public string EndTime;
  29. [JsonProperty("起飞准备时间")]
  30. public double TakeoffPreparationTime;
  31. //[JsonProperty("停止搜索时间")]
  32. //public double EndSearchTime;
  33. [JsonProperty("任务结束条件")]
  34. public TaskEndConditions TaskEndConditions;
  35. //[JsonProperty("应用航空器")]
  36. //public AircraftInfos[] aircraftInfos;
  37. }
  38. public class TaskEndConditions
  39. {
  40. [JsonProperty("结束条件")]
  41. public string EndConditions;
  42. [JsonProperty("结束值")]
  43. public string EndValue;
  44. }
  45. public class AircraftInfo
  46. {
  47. [JsonProperty("应用机型")]
  48. public string AircraftType;
  49. [JsonProperty("应用飞机编号")]
  50. public string AircraftId;
  51. [JsonProperty("加油基地")]
  52. public string RefuelingBase;
  53. [JsonProperty("加油基地编号")]
  54. public string RefuelingBaseId;
  55. [JsonProperty("任务结束返回点")]
  56. public string TaskEndReturnPoint;
  57. //最大容量(kg)
  58. [JsonProperty("最大容量(kg)")]
  59. public double MaxCapacity;
  60. //载水重量(kg)
  61. [JsonProperty("载水重量(kg)")]
  62. public double MaxTakeoffWeight;
  63. [JsonProperty("空重(kg)")]
  64. public double EmptyWeight;
  65. //单个灭火弹装载量
  66. [JsonProperty("单个灭火弹有效面积")]
  67. public double SingleFireExtinguishingBombEffectiveArea;
  68. //装载个数
  69. [JsonProperty("装载个数")]
  70. public double LoadCount;
  71. }
  72. public class MissionPoint
  73. {
  74. [JsonProperty("任务点经度")]
  75. public double MissionPointLongitude;
  76. [JsonProperty("任务点纬度")]
  77. public double MissionPointLatitude;
  78. [JsonProperty("任务点海拔")]
  79. public double MissionPointHeight;
  80. }
  81. public class ZCTask
  82. {
  83. [JsonProperty("任务信息")]
  84. public MissionInformation missionInformation;
  85. [JsonProperty("应用航空器")]
  86. public AircraftInfo[] aircraftInfos;
  87. [JsonProperty("侦查方式")]
  88. public ZCMethod[] ZCMethods;
  89. //[JsonProperty("矩形侦查区域边界点")]
  90. //public List<double[]> poly;
  91. //[JsonProperty("扫描线间距")]
  92. //public double ScanRange;
  93. //[JsonProperty("侦查飞行真高")]
  94. //public double hSC;
  95. //[JsonProperty("是否真实高度")]
  96. //public bool isRealHeight;
  97. //[JsonProperty("是否环绕模式")]
  98. //public bool isSurround;
  99. //[JsonProperty("环绕圈数")]
  100. //public int SurroundNum;
  101. [JsonProperty("火点ID")]
  102. public int FirePointId;
  103. public MissionPoint[] MissionPoints;
  104. //[JsonProperty("下一个任务ID")]
  105. //public string NextTaskId;
  106. }
  107. public class ZCMethod
  108. {
  109. [JsonProperty("侦查方式")]
  110. public string Method;
  111. [JsonProperty("应用飞机编号")]
  112. public string AircraftId;
  113. [JsonProperty("矩形侦查区域边界点")]
  114. public List<double[]> Poly;
  115. [JsonProperty("扫描线间距")]
  116. public double ScanRange;
  117. [JsonProperty("侦查飞行真高")]
  118. public double hSC;
  119. [JsonProperty("是否真实高度")]
  120. public bool isRealHeight;
  121. [JsonProperty("是否环绕模式")]
  122. public bool isSurround;
  123. [JsonProperty("环绕圈数")]
  124. public int SurroundNum;
  125. }
  126. public class SHJTask
  127. {
  128. [JsonProperty("任务信息")]
  129. public MissionInformation missionInformation;
  130. [JsonProperty("应用航空器")]
  131. public AircraftInfo[] aircraftInfos;
  132. [JsonProperty("索滑降参数")]
  133. public SHJParameter[] SHJParameters;
  134. //[JsonProperty("索滑降高度")]
  135. //public double H;
  136. //[JsonProperty("投送人数")]
  137. //public int person_number;
  138. //[JsonProperty("风速")]
  139. //public double windspeed;
  140. //[JsonProperty("能见度")]
  141. //public double vis;
  142. //[JsonProperty("索滑降速度")]
  143. //public double descendspeed;
  144. //[JsonProperty("转运人数")]
  145. //public int personNumber;
  146. //[JsonProperty("索滑降点")]
  147. //public MissionPoint[] MissionPoints;
  148. //[JsonProperty("下一个任务ID")]
  149. //public string NextTaskId;
  150. }
  151. public class SHJParameter
  152. {
  153. [JsonProperty("应用飞机编号")]
  154. public string AircraftId;
  155. [JsonProperty("索滑降高度")]
  156. public double H;
  157. [JsonProperty("投送人数")]
  158. public int person_number;
  159. [JsonProperty("风速")]
  160. public double windspeed;
  161. [JsonProperty("能见度")]
  162. public double vis;
  163. [JsonProperty("索滑降速度")]
  164. public double descendspeed;
  165. [JsonProperty("索滑降点")]
  166. public MissionPoint[] MissionPoints;
  167. }
  168. public class DMMHTask
  169. {
  170. [JsonProperty("任务信息")]
  171. public MissionInformation missionInformation;
  172. [JsonProperty("应用航空器")]
  173. public AircraftInfo[] aircraftInfos;
  174. [JsonProperty("地面部署人数")]
  175. public double GroundPersonnel;
  176. [JsonProperty("机降人数")]
  177. public double LandingPersonnel;
  178. [JsonProperty("机降点")]
  179. public MissionPoint[] MissionPoints;
  180. [JsonProperty("下一个任务ID")]
  181. public string NextTaskId;
  182. }
  183. public class AirRoute
  184. {
  185. [JsonProperty("巡护航线名称")]
  186. public string AirRouteName;
  187. [JsonProperty("巡护航线点经度")]
  188. public double AirRouteLongitude;
  189. [JsonProperty("巡护航线点纬度")]
  190. public double AirRouteLatitude;
  191. [JsonProperty("巡护航线点海拔")]
  192. public double AirRouteHeight;
  193. }
  194. public class XHTask
  195. {
  196. public double DelayTime;
  197. [JsonProperty("任务信息")]
  198. public MissionInformation missionInformation;
  199. [JsonProperty("应用航空器")]
  200. public AircraftInfo[] aircraftInfos;
  201. [JsonProperty("巡护航线参数")]
  202. public XHTaskParamter[] paramters;
  203. [JsonProperty("火点ID")]
  204. public int FirePointId;
  205. [JsonProperty("取水点")]
  206. public MissionPoint[] MissionPoints;
  207. [JsonProperty("下一个任务ID")]
  208. public string NextTaskId;
  209. }
  210. public class XHTaskParamter
  211. {
  212. // {
  213. // "应用飞机编号": "1-5",
  214. // "巡护航线名称": "Y605",
  215. // "巡护任务类型": "带桶巡护",
  216. // "?巡护任务类型": "注释:带桶巡护/载人巡护"
  217. // }
  218. [JsonProperty("应用飞机编号")]
  219. public string AircraftId;
  220. [JsonProperty("巡护航线名称")]
  221. public string AirRouteName;
  222. [JsonProperty("巡护任务类型")]
  223. public string XHTaskType;
  224. [JsonProperty("巡护区域边界点")]
  225. public List<double[]> Poly;
  226. }
  227. public class SeaSouJiuTask
  228. {
  229. [JsonProperty("任务信息")]
  230. public MissionInformation missionInformation;
  231. [JsonProperty("应用航空器")]
  232. public AircraftInfo[] aircraftInfos;
  233. [JsonProperty("战术战法")]
  234. public Tactic Tactic;
  235. [JsonProperty("运行约束")]
  236. public RunConstraints RunConstraints;
  237. //[JsonProperty("目标点ID")]
  238. //public int TargetPointId;
  239. [JsonProperty("搜索任务载荷")]
  240. public SearchMissionPayload[] missionSearchPayloads;
  241. [JsonProperty("搜索方式")]
  242. public SearchMissionMode[] SearchModes;
  243. //[JsonProperty("下一个任务ID")]
  244. //public string NextTaskId;
  245. }
  246. public class Tactic
  247. {
  248. [JsonProperty("战术战法")]
  249. public string tactic;
  250. [JsonProperty("跟进间距")]
  251. public double Spacing;
  252. [JsonProperty("跟进高度差")]
  253. public double HeightDifference;
  254. }
  255. public class RunConstraints
  256. {
  257. [JsonProperty("搜索飞行速度限制")]
  258. public double speedLimit;
  259. }
  260. public class SearchMissionPayload //搜索任务载荷
  261. {
  262. [JsonProperty("任务载荷")]
  263. public string SearchPayload;
  264. [JsonProperty("应用飞机编号")]
  265. public string AircraftId;
  266. //探测波长(m)
  267. [JsonProperty("探测波长(m)")]
  268. public double DetectionWavelength;
  269. //最小可检测信号(dBm)
  270. [JsonProperty("最小可检测信号(dBm)")]
  271. public double MinDetectionSignal;
  272. //雷达发射机发射信号功率(dBm)
  273. [JsonProperty("雷达发射机发射信号功率(dBm)")]
  274. public double RadarTransmitterPower;
  275. //发射天线增益(dB)
  276. [JsonProperty("发射天线增益(dB)")]
  277. public double TransmitAntennaGain;
  278. //接受天线增益(dB)
  279. [JsonProperty("接受天线增益(dB)")]
  280. public double ReceiveAntennaGain;
  281. //光电转塔水平范围
  282. [JsonProperty("光电转塔水平范围")]
  283. public double OpticalTowerHorizontalRange;
  284. //红外探测器视场角
  285. [JsonProperty("红外探测器视场角")]
  286. public double InfraredDetectorFieldAngle;
  287. //飞行高度
  288. [JsonProperty("飞行高度")]
  289. public double FlightHeight;
  290. }
  291. public class SearchMissionMode //搜索方式
  292. {
  293. [JsonProperty("搜索方式")]
  294. public string SearchMode;
  295. [JsonProperty("应用飞机编号")]
  296. public string AircraftId;
  297. //搜索扫视宽度
  298. [JsonProperty("搜索扫视宽度")]
  299. public double SearchWidth;
  300. [JsonProperty("多边形边界")]
  301. public List<double[]> Poly;
  302. [JsonProperty("等高线高度间隔")]
  303. public double interval;
  304. [JsonProperty("最小等高线节点数")]
  305. public int MinLength;
  306. [JsonProperty("航线真实高度")]
  307. public double TrueH;
  308. [JsonProperty("输出等高线节点间隔")]
  309. public int JG;
  310. }
  311. public class LandSouXunTask
  312. {
  313. [JsonProperty("任务信息")]
  314. public MissionInformation missionInformation;
  315. [JsonProperty("应用航空器")]
  316. public AircraftInfo[] aircraftInfos;
  317. [JsonProperty("战术战法")]
  318. public Tactic Tactic;
  319. [JsonProperty("运行约束")]
  320. public RunConstraints RunConstraints;
  321. //搜索任务载荷
  322. [JsonProperty("搜索任务载荷")]
  323. public SearchMissionPayload[] missionSearchPayloads;
  324. //搜索方式
  325. [JsonProperty("搜索方式")]
  326. public SearchMissionMode[] SearchModes;
  327. //[JsonProperty("下一个任务ID")]
  328. //public string NextTaskId;
  329. }
  330. public class MHTaskConfig
  331. {
  332. [JsonProperty("任务信息")]
  333. public MissionInformation missionInformation;
  334. [JsonProperty("应用航空器")]
  335. public AircraftInfo[] aircraftInfos;
  336. }
  337. public class JJMHTask
  338. {
  339. [JsonProperty("应用航空器")]
  340. public AircraftInfo[] aircraftInfos;
  341. [JsonProperty("取水点")]
  342. public MissionPoint[] MissionPoints;
  343. [JsonProperty("机降参数")]
  344. public JJParamter[] JJParamters;
  345. }
  346. public class JJTaskConfig
  347. {
  348. [JsonProperty("任务信息")]
  349. public MissionInformation missionInformation;
  350. [JsonProperty("应用航空器")]
  351. public AircraftInfo[] aircraftInfos;
  352. [JsonProperty("机降参数")]
  353. public JJParamter[] JJParamters;
  354. }
  355. public class SHJTaskConfig
  356. {
  357. [JsonProperty("任务信息")]
  358. public MissionInformation missionInformation;
  359. [JsonProperty("应用航空器")]
  360. public AircraftInfo[] aircraftInfos;
  361. [JsonProperty("索滑降参数")]
  362. public SHJParameter[] SHJParameters;
  363. }
  364. public class JJParamter
  365. {
  366. [JsonProperty("应用飞机编号")]
  367. public string AircraftId;
  368. [JsonProperty("下机时间")]
  369. public double LandingTime;
  370. [JsonProperty("机降点")]
  371. public MissionPoint[] MissionPoints;
  372. }
  373. public class YJTXFlyTask
  374. {
  375. [JsonProperty("任务信息")]
  376. public MissionInformation missionInformation;
  377. [JsonProperty("应用航空器")]
  378. public AircraftInfo[] aircraftInfos;
  379. [JsonProperty("飞行方式")]
  380. public FlyMode[] FlyModes;
  381. }
  382. //飞行方式
  383. public class FlyMode
  384. {
  385. [JsonProperty("飞行方式")]
  386. public string Method;
  387. [JsonProperty("应用飞机编号")]
  388. public string AircraftId;
  389. [JsonProperty("悬停点")]
  390. public double[] MissionPoints;
  391. [JsonProperty("悬停朝向(度)")]
  392. public double HoverAngle;
  393. [JsonProperty("进入距离(km)")]
  394. public double EnterDistance;
  395. [JsonProperty("悬停真高")]
  396. public double HoverHeight;
  397. [JsonProperty("是否真实高度")]
  398. public bool IsRealHeight;
  399. [JsonProperty("是否环绕模式")]
  400. public bool IsSurround;
  401. [JsonProperty("航线圆心")]
  402. public double[] FlightCenter;
  403. [JsonProperty("航线半径(km)")]
  404. public double FlightRadius;
  405. [JsonProperty("航线等分数")]
  406. public int FlightDivide;
  407. [JsonProperty("航线起始角度(°)(正北起始,航线为顺时针)")]
  408. public double FlightStartAngle;
  409. [JsonProperty("航线海拔高度(m)")]
  410. public double FlightHeight;
  411. [JsonProperty("是否顺时针")]
  412. public bool IsClockwise;
  413. }
  414. // 应急通信计算
  415. public class YJTXCompuTask
  416. {
  417. [JsonProperty("任务信息")]
  418. public MissionInformation missionInformation;
  419. [JsonProperty("统计时间间隔")]
  420. public double TimeInterval;
  421. [JsonProperty("计算参考环境")]//野外(自由空间),郊区,城市,密集城市,高层建筑城市
  422. public string Environment;
  423. [JsonProperty("中继次数限制(1为无中继)")]
  424. public int RelayLimit;
  425. [JsonProperty("计算通信余量(dBm)")]
  426. public double CompuResidual;
  427. [JsonProperty("网格计算涉及的通信单位")]
  428. public string[] CompuUnits;
  429. [JsonProperty("出图每公里像素数")]
  430. public int PixelPerKm;
  431. [JsonProperty("输出参数")]
  432. public YJTXCompuOutputP OutputP;
  433. }
  434. public class YJTXCompuOutputP
  435. {
  436. // "单机计算处理对象序号": 0,
  437. [JsonProperty("单机计算处理对象序号")]
  438. public int CompuIndex;
  439. // "通信稳定性": "99%",
  440. [JsonProperty("通信稳定性")]
  441. public string Stablility;
  442. // "鲁棒性": "98%",
  443. [JsonProperty("鲁棒性")]
  444. public string Robustness;
  445. // "安全性": "100%",
  446. [JsonProperty("安全性")]
  447. public string Security;
  448. // "持续保障率统计开始日期": "2024年3月16日",
  449. [JsonProperty("持续保障率统计开始日期")]
  450. public string StartDate;
  451. // "持续保障率统计开始时间": "14时00分00秒",
  452. [JsonProperty("持续保障率统计开始时间")]
  453. public string StartTime;
  454. // "持续保障率统计结束日期": "2024年3月19日",
  455. [JsonProperty("持续保障率统计结束日期")]
  456. public string EndDate;
  457. // "持续保障率统计结束时间": "14时00分00秒"
  458. [JsonProperty("持续保障率统计结束时间")]
  459. public string EndTime;
  460. }
  461. public class TaskConfig
  462. {
  463. [JsonProperty("吊桶洒水灭火任务")]
  464. public List<MHTaskConfig> mHTaskConfigs = new List<MHTaskConfig>();
  465. [JsonProperty("水箱灭火任务")]
  466. public List<MHTaskConfig> mHWaterTaskConfigs = new List<MHTaskConfig>();
  467. [JsonProperty("机降灭火任务")]
  468. public List<JJTaskConfig> dMMHTasks = new List<JJTaskConfig>();
  469. [JsonProperty("索滑降灭火任务")]
  470. public List<SHJTask> sHJTasks = new List<SHJTask>();
  471. [JsonProperty("火场侦查任务")]
  472. public List<ZCTask> zCTask = new List<ZCTask>();
  473. [JsonProperty("防火巡护任务")]
  474. public List<XHTask> xHTask = new List<XHTask>();
  475. [JsonProperty("海上搜救任务")]
  476. public List<SeaSouJiuTask> seaSouJiuTasks = new List<SeaSouJiuTask>();
  477. [JsonProperty("陆上搜寻任务")]
  478. public List<LandSouXunTask> LandSouXunTasks = new List<LandSouXunTask>();
  479. [JsonProperty("应急通信飞行")]
  480. public List<YJTXFlyTask> yJTXFlyTasks = new List<YJTXFlyTask>();
  481. [JsonProperty("应急通信计算")]
  482. public List<YJTXCompuTask> yJTXCompuTasks = new List<YJTXCompuTask>();
  483. }