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