Browse Source

修改陆上和海上搜救搜索任务载荷传参

liyang 6 months ago
parent
commit
0001a26546

+ 4 - 3
SimulationServer/Entity/AircraftLandSJ.cs

@@ -24,6 +24,7 @@ public class AircraftLandSJ : AircraftEntity
     public MissionEndPoint MissionEndPoint;
     public SearchMissionMode SearchMissionMode;
     public bool Success = false; //本目标搜救是否成功
+    public SearchMissionPayload searchMissionPayload;
 
     public override void Reset()
     {
@@ -173,16 +174,16 @@ public class AircraftLandSJ : AircraftEntity
                     targetPoint.y);
                 Log.Info("距离:====================" + distance);
 
-                if (taskContent.missionSearchPayloads[0].SearchPayload == "雷达搜索")
+                if (searchMissionPayload.SearchPayload == "雷达搜索")
                 {
                     // Pd0 = 0.5 / Pf0 = Math.Pow(10,-6) / Pf = Math.Pow(10,-6) / R0 = 23645 / sigma0 = 5000 / sigma = Editor雷达截面面积 // R 单位m 
                     probability = helper.GetRadarPossibility(0.5, Math.Pow(10, -6), Math.Pow(10, -6), 23645, aricraftPoint, FlightPlanEditor.targetpoint[0], FlightPlanEditor.targetpoint[0].TargetType.RadarArea, 5000, visibility);
                 }
-                else if (taskContent.missionSearchPayloads[0].SearchPayload == "目视搜素")
+                else if (searchMissionPayload.SearchPayload == "目视搜素")
                 {
                     probability = helper.GetMushiLandProbability(aricraftPoint, visibility, FlightPlanEditor.targetpoint[0]);
                 }
-                else if (taskContent.missionSearchPayloads[0].SearchPayload == "光电(红外)搜索")
+                else if (searchMissionPayload.SearchPayload == "光电(红外)搜索")
                 {
                     // Lt = 探测目标亮度 Editor / At = 探测目标面积 Editor / τa = 1 / Lb = 3 / A0 = 1 / D0 = 0.075 / Dstar = 3 / τo = 0.8 / Ad = 0.0073728 / Δf = 0.125 / δ = 0.5 / Pf0 = Math.Pow(10, -6);
                     probability = helper.GetInfraredDetectionProbability(FlightPlanEditor.targetpoint[0].TargetType.TargetBrightness, FlightPlanEditor.targetpoint[0].TargetType.TargetArea, 1, 3, 1, aricraftPoint, FlightPlanEditor.targetpoint[0], 0.075, 3, 0.8, 0073728, 0.125, 0.5, Math.Pow(10, -6));

+ 4 - 3
SimulationServer/Entity/AircraftSJ.cs

@@ -27,6 +27,7 @@ public class AircraftSJ : AircraftEntity
     public bool Success = false; //本目标搜救是否成功
     public GetNCData getNCData;
     public double resulttime;
+    public SearchMissionPayload searchMissionPayload;
 
     //private bool isbool;
     //private bool isbool2;
@@ -268,16 +269,16 @@ public class AircraftSJ : AircraftEntity
                     currentLocation.CurrentLat,
                     targetPoint.y);
                 Log.Info("距离:====================" + distance);
-                if (taskContent.missionSearchPayloads[0].SearchPayload == "雷达搜索")
+                if (searchMissionPayload.SearchPayload == "雷达搜索")
                 {
                     // Pd0 = 0.5 / Pf0 = Math.Pow(10,-6) / Pf = Math.Pow(10,-6) / R0 = 23645 / sigma0 = 5000 / sigma = Editor雷达截面面积 // R 单位m 
                     probability = helper.GetRadarPossibility(0.5, Math.Pow(10, -6), Math.Pow(10, -6), 23645, aricraftPoint, FlightPlanEditor.targetpoint[0], FlightPlanEditor.targetpoint[0].TargetType.RadarArea, 5000, vis);
                 }
-                else if (taskContent.missionSearchPayloads[0].SearchPayload == "目视搜素")
+                else if (searchMissionPayload.SearchPayload == "目视搜素")
                 {
                     probability = helper.GetMushiSeaProbability(aricraftPoint, vis, waveHigh, FlightPlanEditor.targetpoint[0]);
                 }
-                else if (taskContent.missionSearchPayloads[0].SearchPayload == "光电(红外)搜索")
+                else if (searchMissionPayload.SearchPayload == "光电(红外)搜索")
                 {
                     // Lt = 探测目标亮度 Editor / At = 探测目标面积 Editor / τa = 1 / Lb = 3 / A0 = 1 / D0 = 0.075 / Dstar = 3 / τo = 0.8 / Ad = 0.0073728 / Δf = 0.125 / δ = 0.5 / Pf0 = Math.Pow(10, -6);
                     probability = helper.GetInfraredDetectionProbability(FlightPlanEditor.targetpoint[0].TargetType.TargetBrightness, FlightPlanEditor.targetpoint[0].TargetType.TargetArea, 1, 3, 1, aricraftPoint, FlightPlanEditor.targetpoint[0], 0.075, 3, 0.8, 0073728, 0.125, 0.5, Math.Pow(10, -6));

+ 10 - 0
SimulationServer/EventHandler/CreateTaskEventHandler.cs

@@ -296,6 +296,11 @@ public class CreateSeaSJEventHandler : AEvent<CreateSeaSJTask>
                 if (aircraft.AircraftId == item.AircraftId)
                     aircraft.SearchMode = item;
             }
+            foreach (var item in config.SeaSJTask.missionSearchPayloads)
+            {
+                if (aircraft.AircraftId == item.AircraftId)
+                    aircraft.searchMissionPayload = item;
+            }
             aircraft.AddComponent<SJStaticCapacityComponent>();
             Log.Info($"创建机型 : {flightPlanEditor.aircraftparameter.AircraftID}");
         }
@@ -345,6 +350,11 @@ public class CreateLandSJEventHandler : AEvent<CreateLandSXTask>
                 if (item.AircraftId == aircraft.AircraftId)
                     aircraft.SearchMissionMode = item;
             }
+            foreach (var item in config.LandSXTask.missionSearchPayloads)
+            {
+                if (aircraft.AircraftId == item.AircraftId)
+                    aircraft.searchMissionPayload = item;
+            }
 
             aircraft.AddComponent<SJStaticCapacityComponent>();
             Log.Info($"创建机型 : {flightPlanEditor.aircraftparameter.AircraftID}");

+ 18 - 18
SimulationServer/EventHandler/ServerStartEventHandler.cs

@@ -97,25 +97,25 @@ public class ServerStartEventHandler : AEvent<ServerStart>
         //}
         //Console.WriteLine("taskConfig.seaSouJiuTasks.Count:" + taskConfig.seaSouJiuTasks.Count);
         //创建搜救
-        //foreach (var seaSJTask in taskConfig.seaSouJiuTasks)
-        //{
-        //    //Console.WriteLine("seaSJTask.missionInformation.MissionName:" + seaSJTask.missionInformation.MissionName);
-        //    //Console.WriteLine("TargetPointId:" + seaSJTask.TargetPointId);
-        //    //Console.WriteLine("SearchPayload:" + seaSJTask.SearchPayload);
-        //    //Console.WriteLine("SearchMode:" + seaSJTask.SearchMode);
-        //    //Console.WriteLine("RadarTransmitterPower:" + seaSJTask.RadarTransmitterPower);
-        //    //Console.WriteLine("仿真次数:" + editorConfig.runCounts);
-        //    Game.EventSystem.Publish(new CreateSeaSJTask
-        //    { EditorConfig = editorConfig, SeaSJTask = seaSJTask });
-        //    //break;
-        //}
+        foreach (var seaSJTask in taskConfig.seaSouJiuTasks)
+        {
+            //Console.WriteLine("seaSJTask.missionInformation.MissionName:" + seaSJTask.missionInformation.MissionName);
+            //Console.WriteLine("TargetPointId:" + seaSJTask.TargetPointId);
+            //Console.WriteLine("SearchPayload:" + seaSJTask.SearchPayload);
+            //Console.WriteLine("SearchMode:" + seaSJTask.SearchMode);
+            //Console.WriteLine("RadarTransmitterPower:" + seaSJTask.RadarTransmitterPower);
+            //Console.WriteLine("仿真次数:" + editorConfig.runCounts);
+            Game.EventSystem.Publish(new CreateSeaSJTask
+            { EditorConfig = editorConfig, SeaSJTask = seaSJTask });
+            //break;
+        }
 
-        //foreach (var landSXTask in taskConfig.LandSouXunTasks)
-        //{
-        //    Game.EventSystem.Publish(new CreateLandSXTask
-        //    { EditorConfig = editorConfig, LandSXTask = landSXTask });
-        //    //break;
-        //}
+        foreach (var landSXTask in taskConfig.LandSouXunTasks)
+        {
+            Game.EventSystem.Publish(new CreateLandSXTask
+            { EditorConfig = editorConfig, LandSXTask = landSXTask });
+            //break;
+        }
 
         //创建空中吊运救援任务
         foreach (var KZDYTask in taskConfig.KZDYTasks)