diff --git a/aman/sys/RecedingHorizonControl.py b/aman/sys/RecedingHorizonControl.py index d14214e..03709ef 100644 --- a/aman/sys/RecedingHorizonControl.py +++ b/aman/sys/RecedingHorizonControl.py @@ -78,12 +78,18 @@ class RecedingHorizonControl: # check if we need to update the inbound 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.AssignedWindow.pop(inbound.Callsign) + inbound.InitialArrivalTime = reference self.updateReport(inbound) 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: self.insertInWindow(inbound, False)