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.PlannedArrivalTime = eta
|
||||||
node.Inbound.PlannedArrivalRoute = node.ArrivalCandidates[rwy.Name].ArrivalRoute
|
node.Inbound.PlannedArrivalRoute = node.ArrivalCandidates[rwy.Name].ArrivalRoute
|
||||||
node.Inbound.InitialArrivalTime = node.ArrivalCandidates[rwy.Name].InitialArrivalTime
|
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
|
delay = node.Inbound.PlannedArrivalTime - node.Inbound.InitialArrivalTime
|
||||||
if 0.0 < delay.total_seconds():
|
if 0.0 < delay.total_seconds():
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ class Colony:
|
|||||||
node.Inbound.PlannedArrivalTime = eta
|
node.Inbound.PlannedArrivalTime = eta
|
||||||
node.Inbound.InitialArrivalTime = node.ArrivalCandidates[rwy.Name].InitialArrivalTime
|
node.Inbound.InitialArrivalTime = node.ArrivalCandidates[rwy.Name].InitialArrivalTime
|
||||||
node.Inbound.PlannedTrackmiles = node.ArrivalCandidates[rwy.Name].Trackmiles
|
node.Inbound.PlannedTrackmiles = node.ArrivalCandidates[rwy.Name].Trackmiles
|
||||||
rwyManager.RunwayInbounds[rwy.Name] = node
|
rwyManager.registerNode(node, rwy.Name)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|||||||
@@ -143,3 +143,22 @@ class RunwayManager:
|
|||||||
eta = candidate
|
eta = candidate
|
||||||
|
|
||||||
return selectedRunway, eta, lostTime
|
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