add a function to register a new inbound
This commit is contained in:
		| @@ -84,7 +84,7 @@ class Ant: | ||||
|         node.Inbound.PlannedArrivalTime = eta | ||||
|         node.Inbound.PlannedArrivalRoute = node.ArrivalCandidates[rwy.Name].ArrivalRoute | ||||
|         node.Inbound.InitialArrivalTime = node.ArrivalCandidates[rwy.Name].InitialArrivalTime | ||||
|         self.RunwayManager.RunwayInbounds[rwy.Name] = node | ||||
|         self.RunwayManager.registerNode(node, rwy.Name) | ||||
|  | ||||
|         delay = node.Inbound.PlannedArrivalTime - node.Inbound.InitialArrivalTime  | ||||
|         if 0.0 < delay.total_seconds(): | ||||
|   | ||||
| @@ -29,7 +29,7 @@ class Colony: | ||||
|         node.Inbound.PlannedArrivalTime = eta | ||||
|         node.Inbound.InitialArrivalTime = node.ArrivalCandidates[rwy.Name].InitialArrivalTime | ||||
|         node.Inbound.PlannedTrackmiles = node.ArrivalCandidates[rwy.Name].Trackmiles | ||||
|         rwyManager.RunwayInbounds[rwy.Name] = node | ||||
|         rwyManager.registerNode(node, rwy.Name) | ||||
|  | ||||
|         return True | ||||
|  | ||||
|   | ||||
| @@ -143,3 +143,22 @@ class RunwayManager: | ||||
|                 eta = candidate | ||||
|  | ||||
|         return selectedRunway, eta, lostTime | ||||
|  | ||||
|     def registerNode(self, node : Node, runway : str): | ||||
|         self.RunwayInbounds[runway] = node | ||||
|  | ||||
|          # find the corresponding IAF | ||||
|         iaf = node.ArrivalCandidates[runway].ArrivalRoute[0].Waypoint.Name | ||||
|         if iaf in self.IafInbounds: | ||||
|             delta = 100000.0 | ||||
|             targetLevel = None | ||||
|  | ||||
|             # find the planned level | ||||
|             for level in self.IafInbounds[iaf]: | ||||
|                 difference = abs(level - node.ArrivalCandidates[runway].ArrivalRoute[0].Altitude) | ||||
|                 if difference < delta: | ||||
|                     delta = difference | ||||
|                     targetLevel = level | ||||
|  | ||||
|             if targetLevel in self.IafInbounds[iaf]: | ||||
|                 self.IafInbounds[iaf][targetLevel] = node | ||||
|   | ||||
		Reference in New Issue
	
	Block a user