do not ignore inbounds that respawned inside the freezed time
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user