|
@@ -13,8 +13,7 @@ public class AircraftMH : AircraftEntity
|
|
|
public MHRescueMission mhRescueMission;
|
|
|
private int waterInterval = 4; // 洒水间隔
|
|
|
public int waterTimes = 1; // 洒水次数
|
|
|
-
|
|
|
- public Queue<double> WaterTimeQueue = new Queue<double>();
|
|
|
+ public List<Fire.FireGrid> FireGrids = new List<Fire.FireGrid>();
|
|
|
|
|
|
//任务重置
|
|
|
public override void Reset()
|
|
@@ -52,28 +51,10 @@ public class AircraftMH : AircraftEntity
|
|
|
missionEndPoint.MissionEndPointLatitude = fireGround.FirePoint.Latitude;
|
|
|
missionEndPoint.MissionEndPointLongitude = fireGround.FirePoint.Longitude;
|
|
|
missionEndPoint.MissionEndPointHeight = fireGround.FirePoint.Altitude;
|
|
|
-
|
|
|
FXJHGenerate.FromMissionToEnd(FlightPlanEditor, missionEndPoint, ref TurningPoints);
|
|
|
-
|
|
|
FXJHGenerate.FXJHTPDiedai(FlightPlanEditor,ref TurningPoints, Velocitys, FuelConsumptions);
|
|
|
-
|
|
|
EffMisTime = mhRescueMission.tn - TaskResponseTime;
|
|
|
-
|
|
|
TotalFuelConsumption = TurningPoints[0].RemainingFuel - TurningPoints[^1].RemainingFuel;
|
|
|
-
|
|
|
- // for (int i = 0; i < 50; i++)
|
|
|
- // {
|
|
|
- // Log.Info(Name + " " + AircraftIndex + " " +TurningPoints[i].ToJson());
|
|
|
- // }
|
|
|
-
|
|
|
-
|
|
|
- // 记录洒水时间 发送给前端洒水事件
|
|
|
- for (int i = 2; i < waterTimes * 2 + 1; i+=2)
|
|
|
- {
|
|
|
- WaterTimeQueue.Enqueue(TurningPoints[i].SegmentFlightTime);
|
|
|
- }
|
|
|
-
|
|
|
- //CurrentLocation currentLocation = FXJHGenerate.GetAllCurrentLocation(TurningPoints, PointNumberIcon + 3,1);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -86,10 +67,26 @@ public class AircraftMH : AircraftEntity
|
|
|
{
|
|
|
// 开始洒水
|
|
|
fireGround.countArea = Fire.burnCalculate(Define.WIND, mhRescueMission.slope, T, fireGround.countArea.burnarea, T, mhRescueMission.tn , fireGround.countArea.burnarea);
|
|
|
+
|
|
|
+ // T 洒水的时间
|
|
|
+ // 正在燃烧的网格数 向下取整
|
|
|
+ double fireGrids = Math.Floor(fireGround.countArea.burnarea/400);
|
|
|
+ // 已经燃尽的网格数
|
|
|
+ double firedGrids = Math.Floor((mhRescueMission.area - fireGround.countArea.burnarea)/400);
|
|
|
+
|
|
|
+ //记录洒水之前的火场
|
|
|
+ FireGrids.Add(new Fire.FireGrid
|
|
|
+ {
|
|
|
+ Time = T,
|
|
|
+ FireGrids = fireGrids,
|
|
|
+ FiredGrids = firedGrids
|
|
|
+ });
|
|
|
+
|
|
|
var currentArea = Fire.SprinklerArea(Type, SprinklerArea/2) ; // 本次有效洒水面积
|
|
|
|
|
|
fireGround.countArea.burnarea -= currentArea;
|
|
|
mhRescueMission.area += currentArea; // 有效洒水面积
|
|
|
+
|
|
|
Log.Info($"任务 {TaskName } {Name} 洒水{waterTimes} 次 本次有效洒水面积 {currentArea} 用时 {T} area {mhRescueMission.area} burnarea {fireGround.countArea.burnarea}");
|
|
|
|
|
|
mhRescueMission.tn = T;
|