StaticCapacityComponent.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. using KYFramework;
  2. using Model;
  3. using MongoDB.Bson;
  4. namespace SimulationServer;
  5. public class StaticCapacity
  6. {
  7. // 初次出动准备时间
  8. public string 初次出动准备时间;
  9. //再次补给时间
  10. public string 再次补给时间;
  11. //任务载荷装载时间
  12. public string 任务载荷装载时间;
  13. //舱内载荷
  14. public string 舱内载荷;
  15. //外吊挂载荷
  16. public string 外吊挂载荷;
  17. //空投精度
  18. public string 空投精度;
  19. //有效投放率
  20. public string 有效投放率;
  21. //巡航飞行速度
  22. public string 巡航飞行速度;
  23. //载荷飞行速度
  24. public string 载荷飞行速度;
  25. //最大载油量
  26. public string 最大载油量;
  27. //抗风等级
  28. public string 抗风等级;
  29. //起降距离
  30. public string 起降距离;
  31. //起降场地要求
  32. public string 起降场地要求;
  33. //夜间作业能力
  34. public string 夜间作业能力;
  35. //可靠性
  36. public string 可靠性;
  37. }
  38. // 静态能力组件
  39. public class StaticCapacityComponent : Component
  40. {
  41. public AircraftEntity aircraft;
  42. public StaticCapacity StaticCapacity = new StaticCapacity();
  43. public void FillData(AircraftDB db)
  44. {
  45. var aircraft = GetParent<AircraftMH>();
  46. StaticCapacity.初次出动准备时间 = aircraft.TaskReadyTime.ToString();
  47. StaticCapacity.再次补给时间 = db.fjysj == null ? "0" : db.fjysj.ToString();
  48. StaticCapacity.任务载荷装载时间 = db.fjssj == null ? "0" : db.fjssj.ToString();;
  49. StaticCapacity.舱内载荷 = db.fzdnz == null ? "0" : db.fzdnz.ToString();
  50. StaticCapacity.外吊挂载荷 = db.fzdwgz == null ? "0" : db.fzdwgz.ToString();
  51. StaticCapacity.空投精度 = AirdropAccuracy.GetIpForType(db.fConcreateType.ToString()).ToString();
  52. StaticCapacity.有效投放率 = 0.75.ToString();
  53. StaticCapacity.巡航飞行速度 = db.fzdss == null ? "0" : db.fzdss.ToString();
  54. StaticCapacity.载荷飞行速度 = db.fzhfxsd == null ? "0" : db.fzhfxsd.ToString();
  55. StaticCapacity.抗风等级 = "八级";
  56. StaticCapacity.起降距离 = db.fjjcdc == null ? "0" : db.fqfpdc.ToString();
  57. StaticCapacity.起降场地要求 = db.fqjcdyq == null ? "0" : db.fqjcdyq.ToString();
  58. StaticCapacity.夜间作业能力 = "0";
  59. StaticCapacity.可靠性 = "0";
  60. double zdzjl = 0;
  61. if(aircraft.fireGround.FirePoint.Altitude < 3000)
  62. zdzjl = double.Parse(db.f_fjzh.ToString()) - double.Parse(db.f_sslwater.ToString()) - double.Parse(db.f_jzrs.ToString())* 80;
  63. else zdzjl = double.Parse(db.f_gyfjzh.ToString()) - double.Parse(db.f_gysslwater.ToString()) - double.Parse(db.f_jzrs.ToString())* 80;
  64. StaticCapacity.最大载油量 =zdzjl.ToString("#0.00");
  65. }
  66. public Dictionary<string, Dictionary<string, string>> GetReport()
  67. {
  68. Dictionary<string, Dictionary<string, string>> report = new Dictionary<string, Dictionary<string, string>>();
  69. report["静态能力"] = new Dictionary<string, string>
  70. {
  71. { "初次出动准备时间/s", StaticCapacity.初次出动准备时间.ToString() },
  72. { "再次补给时间/s", StaticCapacity.再次补给时间.ToString() },
  73. { "任务载荷装载时间/s", StaticCapacity.任务载荷装载时间.ToString() },
  74. { "舱内载荷/kg", StaticCapacity.舱内载荷.ToString() },
  75. { "外吊挂载荷/kg", StaticCapacity.外吊挂载荷.ToString() },
  76. { "最大载油量/kg", StaticCapacity.最大载油量.ToString()},
  77. { "空投精度/-", StaticCapacity.空投精度.ToString() },
  78. { "有效投放率/-", StaticCapacity.有效投放率.ToString() },
  79. { "巡航飞行速度/km/h", StaticCapacity.巡航飞行速度.ToString() },
  80. { "载荷飞行速度/km/h", StaticCapacity.载荷飞行速度.ToString() },
  81. { "抗风等级/-", StaticCapacity.抗风等级.ToString() },
  82. { "起降距离/m", StaticCapacity.起降距离.ToString() },
  83. { "起降场地要求/-", StaticCapacity.起降场地要求.ToString() },
  84. { "夜间作业能力/-", StaticCapacity.夜间作业能力.ToString() },
  85. { "可靠性/-", StaticCapacity.可靠性.ToString() }
  86. };
  87. return report;
  88. }
  89. }