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