using Model; using Newtonsoft.Json; public class Base { [JsonProperty("基地名称")] public string BaseName; [JsonProperty("位置信息")] public string BasePositionInfo; [JsonProperty("基地编号")] public int BaseId; [JsonProperty("基地经度")] public double BaseLongitude; [JsonProperty("基地纬度")] public double BaseLatitude; [JsonProperty("基地海拔")] public double BaseHeight; } public struct AircraftParameter { [JsonProperty("机型")] public string AircraftID; [JsonProperty("飞机编号")] public string Id;//如1-2,1表示基地1,2表示基地1中的2号飞机 [JsonProperty("类型")] public string AircraftType; [JsonProperty("子类型")] public string AircraftSubType; [JsonProperty("所属机场ID")] public int AirportId; [JsonProperty("状态")] public string AircraftState; [JsonProperty("已连续工作时间")] public double AircraftRunTime; //[JsonProperty("任务载荷型号")] //public Dictionary taskLoadType; [JsonProperty("最大起飞重量")] public double MaxTakeoffWeight; [JsonProperty("最大载油量")] public double MaxFuelCapacity; [JsonProperty("最大载客数量")] public double MaxPassengerNumber; [JsonProperty("通信属性")] public List Communication; } //通信属性 public class Communication { [JsonProperty("名称")] public string CommunicationName; [JsonProperty("通信设备")] public string CommunicationEquipment; [JsonProperty("本地遮挡损耗(dB)")] public double LocalObstructionLoss; [JsonProperty("本体数据流量需求(Mbps)")] public double BodyDataFlowDemand; [JsonProperty("是否高优先级用户")] public bool HighPriorityUser; [JsonProperty("是否具备基站或卫通属性")] public bool BaseStationOrSatellite; } public class TaskLoadType { [JsonProperty("雷达设备")] public string RadarEquipment; [JsonProperty("光电探测设备")] public string PhotoelectricDetectionEquipment; } public class FirePoint { [JsonProperty("火点ID")] public int FirePointId; [JsonProperty("火点编号")] public string FirePointName; [JsonProperty("火点经度")] public double FirePointLongitude; [JsonProperty("火点纬度")] public double FirePointLatitude; [JsonProperty("火点海拔")] public double FirePointHeight; [JsonProperty("初始火线长度")] public double fireLength; [JsonProperty("目标气象信息")] public TargetWeather[] targetWeather; [JsonProperty("植被类型")] public int vegetationType; } public class WaterPoint { [JsonProperty("取水点名称")] public string WaterPointName; [JsonProperty("位置信息")] public string WaterPointPositionInfo; [JsonProperty("取水点编号")] public int WaterPointId; [JsonProperty("取水点经度")] public double WaterPointLongitude; [JsonProperty("取水点纬度")] public double WaterPointLatitude; [JsonProperty("取水点海拔")] public double WaterPointHeight; } public class TargetPoint//搜救目标点初始坐标 { [JsonProperty("目标点ID")] public int TargetPointId; [JsonProperty("目标点经度")] public double TargetPointLongitude; [JsonProperty("目标点纬度")] public double TargetPointLatitude; [JsonProperty("目标点海拔")] public double TargetPointHeight; [JsonProperty("目标类型")] public TargetType TargetType; } public class TargetType { [JsonProperty("类型")] public string Type; [JsonProperty("目标大小")] public string Size; [JsonProperty("目标吨位")] public string Tonnage; } public class ClimbSegment { [JsonProperty("爬升段速度")] public double ClimbVelocity; [JsonProperty("爬升段油耗率")] public double ClimbFuelConsumptionRate; } public class DescentSegment { [JsonProperty("下降段速度")] public double DescentVelocity; [JsonProperty("下降段油耗率")] public double DescentFuelConsumptionRate; } public class CruiseSegment { [JsonProperty("巡航段高度")] public double CruiseHeight = 2000; [JsonProperty("巡航段速度")] public double CruiseVelocity; [JsonProperty("巡航段油耗率")] public double CruiseFuelConsumptionRate; } public struct TargetWeather { [JsonProperty("时间")] public string Time; [JsonProperty("温度")] public double Temperature; [JsonProperty("能见度")] public double Humidity; [JsonProperty("湿度")] public double Visibility; [JsonProperty("风向")] public double WindDirection; [JsonProperty("风速")] public double WindSpeed; [JsonProperty("天气")] public string Weather; } public struct CityWeather { [JsonProperty("调用方式")] public string CallMethod; [JsonProperty("温度")] public double Temperature; //能见度 [JsonProperty("能见度")] public double Visibility; //水温 [JsonProperty("水温")] public double WaterTemperature; } public struct ScenarioInfo { [JsonProperty("想定日期")] public string Data; [JsonProperty("想定时间")] public string Time; } //通信对象设定 public class CommunicationSet { [JsonProperty("随机点生成定义")] public RandomPoint randomPoint; [JsonProperty("网格生成区域定义")] public GridArea gridArea; } //随机点生成定义 public class RandomPoint { [JsonProperty("随机点区域边界")] public List randomPointArea; [JsonProperty("随机点数量")] public int randomPointCount; // "随机点设备离地高度(m)": 1.6, [JsonProperty("随机点设备离地高度(m)")] public double randomPointDeviceHeight; // "用户携带的设备种类": "示例机载中继设备", [JsonProperty("用户携带的设备种类")] public string randomPointDeviceType; // "随机点名称": "示例消防员", [JsonProperty("随机点名称")] public string randomPointName; // "随机点本地遮挡(dB)": 0, [JsonProperty("随机点本地遮挡(dB)")] public double randomPointLocalLost; // "随机单点传输速率需求(Mbps)": 0.1 [JsonProperty("随机单点传输速率需求(Mbps)")] public double randomPointDataSpeed; } //网格生成区域定义 public class GridArea { [JsonProperty("网格点区域边界")] public List gridPointArea; // "网格经度分辨率": 0.02, [JsonProperty("网格经度分辨率")] public double gridLongitudeResolution; // "网格纬度分辨率": 0.02, [JsonProperty("网格纬度分辨率")] public double gridLatitudeResolution; // "网格点设备离地高度(m)": 1.6, [JsonProperty("网格点设备离地高度(m)")] public double gridPointDeviceHeight; // "网格点用户携带的设备": "示例机载中继设备", [JsonProperty("网格点用户携带的设备")] public string gridPointDeviceType; // "网格点名称": "示例网格", [JsonProperty("网格点名称")] public string gridPointName; // "网格点本地遮挡(dB)": 0 [JsonProperty("网格点本地遮挡(dB)")] public double gridPointLocalLost; } public class EditorConfig { [JsonProperty("仿真次数")] public int runCounts; [JsonProperty("想定信息")] public ScenarioInfo scenarioInfo = new ScenarioInfo(); [JsonProperty("基地信息")] public List bases = new List(); [JsonProperty("飞行器信息")] public List aircraftParameters = new List(); [JsonProperty("火点")] public List firePoints = new List(); [JsonProperty("取水点")] public List waterPoints = new List(); [JsonProperty("天气信息")] public CityWeather cityWeather = new CityWeather(); [JsonProperty("搜救目标点初始坐标")] public List targetPoints = new List(); [JsonProperty("通信对象设定")] public CommunicationSet communicationSets = new CommunicationSet(); }