AMAN.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/usr/bin/env python
  2. import glob
  3. import os
  4. import sys
  5. from aman.com.Euroscope import Euroscope
  6. from aman.config.AircraftPerformance import AircraftPerformance
  7. from aman.config.Airport import Airport
  8. from aman.config.System import System
  9. class AMAN:
  10. def findConfigPath():
  11. envvar = os.environ.get('AMAN_CONFIG_PATH')
  12. if None == envvar:
  13. print('No AMAN_CONFIG_PATH in environment variables found. Using execution directory.')
  14. path = os.getcwd()
  15. else:
  16. print('AMAN_CONFIG_PATH found.')
  17. path = envvar
  18. print('Config-path: ' + path)
  19. return path
  20. def __init__(self):
  21. # default initialization of members
  22. self.systemConfig = None
  23. self.aircraftPerformance = None
  24. self.receiver = None
  25. configPath = AMAN.findConfigPath()
  26. # read all system relevant configuration files
  27. self.systemConfig = System(os.path.join(configPath, 'System.ini'))
  28. print('Parsed System.ini')
  29. # read the aircraft performance data
  30. self.aircraftPerformance = AircraftPerformance(os.path.join(configPath, 'PerformanceData.ini'))
  31. if None == self.aircraftPerformance:
  32. sys.stderr.write('No aircraft performance data found!')
  33. sys.exit(-1)
  34. else:
  35. print('Parsed PerformanceData.ini. Extracted ' + str(len(self.aircraftPerformance.aircrafts)) + ' aircrafts')
  36. # find the airport configurations and create the workers
  37. airportsPath = os.path.join(os.path.join(configPath, 'airports'), '*.ini')
  38. for file in glob.glob(airportsPath):
  39. icao = os.path.splitext(os.path.basename(file))[0]
  40. print('Parsing planner configuration for ' + icao)
  41. airportConfig = Airport(file, icao)
  42. # TODO initialize the planner thread
  43. # create the EuroScope receiver
  44. self.receiver = Euroscope(configPath, self.systemConfig.Server)
  45. def __del__(self):
  46. if None != self.receiver:
  47. del self.receiver
  48. self.receiver = None