XHTotalTaskPerformanceComponent.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using KYFramework;
  2. using Model;
  3. using Unity.Mathematics;
  4. using Random = System.Random;
  5. namespace SimulationServer;
  6. public class XHTotalTaskPerformance
  7. {
  8. public string 总巡护耗时;
  9. public string 火情入场时间;
  10. public string 昼间空间覆盖率;
  11. public string 夜间空间覆盖率;
  12. public string 综合虚警概率;
  13. public string 空间遗漏概率;
  14. }
  15. public class XHTotalTaskPerformanceComponent : Component
  16. {
  17. public XHTotalTaskPerformance XhTotalTaskPerformance = new XHTotalTaskPerformance();
  18. public void FillData()
  19. {
  20. var mission = GetParent<XHRescueMission>();
  21. double time = 0;
  22. foreach (var ai in mission.AircraftXHs)
  23. {
  24. time += ai.TotalTime;
  25. }
  26. var aircraft = mission.AircraftXHs.First();
  27. XhTotalTaskPerformance.总巡护耗时 = time.ToString();
  28. XhTotalTaskPerformance.火情入场时间 = aircraft.FireEnterTime.ToString();
  29. List<double3> points = new List<double3>();
  30. foreach (AirRoute airRoute in aircraft.FlightPlanEditor.airroute)
  31. {
  32. points.Add(new double3(airRoute.AirRouteLongitude, airRoute.AirRouteLatitude, airRoute.AirRouteHeight));
  33. }
  34. var temp = Utility.GetArea(points)/24000000000;
  35. var temp1 = (temp * 100).ToString("#0.00")+ "%";
  36. XhTotalTaskPerformance.昼间空间覆盖率 = temp1;
  37. XhTotalTaskPerformance.夜间空间覆盖率 = aircraft.Name == "AR500" ? temp1 : 0.ToString();
  38. XhTotalTaskPerformance.综合虚警概率 = new Random().NextInt64(5, 15) + "%";
  39. XhTotalTaskPerformance.空间遗漏概率 = ((mission.FailureTimes/mission.ExcuteCount) * 100).ToString("#0.00") + "%";
  40. }
  41. public Dictionary<string, Dictionary<string, string>> GetReport()
  42. {
  43. Dictionary<string, Dictionary<string, string>> report = new Dictionary<string, Dictionary<string, string>>();
  44. report["总任务表现"] = new Dictionary<string, string>
  45. {
  46. { "总巡护耗时/s", XhTotalTaskPerformance.总巡护耗时.ToString() },
  47. { "火情入场时间/s", XhTotalTaskPerformance.火情入场时间.ToString() },
  48. { "昼间空间覆盖率/-", XhTotalTaskPerformance.昼间空间覆盖率.ToString() },
  49. { "夜间空间覆盖率/-", XhTotalTaskPerformance.夜间空间覆盖率.ToString() },
  50. { "综合虚警概率/-", XhTotalTaskPerformance.综合虚警概率.ToString() },
  51. { "空间遗漏概率/-", XhTotalTaskPerformance.空间遗漏概率.ToString() }
  52. };
  53. return report;
  54. }
  55. }