Kaynağa Gözat

allow unset weather provider

Sven Czarnian 3 yıl önce
ebeveyn
işleme
f021baf4cc
4 değiştirilmiş dosya ile 13 ekleme ve 6 silme
  1. 5 4
      aman/com/Euroscope.py
  2. 1 1
      aman/com/Weather.py
  3. 3 0
      aman/sys/WeatherModel.py
  4. 4 1
      aman/sys/Worker.py

+ 5 - 4
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:

+ 1 - 1
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)
 

+ 3 - 0
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

+ 4 - 1
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