handle the requested runways in the optimization

This commit is contained in:
Sven Czarnian
2021-12-19 12:24:26 +01:00
vanhempi 8ebeef6938
commit e265629439
3 muutettua tiedostoa jossa 12 lisäystä ja 3 poistoa

Näytä tiedosto

@@ -72,6 +72,7 @@ class RecedingHorizonControl:
plannedInbound.Report = inbound.Report
plannedInbound.ReportTime = inbound.ReportTime
plannedInbound.CurrentPosition = inbound.CurrentPosition
plannedInbound.RequestedRunway = inbound.RequestedRunway
# ingore fixed updates
if True == plannedInbound.FixedSequence or index <= self.FreezedIndex:
plannedInbound.FixedSequence = True

Näytä tiedosto

@@ -118,10 +118,13 @@ class RunwayManager:
def selectArrivalRunway(self, node : Node, earliestArrivalTime : datetime):
availableRunways = self.Configuration.RunwayConstraints.ActiveArrivalRunways
if True == self.Configuration.RunwayConstraints.UseShallShouldMay:
if True == self.Configuration.RunwayConstraints.UseShallShouldMay and None == node.Inbound.RequestedRunway:
availableRunways = self.executeShallShouldMayAssignment(node, earliestArrivalTime)
else:
availableRunways = self.Configuration.RunwayConstraints.ActiveArrivalRunways
elif None != node.Inbound.RequestedRunway:
for runway in availableRunways:
if node.Inbound.RequestedRunway == runway.Runway.Name:
availableRunways = [ runway ]
break
if 0 == len(availableRunways):
runway = self.Configuration.RunwayConstraints.ActiveArrivalRunways[0]

Näytä tiedosto

@@ -15,6 +15,7 @@ class Inbound:
self.CurrentPosition = report.position
self.ReportTime = datetime.strptime(report.reportTime + '+0000', '%Y%m%d%H%M%S%z').replace(tzinfo = pytz.UTC)
self.InitialArrivalTime = None
self.RequestedRunway = None
self.PlannedArrivalTime = None
self.PlannedRunway = None
self.PlannedStar = None
@@ -28,6 +29,10 @@ class Inbound:
if 'L' == wtc or 'M' == wtc or 'H' == wtc or 'J' == wtc:
self.WTC = wtc
# analyze the requested runway
if '' != report.requestedRunway:
self.RequestedRunway = report.requestedRunway
# search performance data -> fallback to A320
if self.Report.aircraft.type in performanceData.Aircrafts:
self.PerformanceData = performanceData.Aircrafts[self.Report.aircraft.type]