do not ignore inbounds that respawned inside the freezed time

This commit is contained in:
Sven Czarnian
2021-12-25 08:59:59 +01:00
parent bf6417c66c
commit 2fdb73e32e

View File

@@ -175,13 +175,23 @@ class RecedingHorizonControl:
return runwayInbounds, iafInbounds return runwayInbounds, iafInbounds
def optimizationRelevantInbounds(self): def optimizationRelevantInbounds(self):
# no new inbounds
if len(self.Windows) <= self.FreezedIndex + 1:
return None, None
inbounds = [] inbounds = []
earliestArrivalTime = self.Windows[self.FreezedIndex + 1].StartTime earliestArrivalTime = self.Windows[self.FreezedIndex + 1].StartTime
# check if we have a reconnect in the freezed blocks (VATSIM specific behavior)
for i in range(0, self.FreezedIndex + 1):
for inbound in self.Windows[i].Inbounds:
if False == inbound.HasValidSequence:
inbounds.sort(key = lambda x: x.PlannedArrivalTime if None != x.PlannedArrivalTime else x.EnrouteArrivalTime)
inbounds.append(copy.deepcopy(inbound))
# no new inbounds
if len(self.Windows) <= self.FreezedIndex + 1:
if 0 == len(inbounds):
return None, None
else:
return inbounds, earliestArrivalTime
# check the overlapping windows # check the overlapping windows
for i in range(self.FreezedIndex + 1, len(self.Windows)): for i in range(self.FreezedIndex + 1, len(self.Windows)):
for inbound in self.Windows[i].Inbounds: for inbound in self.Windows[i].Inbounds: