allow only delays to avoid arms races between controller and optimizer by implicite ITA-improvements on center

This commit is contained in:
Sven Czarnian
2021-11-29 17:57:20 +01:00
parent 2b4200ba58
commit f14c6735cc

View File

@@ -78,12 +78,18 @@ class RecedingHorizonControl:
# check if we need to update the inbound # check if we need to update the inbound
if None == plannedInbound.PlannedStar: if None == plannedInbound.PlannedStar:
if inbound.InitialArrivalTime < self.Windows[index].StartTime or inbound.InitialArrivalTime >= self.Windows[index].EndTime: reference = inbound.InitialArrivalTime
if plannedInbound.InitialArrivalTime > reference:
reference = plannedInbound.InitialArrivalTime
if reference < self.Windows[index].StartTime or reference >= self.Windows[index].EndTime:
self.Windows[index].remove(inbound.Callsign) self.Windows[index].remove(inbound.Callsign)
self.AssignedWindow.pop(inbound.Callsign) self.AssignedWindow.pop(inbound.Callsign)
inbound.InitialArrivalTime = reference
self.updateReport(inbound) self.updateReport(inbound)
else: else:
plannedInbound.InitialArrivalTime = inbound.InitialArrivalTime plannedInbound.InitialArrivalTime = reference
self.Windows[index].Inbounds.sort(key = lambda x: x.PlannedArrivalTime if None != x.PlannedArrivalTime else x.InitialArrivalTime)
else: else:
self.insertInWindow(inbound, False) self.insertInWindow(inbound, False)