|
@@ -294,6 +294,15 @@ class Airport:
|
|
sys.exit(-1)
|
|
sys.exit(-1)
|
|
self.MaxDelayMay = timedelta(minutes=int(planning['maxdelaymay']))
|
|
self.MaxDelayMay = timedelta(minutes=int(planning['maxdelaymay']))
|
|
|
|
|
|
|
|
+ def parseWebUI(self, webui):
|
|
|
|
+ self.IafColorization = {}
|
|
|
|
+
|
|
|
|
+ for key in webui:
|
|
|
|
+ if 'iafcolorization' == key:
|
|
|
|
+ elements = list(filter(None, webui[key].split(':')))
|
|
|
|
+ for i in range(0, len(elements), 4):
|
|
|
|
+ self.IafColorization[elements[i]] = [ int(elements[i + 1]), int(elements[i + 2]), int(elements[i + 3]) ]
|
|
|
|
+
|
|
def __init__(self, filepath : str, icao : str):
|
|
def __init__(self, filepath : str, icao : str):
|
|
config = configparser.ConfigParser()
|
|
config = configparser.ConfigParser()
|
|
config.read(filepath)
|
|
config.read(filepath)
|
|
@@ -301,6 +310,7 @@ class Airport:
|
|
dataConfig = None
|
|
dataConfig = None
|
|
planningConfig = None
|
|
planningConfig = None
|
|
rhcConfig = None
|
|
rhcConfig = None
|
|
|
|
+ webUiConfig = None
|
|
|
|
|
|
# search the required sections
|
|
# search the required sections
|
|
for key in config:
|
|
for key in config:
|
|
@@ -310,6 +320,8 @@ class Airport:
|
|
planningConfig = config['PLANNING']
|
|
planningConfig = config['PLANNING']
|
|
elif 'RHC' == key:
|
|
elif 'RHC' == key:
|
|
rhcConfig = config['RHC']
|
|
rhcConfig = config['RHC']
|
|
|
|
+ elif 'WEBUI' == key:
|
|
|
|
+ webUiConfig = config['WEBUI']
|
|
|
|
|
|
# find the GNG-file data
|
|
# find the GNG-file data
|
|
sctFile, eseFile = Airport.findGngData(dataConfig, os.path.dirname(filepath))
|
|
sctFile, eseFile = Airport.findGngData(dataConfig, os.path.dirname(filepath))
|
|
@@ -332,6 +344,11 @@ class Airport:
|
|
sys.exit(-1)
|
|
sys.exit(-1)
|
|
self.RecedingHorizonControl = RHC(rhcConfig)
|
|
self.RecedingHorizonControl = RHC(rhcConfig)
|
|
|
|
|
|
|
|
+ # check if thw WebUI information is available
|
|
|
|
+ if None == webUiConfig:
|
|
|
|
+ sys.stderr.write('No WEBUI configuration found')
|
|
|
|
+ sys.exit(-1)
|
|
|
|
+
|
|
# parse the GNG data
|
|
# parse the GNG data
|
|
print('Used GNG-Data: ' + eseFile)
|
|
print('Used GNG-Data: ' + eseFile)
|
|
self.GngData = SctEseFormat(sctFile, eseFile, icao, requiredArrivalRoutes)
|
|
self.GngData = SctEseFormat(sctFile, eseFile, icao, requiredArrivalRoutes)
|
|
@@ -346,6 +363,7 @@ class Airport:
|
|
self.parseDefaultSequencingConfiguration(icao, planningConfig)
|
|
self.parseDefaultSequencingConfiguration(icao, planningConfig)
|
|
self.parseConstraints(planningConfig)
|
|
self.parseConstraints(planningConfig)
|
|
self.parseRunwayAssignment(icao, planningConfig)
|
|
self.parseRunwayAssignment(icao, planningConfig)
|
|
|
|
+ self.parseWebUI(webUiConfig)
|
|
self.assignmentUpdate(self.DefaultSequencing)
|
|
self.assignmentUpdate(self.DefaultSequencing)
|
|
|
|
|
|
def assignmentUpdate(self, sequenceConfig : AirportSequencing):
|
|
def assignmentUpdate(self, sequenceConfig : AirportSequencing):
|