From f021baf4cc829edf3819073870ecc8a66372d54a Mon Sep 17 00:00:00 2001 From: Sven Czarnian Date: Mon, 22 Nov 2021 16:19:46 +0100 Subject: [PATCH] allow unset weather provider --- aman/com/Euroscope.py | 9 +++++---- aman/com/Weather.py | 2 +- aman/sys/WeatherModel.py | 3 +++ aman/sys/Worker.py | 5 ++++- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/aman/com/Euroscope.py b/aman/com/Euroscope.py index abc22f5..64e76ba 100644 --- a/aman/com/Euroscope.py +++ b/aman/com/Euroscope.py @@ -28,15 +28,16 @@ class ComThread(Thread): report.ParseFromString(msg) # try to associate the received aircrafts to airports - icao = [] + icao = None for inbound in report.reports: self.AMAN.updateAircraftReport(inbound) icao = inbound.destination # get the sequence of the airport - airport = self.AMAN.findAirport(icao) - if None != airport: - self.Com.sendSequence('', airport.inboundSequence(), airport.WeatherModel) + if None != icao: + airport = self.AMAN.findAirport(icao) + if None != airport: + self.Com.sendSequence(icao, airport.inboundSequence(), airport.WeatherModel) except zmq.ZMQError as error: if zmq.EAGAIN == error.errno: diff --git a/aman/com/Weather.py b/aman/com/Weather.py index 5f2cacc..4c1c239 100644 --- a/aman/com/Weather.py +++ b/aman/com/Weather.py @@ -21,7 +21,7 @@ class Weather(Thread): if 'DWD' == config.Provider.upper(): self.Provider = DwdCrawler() - else: + elif 'NONE' != config.Provider.upper(): sys.stderr.write('Invalid or unknown weather-provider defined') sys.exit(-1) diff --git a/aman/sys/WeatherModel.py b/aman/sys/WeatherModel.py index 6e7736e..6066d9b 100644 --- a/aman/sys/WeatherModel.py +++ b/aman/sys/WeatherModel.py @@ -98,6 +98,9 @@ class WeatherModel: return ias * math.sqrt(1.225 / self.densityModel(altitude).item()) def updateWindModel(self): + if None == self.Weather or None == self.Weather.Provider: + return + if None == self.LastWeatherUpdate or self.LastWeatherUpdate != self.Weather.Provider.UpdateTime: self.MinimumAltitude = 1000000 self.MaximumAltitude = -1 diff --git a/aman/sys/Worker.py b/aman/sys/Worker.py index c879cd4..75a5513 100644 --- a/aman/sys/Worker.py +++ b/aman/sys/Worker.py @@ -27,7 +27,10 @@ class Worker(Thread): self.PerformanceData = performance self.UpdateLock = Lock() self.ReportQueue = {} - self.WeatherModel = WeatherModel(configuration.GaforId, weather) + if None != weather: + self.WeatherModel = WeatherModel(configuration.GaforId, weather) + else: + self.WeatherModel = WeatherModel(0, None) self.RecedingHorizonControl = RecedingHorizonControl(configuration.RecedingHorizonControl) self.Euroscope = euroscope