Browse Source

会议确认修改各子任务

liyang 6 months ago
parent
commit
940384391a

+ 13 - 1
Models/SimulationCommon/FXJHGenenrate.cs

@@ -428,6 +428,18 @@ namespace Model
                     SegmentFlightTime = 0,
                     RemainingFuel = 0,
                 });
+
+                turningPoint.Add(new TurningPoint
+                {
+                    TurningPointName = "转运",
+                    TurningPointLongitude = airRoutes[i].AirRouteLongitude,
+                    TurningPointLatitude = airRoutes[i].AirRouteLatitude,
+                    TurningPointHeight = 1000,
+                    TurningPointType = "转运",
+                    SegmentFlightFuelConsumption = 3,
+                    SegmentFlightTime = 0,
+                    RemainingFuel = 0,
+                });
             }
         }
 
@@ -441,7 +453,7 @@ namespace Model
                     TurningPointName = "巡航",
                     TurningPointLongitude = editor.airroute[i].AirRouteLongitude,
                     TurningPointLatitude = editor.airroute[i].AirRouteLatitude,
-                    TurningPointHeight = 2000,
+                    TurningPointHeight = 150,
                     TurningPointType = "普通",
                     SegmentFlightFuelConsumption = 3,
                     SegmentFlightTime = 0,

+ 8 - 1
SimulationServer/Entity/AircraftDY.cs

@@ -42,10 +42,17 @@ public class AircraftDY : AircraftEntity
 
         // 飞到目标点时间与人员存活时间做对比  有一个人活着,整个任务成功
         //double survivalTime = SurvivalTimeModel.SurvivalTime(getNCData.tempreadNC, latitude, longitude, time, text_ReadNC.times, text_ReadNC.latitudes, text_ReadNC.longitudes, Days, Hour); //幸存时间
+        // 陆上搜寻预期存活时间读配置文件
+        //for (int i = 0; i < TurningPoints.Count - 1; i++) // 总飞行时间
+        //{
+        //    TotalTime += TurningPoints[i].SegmentFlightTime; // 总时间  // 判断幸存-1
+        //}
+        // 类型只有人,其它不影响任务成功率 ,所有目标都影响识别成功率  任务准备时间 分钟 平均搜索时间 小时 平均救助时间 秒 总飞行时间 小时 第一列加单位
 
         FXJHGenerate.FromStartToMission(FlightPlanEditor, ref TurningPoints);//生成从起点到任务段起点的航路点
         // 吊运上升速度  吊运下降速度 Task文件读取 // Editor里读天气根据时间
         double resulttime = get_result_time_rope(taskParameter.Height, taskParameter.liftPersonnel, windSpeed, vis, taskParameter.liftUpSpeed, taskParameter.liftDownSpeed).time;//索滑降模型输出的索滑降时间
+        Console.WriteLine("resulttime:" + resulttime);
         FXJHGenerate.SuoHuaJiang(resulttime, FlightPlanEditor, ref TurningPoints);
 
         FXJHGenerate.FromMissionToEnd(FlightPlanEditor, FXJHGenerate.SuoHuaJiangMissionEndPoint(FlightPlanEditor), ref TurningPoints); 
@@ -54,8 +61,8 @@ public class AircraftDY : AircraftEntity
         for (int i = 0; i < TurningPoints.Count; i++) // 总飞行时间
         {
             TotalTime += TurningPoints[i].SegmentFlightTime; // 总时间   //仿真轮次1 数值1
-            //Console.WriteLine("TotalTime:" + TotalTime);
         }
+        Console.WriteLine("TotalTime:" + TotalTime);
         IsOver = true;
         Success = true;
         End();

+ 1 - 1
SimulationServer/Entity/AircraftJJ.cs

@@ -74,7 +74,7 @@ public class AircraftJJ : AircraftEntity
             TotalTime += TurningPoints[i].SegmentFlightTime; // 总时间   //仿真轮次1 数值1
             //Console.WriteLine("TotalTime:" + TotalTime);
         }
-
+        Console.WriteLine("TotalTime:" + TotalTime);
         IsOver = true;
         Success = true; //需要判断
         End();

+ 15 - 5
SimulationServer/Entity/AircraftKTKS.cs

@@ -74,6 +74,8 @@ public class AircraftKTKS : AircraftEntity
         Hour = Convert.ToInt32(taskContent.missionInformation.StartTime.Split("时")[0]);
         Days = GetDaysInYear(Year, Month, Day);
         Text_readNC text_ReadNC = new Text_readNC();
+        text_ReadNC.initlatitudes = rescueDemandInfo.TargetPointLatitude;
+        text_ReadNC.initlongitudes = rescueDemandInfo.TargetPointLongitude;
         text_ReadNC.GetNCData();
         var nCread = text_ReadNC.windNCread;
 
@@ -85,7 +87,7 @@ public class AircraftKTKS : AircraftEntity
         List<double> KTresultPostion = new List<double>();
 
         double KTheight;
-        if(taskParameter.isParachute)  //空投空送任务文件读取
+        if (taskParameter.isParachute)  //空投空送任务文件读取
         {
             KTheight = 200;
             // 空投迎风面积 = 1.5 空投空送任务文件读取 50 = 空投重量 空投空送任务文件读取
@@ -96,13 +98,21 @@ public class AircraftKTKS : AircraftEntity
             double resultX = inix + 33 * Math.Cos(alpha) * KTiniposition[2];
             double resultY = iniy + 33 * Math.Sin(alpha) * KTiniposition[2];
 
-            KTresultPostion[0] = ReMokatuo_lat(resultY);
-            KTresultPostion[1] = ReMokatuo_lon(resultX);
+            KTresultPostion.Add(ReMokatuo_lat(resultY));
+            KTresultPostion.Add(ReMokatuo_lon(resultX));
         }
         else
         {
             KTheight = 20;
             KTiniposition = getPositionWithoutUmbrella(FlightPlanEditor.missionpoint.MissionPointLongitude, FlightPlanEditor.missionpoint.MissionPointLatitude, KTheight, windSpeed, 22, alpha, theta);
+            double inix = Mokatuo_lon(KTiniposition[1]);
+            double iniy = Mokatuo_lat(KTiniposition[0]);
+
+            double resultX = inix + 22 * Math.Cos(alpha) * KTiniposition[2];
+            double resultY = iniy + 22 * Math.Sin(alpha) * KTiniposition[2];
+
+            KTresultPostion.Add(ReMokatuo_lat(resultY));
+            KTresultPostion.Add(ReMokatuo_lon(resultX));
         }
 
         TurningPoints.RemoveAt(2);
@@ -127,8 +137,8 @@ public class AircraftKTKS : AircraftEntity
         for (int i = 0; i < TurningPoints.Count; i++) // 总飞行时间
         {
             TotalTime += TurningPoints[i].SegmentFlightTime; // 总时间   //仿真轮次1 数值1
-            //Console.WriteLine("TotalTime:" + TotalTime);
         }
+        Console.WriteLine("TotalTime:" + TotalTime);
         IsOver = true;
         Success = true; //需要判断
         End();
@@ -288,7 +298,7 @@ public class AircraftKTKS : AircraftEntity
         double lat = ReMokatuo_lat(y_new);
         double lon = ReMokatuo_lon(x_new);
         List<double> result = new List<double>()
-            {lat, lon};
+            {lat, lon,time};
         Console.WriteLine(y_new);
         Console.WriteLine(y);
         return result; //投放空投的位置

+ 20 - 0
SimulationServer/Entity/AircraftLandSJ.cs

@@ -26,6 +26,7 @@ public class AircraftLandSJ : AircraftEntity
     public bool Success = false; //本目标搜救是否成功
     public SearchMissionPayload searchMissionPayload;
 
+    public double resulttime;
     public override void Reset()
     {
         base.Reset();
@@ -217,6 +218,8 @@ public class AircraftLandSJ : AircraftEntity
                     fireIndex = currentLocation.Currentsegnum; // 记录当前航路点位置
                     IsOver = true;
                     Success = true;
+                    //resulttime = get_result_time_rope(30, FlightPlanEditor.targetpoint[0].TargetType.Count, windSpeed, visibility, 0.75, 1.38).time; //调运时间
+                    //Console.WriteLine("resulttime:" + resulttime);
                 }
                 else
                 {
@@ -262,6 +265,23 @@ public class AircraftLandSJ : AircraftEntity
         });
     }
 
+    public static handling_result get_result_time_rope(double H, int person_number, double windspeed, double vis, double upspeed, double downspeed)
+    {
+
+        handling_result result = new handling_result();
+
+        if (windspeed < 8 && vis > 3)
+        {
+            result.time = (person_number * H) / downspeed + (person_number * H) / upspeed;
+            result.success = true;
+        }
+        else
+        {
+            result.success = false;
+        }
+        return result;
+    }
+
 
     public override void End()
     {

+ 2 - 0
SimulationServer/Entity/AircraftSHJ.cs

@@ -42,6 +42,7 @@ public class AircraftSHJ : AircraftEntity
 
         FXJHGenerate.FromStartToMission(FlightPlanEditor, ref TurningPoints);//生成从起点到任务段起点的航路点
         double resulttime = get_result_time_rope(SHJParameter.H, SHJParameter.person_number, windSpeed, vis, SHJParameter.descendspeed).time;//索滑降模型输出的索滑降时间
+        Console.WriteLine("resulttime:" + resulttime);
         FXJHGenerate.SuoHuaJiang(resulttime, FlightPlanEditor, ref TurningPoints);
         FXJHGenerate.FromMissionToEnd(FlightPlanEditor, FXJHGenerate.SuoHuaJiangMissionEndPoint(FlightPlanEditor), ref TurningPoints);
         FXJHGenerate.FXJHTPDiedai(FlightPlanEditor, ref TurningPoints, Velocitys, FuelConsumptions);
@@ -52,6 +53,7 @@ public class AircraftSHJ : AircraftEntity
             TotalTime += TurningPoints[i].SegmentFlightTime; // 总时间   //仿真轮次1 数值1
             //Console.WriteLine("TotalTime:" + TotalTime);
         }
+        Console.WriteLine("TotalTime:" + TotalTime);
         IsOver = true;
         Success = true;
         End();

+ 1 - 0
SimulationServer/Entity/AircraftSJ.cs

@@ -329,6 +329,7 @@ public class AircraftSJ : AircraftEntity
                 double survivalTime = SurvivalTimeModel.SurvivalTime(getNCData.tempreadNC, latitude, longitude, time, text_ReadNC.times, text_ReadNC.latitudes, text_ReadNC.longitudes, Days, Hour); //幸存时间
                 //  SHJParameter.person_number = Eidtor里读取   SHJParameter.windspeed Nc/Editor目标气象信息读取时间先取任务初始时间
                 resulttime = get_result_time_rope(30, FlightPlanEditor.targetpoint[0].TargetType.Count, windSpeed, vis, 0.75, 1.38).time; //调运时间
+                Console.WriteLine("resulttime:" + resulttime);
                 if (survivalTime * 3600 > time)
                 {
                     Success = true;

+ 1 - 0
SimulationServer/Entity/AircraftZS.cs

@@ -87,6 +87,7 @@ public class AircraftZS : AircraftEntity
             TotalTime += TurningPoints[i].SegmentFlightTime; // 总时间   //仿真轮次1 数值1
             //Console.WriteLine("TotalTime:" + TotalTime);
         }
+        Console.WriteLine("TotalTime:" + TotalTime);
 
         IsOver = true;
         Success = true; //需要判断

+ 14 - 14
SimulationServer/EventHandler/ServerStartEventHandler.cs

@@ -96,7 +96,7 @@ public class ServerStartEventHandler : AEvent<ServerStart>
         //    { EditorConfig = editorConfig, XHTask = xhTask });
         //}
         //Console.WriteLine("taskConfig.seaSouJiuTasks.Count:" + taskConfig.seaSouJiuTasks.Count);
-        ////创建搜救
+        //创建搜救
         //foreach (var seaSJTask in taskConfig.seaSouJiuTasks)
         //{
         //    //Console.WriteLine("seaSJTask.missionInformation.MissionName:" + seaSJTask.missionInformation.MissionName);
@@ -118,12 +118,12 @@ public class ServerStartEventHandler : AEvent<ServerStart>
         //}
 
         //创建空中吊运救援任务
-        foreach (var KZDYTask in taskConfig.KZDYTasks)
-        {
-            Game.EventSystem.Publish(new CreateKZDYTask
-            { EditorConfig = editorConfig, KZDYTask = KZDYTask });
-            //break;
-        }
+        //foreach (var KZDYTask in taskConfig.KZDYTasks)
+        //{
+        //    Game.EventSystem.Publish(new CreateKZDYTask
+        //    { EditorConfig = editorConfig, KZDYTask = KZDYTask });
+        //    //break;
+        //}
 
         ////创建空投空送任务
         //foreach (var KTKSTask in taskConfig.KTKSTasks)
@@ -149,13 +149,13 @@ public class ServerStartEventHandler : AEvent<ServerStart>
         //    //break;
         //}
 
-        ////创建索滑降救援任务
-        //foreach (var SHJTask in taskConfig.SHJTasks)
-        //{
-        //    Game.EventSystem.Publish(new CreateSHJTask
-        //    { EditorConfig = editorConfig, SHJTask = SHJTask });
-        //    break;
-        //}
+        //创建索滑降救援任务
+        foreach (var SHJTask in taskConfig.SHJTasks)
+        {
+            Game.EventSystem.Publish(new CreateSHJTask
+            { EditorConfig = editorConfig, SHJTask = SHJTask });
+            break;
+        }
 
         taskSys.ExecutionContext = editorConfig.runCounts;
         taskSys.Start();

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