EditorConfig.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375
  1. using Model;
  2. using Newtonsoft.Json;
  3. public class Base
  4. {
  5. [JsonProperty("基地名称")]
  6. public string BaseName;
  7. //[JsonProperty("位置信息")]
  8. //public string BasePositionInfo;
  9. [JsonProperty("基地编号")]
  10. public int BaseId;
  11. [JsonProperty("基地经度")]
  12. public double BaseLongitude;
  13. [JsonProperty("基地纬度")]
  14. public double BaseLatitude;
  15. [JsonProperty("基地海拔")]
  16. public double BaseHeight;
  17. }
  18. public struct AircraftParameter
  19. {
  20. [JsonProperty("机型")]
  21. public string AircraftID;
  22. [JsonProperty("飞机编号")]
  23. public string Id;//如1-2,1表示基地1,2表示基地1中的2号飞机
  24. [JsonProperty("类型")]
  25. public string AircraftType;
  26. [JsonProperty("子类型")]
  27. public string AircraftSubType;
  28. [JsonProperty("所属机场ID")]
  29. public int AirportId;
  30. //[JsonProperty("状态")]
  31. //public string AircraftState;
  32. //[JsonProperty("已连续工作时间")]
  33. //public double AircraftRunTime;
  34. [JsonProperty("任务载荷型号")]
  35. public TaskLoadType taskLoadType;
  36. [JsonProperty("最大起飞重量")]
  37. public double MaxTakeoffWeight;
  38. [JsonProperty("最大载油量")]
  39. public double MaxFuelCapacity;
  40. [JsonProperty("最大载客数量")]
  41. public double MaxPassengerNumber;
  42. [JsonProperty("通信属性")]
  43. public List<Communication> Communication;
  44. }
  45. //通信属性
  46. public class Communication
  47. {
  48. [JsonProperty("名称")]
  49. public string CommunicationName;
  50. [JsonProperty("通信设备")]
  51. public string CommunicationEquipment;
  52. [JsonProperty("本地遮挡损耗(dB)")]
  53. public double LocalObstructionLoss;
  54. [JsonProperty("本体数据流量需求(Mbps)")]
  55. public double BodyDataFlowDemand;
  56. [JsonProperty("是否高优先级用户")]
  57. public bool HighPriorityUser;
  58. [JsonProperty("是否具备基站或卫通属性")]
  59. public bool BaseStationOrSatellite;
  60. }
  61. public class TaskLoadType
  62. {
  63. [JsonProperty("雷达设备")]
  64. public string RadarEquipment;
  65. [JsonProperty("光电探测设备")]
  66. public string PhotoelectricDetectionEquipment;
  67. }
  68. public class FirePoint
  69. {
  70. [JsonProperty("火点ID")]
  71. public int FirePointId;
  72. [JsonProperty("火点编号")]
  73. public string FirePointName;
  74. [JsonProperty("火点经度")]
  75. public double FirePointLongitude;
  76. [JsonProperty("火点纬度")]
  77. public double FirePointLatitude;
  78. [JsonProperty("火点海拔")]
  79. public double FirePointHeight;
  80. [JsonProperty("初始火线长度")]
  81. public double fireLength;
  82. [JsonProperty("目标气象信息")]
  83. public TargetWeather[] targetWeather;
  84. [JsonProperty("植被类型")]
  85. public int vegetationType;
  86. }
  87. public class WaterPoint
  88. {
  89. [JsonProperty("取水点名称")]
  90. public string WaterPointName;
  91. [JsonProperty("位置信息")]
  92. public string WaterPointPositionInfo;
  93. [JsonProperty("取水点编号")]
  94. public int WaterPointId;
  95. [JsonProperty("取水点经度")]
  96. public double WaterPointLongitude;
  97. [JsonProperty("取水点纬度")]
  98. public double WaterPointLatitude;
  99. [JsonProperty("取水点海拔")]
  100. public double WaterPointHeight;
  101. }
  102. public class TargetPoint//搜救目标点初始坐标
  103. {
  104. [JsonProperty("目标点ID")]
  105. public int TargetPointId;
  106. [JsonProperty("目标点经度")]
  107. public double TargetPointLongitude;
  108. [JsonProperty("目标点纬度")]
  109. public double TargetPointLatitude;
  110. [JsonProperty("目标点海拔")]
  111. public double TargetPointHeight;
  112. [JsonProperty("目标气象信息")]
  113. public TargetQiXiangInfo TargetQiXiangInfo;
  114. [JsonProperty("目标类型")]
  115. public TargetType TargetType;
  116. }
  117. public class TargetQiXiangInfo
  118. {
  119. [JsonProperty("00-08温度")]
  120. public double Temperature_00_08;
  121. [JsonProperty("00-08湿度")]
  122. public double Humidity_00_08;
  123. [JsonProperty("00-08能见度")]
  124. public double Visibility_00_08;
  125. [JsonProperty("00-08风速")]
  126. public double WindSpeed_00_08;
  127. [JsonProperty("00-08风向")]
  128. public double WindDirection_00_08;
  129. [JsonProperty("00-08天气")]
  130. public string Weather_00_08;
  131. [JsonProperty("08-19温度")]
  132. public double Temperature_08_19;
  133. [JsonProperty("08-19湿度")]
  134. public double Humidity_08_19;
  135. [JsonProperty("08-19能见度")]
  136. public double Visibility_08_19;
  137. [JsonProperty("08-19风速")]
  138. public double WindSpeed_08_19;
  139. [JsonProperty("08-19风向")]
  140. public double WindDirection_08_19;
  141. [JsonProperty("08-19天气")]
  142. public string Weather_08_19;
  143. [JsonProperty("19-24温度")]
  144. public double Temperature_19_24;
  145. [JsonProperty("19-24湿度")]
  146. public double Humidity_19_24;
  147. [JsonProperty("19-24能见度")]
  148. public double Visibility_19_24;
  149. [JsonProperty("19-24风速")]
  150. public double WindSpeed_19_24;
  151. [JsonProperty("19-24风向")]
  152. public double WindDirection_19_24;
  153. [JsonProperty("19-24天气")]
  154. public string Weather_19_24;
  155. }
  156. public class TargetType
  157. {
  158. [JsonProperty("类型")]
  159. public string Type;
  160. [JsonProperty("人员数量")]
  161. public int Count;
  162. [JsonProperty("重量")]
  163. public double Weight;
  164. [JsonProperty("载人数")]
  165. public int LoadCount;
  166. [JsonProperty("吨位")]
  167. public double Tonnage;
  168. [JsonProperty("长度")]
  169. public double Length;
  170. [JsonProperty("携带定位设备")]
  171. public bool GPS;
  172. [JsonProperty("预计剩余存活时间")]
  173. public double LiveTime;
  174. [JsonProperty("雷达截面面积")]
  175. public double RadarArea;
  176. [JsonProperty("探测目标面积")]
  177. public double TargetArea;
  178. [JsonProperty("探测目标亮度")]
  179. public double TargetBrightness;
  180. [JsonProperty("时间窗口")]
  181. public double Time;
  182. }
  183. public class RescueDemandInfo//救援需求信息
  184. {
  185. [JsonProperty("需求点名称")]
  186. public string DemandPointName;
  187. [JsonProperty("需求点ID")]
  188. public int DemandPointID;
  189. [JsonProperty("目标点经度")]
  190. public double TargetPointLongitude;
  191. [JsonProperty("目标点纬度")]
  192. public double TargetPointLatitude;
  193. [JsonProperty("目标点海拔")]
  194. public double TargetPointHeight;
  195. [JsonProperty("目标气象信息")]
  196. public TargetQiXiangInfo TargetQiXiangInfo;
  197. [JsonProperty("目标类型")]
  198. public TargetType TargetType;
  199. }
  200. public class GoodsPersonPoint//物资人员点
  201. {
  202. [JsonProperty("物资点名称")]
  203. public string GoodsPointName;
  204. [JsonProperty("物资点编号")]
  205. public int GoodsPointID;
  206. [JsonProperty("取水点经度")]
  207. public double WaterPointLongitude;
  208. [JsonProperty("取水点纬度")]
  209. public double WaterPointLatitude;
  210. [JsonProperty("取水点海拔")]
  211. public double WaterPointHeight;
  212. }
  213. public class ClimbSegment
  214. {
  215. [JsonProperty("爬升段速度")]
  216. public double ClimbVelocity;
  217. [JsonProperty("爬升段油耗率")]
  218. public double ClimbFuelConsumptionRate;
  219. }
  220. public class DescentSegment
  221. {
  222. [JsonProperty("下降段速度")]
  223. public double DescentVelocity;
  224. [JsonProperty("下降段油耗率")]
  225. public double DescentFuelConsumptionRate;
  226. }
  227. public class CruiseSegment
  228. {
  229. [JsonProperty("巡航段高度")]
  230. public double CruiseHeight = 2000;
  231. [JsonProperty("巡航段速度")]
  232. public double CruiseVelocity;
  233. [JsonProperty("巡航段油耗率")]
  234. public double CruiseFuelConsumptionRate;
  235. }
  236. public struct TargetWeather
  237. {
  238. [JsonProperty("时间")]
  239. public string Time;
  240. [JsonProperty("温度")]
  241. public double Temperature;
  242. [JsonProperty("能见度")]
  243. public double Humidity;
  244. [JsonProperty("湿度")]
  245. public double Visibility;
  246. [JsonProperty("风向")]
  247. public double WindDirection;
  248. [JsonProperty("风速")]
  249. public double WindSpeed;
  250. [JsonProperty("天气")]
  251. public string Weather;
  252. }
  253. public struct CityWeather
  254. {
  255. [JsonProperty("调用方式")]
  256. public string CallMethod;
  257. [JsonProperty("温度")]
  258. public double Temperature;
  259. //能见度
  260. [JsonProperty("能见度")]
  261. public double Visibility;
  262. //水温
  263. [JsonProperty("水温")]
  264. public double WaterTemperature;
  265. }
  266. public struct ScenarioInfo
  267. {
  268. [JsonProperty("想定日期")]
  269. public string Data;
  270. [JsonProperty("想定时间")]
  271. public string Time;
  272. }
  273. //通信对象设定
  274. public class CommunicationSet
  275. {
  276. [JsonProperty("随机点生成定义")]
  277. public RandomPoint randomPoint;
  278. [JsonProperty("网格生成区域定义")]
  279. public GridArea gridArea;
  280. }
  281. //随机点生成定义
  282. public class RandomPoint
  283. {
  284. [JsonProperty("随机点区域边界")]
  285. public List<double[]> randomPointArea;
  286. [JsonProperty("随机点数量")]
  287. public int randomPointCount;
  288. // "随机点设备离地高度(m)": 1.6,
  289. [JsonProperty("随机点设备离地高度(m)")]
  290. public double randomPointDeviceHeight;
  291. // "用户携带的设备种类": "示例机载中继设备",
  292. [JsonProperty("用户携带的设备种类")]
  293. public string randomPointDeviceType;
  294. // "随机点名称": "示例消防员",
  295. [JsonProperty("随机点名称")]
  296. public string randomPointName;
  297. // "随机点本地遮挡(dB)": 0,
  298. [JsonProperty("随机点本地遮挡(dB)")]
  299. public double randomPointLocalLost;
  300. // "随机单点传输速率需求(Mbps)": 0.1
  301. [JsonProperty("随机单点传输速率需求(Mbps)")]
  302. public double randomPointDataSpeed;
  303. }
  304. //网格生成区域定义
  305. public class GridArea
  306. {
  307. [JsonProperty("网格点区域边界")]
  308. public List<double[]> gridPointArea;
  309. // "网格经度分辨率": 0.02,
  310. [JsonProperty("网格经度分辨率")]
  311. public double gridLongitudeResolution;
  312. // "网格纬度分辨率": 0.02,
  313. [JsonProperty("网格纬度分辨率")]
  314. public double gridLatitudeResolution;
  315. // "网格点设备离地高度(m)": 1.6,
  316. [JsonProperty("网格点设备离地高度(m)")]
  317. public double gridPointDeviceHeight;
  318. // "网格点用户携带的设备": "示例机载中继设备",
  319. [JsonProperty("网格点用户携带的设备")]
  320. public string gridPointDeviceType;
  321. // "网格点名称": "示例网格",
  322. [JsonProperty("网格点名称")]
  323. public string gridPointName;
  324. // "网格点本地遮挡(dB)": 0
  325. [JsonProperty("网格点本地遮挡(dB)")]
  326. public double gridPointLocalLost;
  327. }
  328. public class EditorConfig
  329. {
  330. [JsonProperty("仿真次数")]
  331. public int runCounts;
  332. [JsonProperty("想定信息")]
  333. public ScenarioInfo scenarioInfo = new ScenarioInfo();
  334. [JsonProperty("基地信息")]
  335. public List<Base> bases = new List<Base>();
  336. [JsonProperty("飞行器信息")]
  337. public List<AircraftParameter>aircraftParameters = new List<AircraftParameter>();
  338. [JsonProperty("火点")]
  339. public List<FirePoint> firePoints = new List<FirePoint>();
  340. [JsonProperty("天气信息")]
  341. public CityWeather cityWeather = new CityWeather();
  342. [JsonProperty("搜救目标点初始坐标")]
  343. public List<TargetPoint> targetPoints = new List<TargetPoint>();
  344. [JsonProperty("救援需求信息")]
  345. public List<RescueDemandInfo> rescueDemandInfos = new List<RescueDemandInfo>();
  346. [JsonProperty("物资人员点")]
  347. public List<GoodsPersonPoint> goodsPersonPoints = new List<GoodsPersonPoint>();
  348. [JsonProperty("通信对象设定")] public CommunicationSet communicationSets = new CommunicationSet();
  349. }