introduce a wrapper to provide a system class that manages the environment
This commit is contained in:
		
							
								
								
									
										59
									
								
								aman/System.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								aman/System.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | ||||
| #!/usr/bin/env python | ||||
|  | ||||
| import glob | ||||
| import os | ||||
| import sys | ||||
|  | ||||
| from aman.com.Euroscope import Euroscope | ||||
| from aman.config.AircraftPerformance import AircraftPerformance | ||||
| from aman.config.Airport import Airport | ||||
| import aman.config.System | ||||
|  | ||||
| class System: | ||||
|     def findConfigPath(): | ||||
|         envvar = os.environ.get('AMAN_CONFIG_PATH') | ||||
|         if None == envvar: | ||||
|             print('No AMAN_CONFIG_PATH in environment variables found. Using execution directory.') | ||||
|             path = os.getcwd() | ||||
|         else: | ||||
|             print('AMAN_CONFIG_PATH found.') | ||||
|             path = envvar | ||||
|  | ||||
|         print('Config-path: ' + path) | ||||
|         return path | ||||
|  | ||||
|     def __init__(self): | ||||
|         # default initialization of members | ||||
|         self.systemConfig = None | ||||
|         self.aircraftPerformance = None | ||||
|         self.receiver = None | ||||
|  | ||||
|         configPath = System.findConfigPath() | ||||
|  | ||||
|         # read all system relevant configuration files | ||||
|         self.systemConfig = aman.config.System.System(os.path.join(configPath, 'System.ini')) | ||||
|         print('Parsed System.ini') | ||||
|  | ||||
|         # read the aircraft performance data | ||||
|         self.aircraftPerformance = AircraftPerformance(os.path.join(configPath, 'PerformanceData.ini')) | ||||
|         if None == self.aircraftPerformance: | ||||
|             sys.stderr.write('No aircraft performance data found!') | ||||
|             sys.exit(-1) | ||||
|         else: | ||||
|             print('Parsed PerformanceData.ini. Extracted ' + str(len(self.aircraftPerformance.aircrafts)) + ' aircrafts') | ||||
|  | ||||
|         # find the airport configurations and create the workers | ||||
|         airportsPath = os.path.join(os.path.join(configPath, 'airports'), '*.ini') | ||||
|         for file in glob.glob(airportsPath): | ||||
|             icao = os.path.splitext(os.path.basename(file))[0] | ||||
|  | ||||
|             print('Parsing planner configuration for ' + icao) | ||||
|             airportConfig = Airport(file, icao) | ||||
|  | ||||
|         # create the EuroScope receiver | ||||
|         self.receiver = Euroscope(configPath, self.systemConfig.Server) | ||||
|  | ||||
|     def __del__(self): | ||||
|         if None != self.receiver: | ||||
|             del self.receiver | ||||
|         self.receiver = None | ||||
		Reference in New Issue
	
	Block a user