Parcourir la source

fix potential crashes

Sven Czarnian il y a 3 ans
Parent
commit
0e96f0402e
1 fichiers modifiés avec 25 ajouts et 22 suppressions
  1. 25 22
      aman/com/Euroscope.py

+ 25 - 22
aman/com/Euroscope.py

@@ -106,28 +106,31 @@ class Euroscope:
             entry = sequence.sequence.add()
             entry.callsign = inbound.Callsign
             entry.fixed = inbound.FixedSequence
-            entry.arrivalRoute = inbound.PlannedStar.Name
-            entry.arrivalRunway = inbound.PlannedRunway.Name
-
-            #performance = entry.performance.add()
-            entry.performance.iasAboveFL240 = int(round(inbound.PerformanceData.SpeedAboveFL240))
-            entry.performance.iasAboveFL100 = int(round(inbound.PerformanceData.SpeedAboveFL100))
-            entry.performance.iasBelowFL100 = int(round(inbound.PerformanceData.SpeedBelowFL100))
-            entry.performance.iasApproach = int(round(inbound.PerformanceData.SpeedApproach))
-
-            for waypoint in inbound.PlannedArrivalRoute:
-                wp = entry.waypoints.add()
-                wp.name = waypoint.Waypoint.Name
-                wp.altitude = int(round(waypoint.Altitude))
-                wp.indicatedAirspeed = int(round(waypoint.IndicatedAirspeed))
-                wp.groundSpeed = int(round(waypoint.GroundSpeed))
-
-                pta = str(waypoint.PTA)
-                delimiter = pta.find('.')
-                if -1 == delimiter:
-                    delimiter = pta.find('+')
-
-                wp.pta = pta[0:delimiter]
+            if None != inbound.PlannedStar:
+                entry.arrivalRoute = inbound.PlannedStar.Name
+            if None != inbound.PlannedRunway:
+                entry.arrivalRunway = inbound.PlannedRunway.Name
+
+            if None != inbound.PerformanceData:
+                entry.performance.iasAboveFL240 = int(round(inbound.PerformanceData.SpeedAboveFL240))
+                entry.performance.iasAboveFL100 = int(round(inbound.PerformanceData.SpeedAboveFL100))
+                entry.performance.iasBelowFL100 = int(round(inbound.PerformanceData.SpeedBelowFL100))
+                entry.performance.iasApproach = int(round(inbound.PerformanceData.SpeedApproach))
+
+            if None != inbound.PlannedArrivalRoute:
+                for waypoint in inbound.PlannedArrivalRoute:
+                    wp = entry.waypoints.add()
+                    wp.name = waypoint.Waypoint.Name
+                    wp.altitude = int(round(waypoint.Altitude))
+                    wp.indicatedAirspeed = int(round(waypoint.IndicatedAirspeed))
+                    wp.groundSpeed = int(round(waypoint.GroundSpeed))
+
+                    pta = str(waypoint.PTA)
+                    delimiter = pta.find('.')
+                    if -1 == delimiter:
+                        delimiter = pta.find('+')
+
+                    wp.pta = pta[0:delimiter]
 
         message = sequence.SerializeToString()
         self.Socket.send(message)