Browse Source

修改海上和陆上覆盖面积

liyang 6 months ago
parent
commit
a9daed88fe

+ 2 - 0
Models/SimulationCommon/TaskConfig.cs

@@ -417,6 +417,8 @@ public class SearchMissionMode //搜索方式
     public double TrueH;
     [JsonProperty("输出等高线节点间隔")]
     public int JG;
+    [JsonProperty("环境搜索覆盖面积")]
+    public double LandArea;
 }
 
 public class MHTaskConfig

+ 14 - 3
SimulationServer/Component/TaskComponent.cs

@@ -224,6 +224,8 @@ public class TaskComponentUpdateSystem : UpdateSystem<TaskComponent>
     double 平均救助时间 = 0;
     float 人员数量 = 0;
     float 识别数量 = 0;
+    double 环境搜索覆盖面积 = 0;
+    double 海上搜索覆盖面积 = 0;
     double aircreftCount = 0;
 
     double searchCount = 0;
@@ -340,8 +342,13 @@ public class TaskComponentUpdateSystem : UpdateSystem<TaskComponent>
                 平均救助时间 = 0;
                 人员数量 = 0;
                 识别数量 = 0;
+                环境搜索覆盖面积 = 0;
+                海上搜索覆盖面积 = 0;
+
+                aircreftCount = 0;
+                searchCount = 0;
+                jzCount = 0;
 
-                double aircreftCount = 0;
                 foreach (var item in self.SeaSJRescueMissions)
                 {
                     foreach (var item1 in item.aircraftSJDatas)
@@ -355,6 +362,7 @@ public class TaskComponentUpdateSystem : UpdateSystem<TaskComponent>
                         平均救助时间 += float.Parse(item1.Value["平均救助时间"][i]);
                         总飞行时间 += float.Parse(item1.Value["总飞行时间"][i]);
                         人员存活率 += float.Parse(item1.Value["人员存活率"][i]);
+                        海上搜索覆盖面积 += float.Parse(item1.Value["海上搜索覆盖面积"][i]);
                         aircreftCount++;
                         if (item1.Value["平均搜索时间"][i] != "0")
                             searchCount++;
@@ -368,6 +376,7 @@ public class TaskComponentUpdateSystem : UpdateSystem<TaskComponent>
                         Console.WriteLine("海上搜救" + item1.Key + "总飞行时间:" + item1.Value["总飞行时间"][i]);
                         Console.WriteLine("海上搜救" + item1.Key + "存活人数:" + item1.Value["人员存活率"][i]);
                         Console.WriteLine("海上搜救" + item1.Key + "人员数量:" + item1.Value["人员数量"][i]);
+                        Console.WriteLine("海上搜救" + item1.Key + "海上搜索覆盖面积:" + item1.Value["海上搜索覆盖面积"][i]);
                         Console.WriteLine("===============================================================");
                     }
                 }
@@ -385,6 +394,7 @@ public class TaskComponentUpdateSystem : UpdateSystem<TaskComponent>
                         平均救助时间 += float.Parse(item1.Value["平均救助时间"][i]);
                         总飞行时间 += float.Parse(item1.Value["总飞行时间"][i]);
                         人员存活率 += float.Parse(item1.Value["人员存活率"][i]);
+                        环境搜索覆盖面积 += float.Parse(item1.Value["环境搜索覆盖面积"][i]);
                         aircreftCount++;
                         if (item1.Value["平均搜索时间"][i] != "0")
                             searchCount++;
@@ -398,6 +408,7 @@ public class TaskComponentUpdateSystem : UpdateSystem<TaskComponent>
                         Console.WriteLine("路上搜寻" + item1.Key + "总飞行时间:" + item1.Value["总飞行时间"][i]);
                         Console.WriteLine("路上搜寻" + item1.Key + "存活人数:" + item1.Value["人员存活率"][i]);
                         Console.WriteLine("路上搜寻" + item1.Key + "人员数量:" + item1.Value["人员数量"][i]);
+                        Console.WriteLine("路上搜寻" + item1.Key + "环境搜索覆盖面积:" + item1.Value["环境搜索覆盖面积"][i]);
                         Console.WriteLine("===============================================================");
                     }
                 }
@@ -581,9 +592,9 @@ public class TaskComponentUpdateSystem : UpdateSystem<TaskComponent>
 
                 allTotalTaskPerformance.总飞行时间 = 总飞行时间.ToString("f4");
 
-                allTotalTaskPerformance.海上搜索覆盖面积 = Rectangular_Area_Search_Function.min_area.ToString();//"0.6".ToString();//"60%"
+                allTotalTaskPerformance.海上搜索覆盖面积 = 海上搜索覆盖面积.ToString();//"0.6".ToString();//"60%"
 
-                allTotalTaskPerformance.环境搜索覆盖面积 = "0.6".ToString();
+                allTotalTaskPerformance.环境搜索覆盖面积 = 环境搜索覆盖面积.ToString();//"0.6".ToString();
 
                 allTotalTaskPerformance.任务是否成功 = 任务是否成功.ToString();
 

+ 5 - 0
SimulationServer/Entity/AircraftLandSJ.cs

@@ -37,6 +37,8 @@ public class AircraftLandSJ : AircraftEntity
 
     public int sbCount;
 
+    public double landArea;
+
     public override void Reset()
     {
         base.Reset();
@@ -49,6 +51,7 @@ public class AircraftLandSJ : AircraftEntity
         resulttime = 0;
         targetCount = 0;
         sbCount = 0;
+        landArea = 0;
     }
 
     public override void Start()
@@ -61,6 +64,8 @@ public class AircraftLandSJ : AircraftEntity
         else
             sbCount = 1;
 
+        landArea = SearchMissionMode.LandArea;
+
         int Year = Convert.ToInt32(taskContent.missionInformation.StartDate.Split("年")[0]);
         int Month = Convert.ToInt32(taskContent.missionInformation.StartDate.Split("年")[1].Split("月")[0]);
         int Day = Convert.ToInt32(taskContent.missionInformation.StartDate.Split("年")[1].Split("月")[1].Split("日")[0]);

+ 4 - 0
SimulationServer/Entity/AircraftSJ.cs

@@ -43,6 +43,8 @@ public class AircraftSJ : AircraftEntity
 
     public int sbCount;
 
+    public double seaArea;
+
     public override void Reset()
     {
         base.Reset();
@@ -55,6 +57,7 @@ public class AircraftSJ : AircraftEntity
         isEndWhile = false;
         targetCount = 0;
         sbCount = 0;
+        seaArea = 0;
     }
 
     public override void Start()
@@ -108,6 +111,7 @@ public class AircraftSJ : AircraftEntity
         };
 
         var temp = SeaSJ.getminEnclosingRect(trajectory); // 
+        seaArea = Rectangular_Area_Search_Function.min_area;
         // temp 转成 List<Point>
         List<Point> points = new List<Point>();
         foreach (var item in temp)

+ 3 - 0
SimulationServer/Entity/LandSJRescueMission.cs

@@ -114,6 +114,9 @@ public class LandSJRescueMission : Entity
             if (!aircraftSJDatas[key].ContainsKey("人员存活率"))
                 aircraftSJDatas[key]["人员存活率"] = new List<string>();
             aircraftSJDatas[key]["人员存活率"].Add(aircraftEntity.Success ? aircraftEntity.targetCount.ToString() : "0");
+            if (!aircraftSJDatas[key].ContainsKey("环境搜索覆盖面积"))
+                aircraftSJDatas[key]["环境搜索覆盖面积"] = new List<string>();
+            aircraftSJDatas[key]["环境搜索覆盖面积"].Add(aircraftEntity.landArea.ToString());
         }
     }
 

+ 3 - 0
SimulationServer/Entity/SeaSJRescueMission.cs

@@ -114,6 +114,9 @@ public class SeaSJRescueMission : Entity
             if (!aircraftSJDatas[key].ContainsKey("人员存活率"))
                 aircraftSJDatas[key]["人员存活率"] = new List<string>();
             aircraftSJDatas[key]["人员存活率"].Add(aircraftEntity.Success ? aircraftEntity.targetCount.ToString() : "0");
+            if (!aircraftSJDatas[key].ContainsKey("海上搜索覆盖面积"))
+                aircraftSJDatas[key]["海上搜索覆盖面积"] = new List<string>();
+            aircraftSJDatas[key]["海上搜索覆盖面积"].Add(aircraftEntity.seaArea.ToString());
         }
     }
 

+ 1 - 1
SimulationServer/bin/Debug/net7.0/Missions/editor_config.json

@@ -1,5 +1,5 @@
 {
-    "仿真次数":1,
+    "仿真次数":2,
     "想定信息": {
         "想定日期": "2024年6月4日",
         "想定时间": "00时00分00秒"

BIN
SimulationServer/bin/Debug/net7.0/SimulationCommon.dll


BIN
SimulationServer/bin/Debug/net7.0/SimulationCommon.pdb


BIN
SimulationServer/bin/Debug/net7.0/SimulationServer.dll


BIN
SimulationServer/bin/Debug/net7.0/SimulationServer.exe


BIN
SimulationServer/bin/Debug/net7.0/SimulationServer.pdb