remove acquire() and release() functions and run the threads as deamons for easier cleanups
This commit is contained in:
39
aman/AMAN.py
39
aman/AMAN.py
@@ -30,6 +30,7 @@ class AMAN:
|
||||
|
||||
def __init__(self):
|
||||
# default initialization of members
|
||||
configPath = AMAN.findConfigPath()
|
||||
self.SystemConfig = None
|
||||
self.AircraftPerformance = None
|
||||
self.Receiver = None
|
||||
@@ -37,15 +38,6 @@ class AMAN:
|
||||
self.WebUi = None
|
||||
self.Workers = []
|
||||
|
||||
# initialize the random number generator
|
||||
random.seed(time.time())
|
||||
|
||||
def __del__(self):
|
||||
self.release()
|
||||
|
||||
def aquire(self):
|
||||
configPath = AMAN.findConfigPath()
|
||||
|
||||
# read all system relevant configuration files
|
||||
self.SystemConfig = System(os.path.join(configPath, 'System.ini'))
|
||||
print('Parsed System.ini')
|
||||
@@ -58,13 +50,10 @@ class AMAN:
|
||||
else:
|
||||
print('Parsed PerformanceData.ini. Extracted ' + str(len(self.AircraftPerformance.Aircrafts)) + ' aircrafts')
|
||||
|
||||
self.Weather = Weather()
|
||||
self.Weather.acquire(self.SystemConfig.Weather)
|
||||
self.WebUi = WebUI()
|
||||
self.WebUi.acquire(self.SystemConfig.Server, self)
|
||||
# create the communication syb
|
||||
self.Weather = Weather(self.SystemConfig.Weather)
|
||||
self.Receiver = Euroscope(configPath, self.SystemConfig.Server, self)
|
||||
|
||||
# create the EuroScope receiver
|
||||
self.Receiver = Euroscope()
|
||||
|
||||
# find the airport configurations and create the workers
|
||||
airportsPath = os.path.join(os.path.join(configPath, 'airports'), '*.ini')
|
||||
@@ -75,31 +64,13 @@ class AMAN:
|
||||
airportConfig = Airport(file, icao)
|
||||
|
||||
# initialize the worker thread
|
||||
worker = Worker()
|
||||
worker.acquire(icao, airportConfig, self.Weather, self.AircraftPerformance, self.WebUi, self.Receiver)
|
||||
worker = Worker(icao, airportConfig, self.Weather, self.AircraftPerformance, self.Receiver)
|
||||
self.Workers.append(worker)
|
||||
print('Started worker for ' + icao)
|
||||
|
||||
# initialize the receiver
|
||||
self.Receiver.acquire(configPath, self.SystemConfig.Server, self)
|
||||
|
||||
def release(self):
|
||||
if None != self.Workers:
|
||||
for worker in self.Workers:
|
||||
worker.release()
|
||||
self.Workers = None
|
||||
|
||||
if None != self.Receiver:
|
||||
self.Receiver.release()
|
||||
self.Receiver = None
|
||||
|
||||
if None != self.Weather:
|
||||
self.Weather.release()
|
||||
self.Weather = None
|
||||
|
||||
if None != self.WebUi:
|
||||
self.WebUi.release()
|
||||
self.WebUi = None
|
||||
|
||||
def updateAircraftReport(self, report : AircraftReport_pb2.AircraftReport):
|
||||
# find the correct worker for the inbound
|
||||
|
||||
Reference in New Issue
Block a user