altoslib: Check for valid pad alt before computing GPS height series
[fw/altos] / altoslib / AltosFlightSeries.java
index 3e2a05ec8f9b162f287eb869cc43b7a841f52d10..0b60fdf586dcf1c41ecdd60f61960415ee323c5b 100644 (file)
@@ -187,11 +187,17 @@ public class AltosFlightSeries extends AltosDataListener {
 
        public static final String rssi_name = "RSSI";
 
+       public AltosTimeSeries status_series;
+
+       public static final String status_name = "Radio Status";
+
        public void set_rssi(int rssi, int status) {
                if (rssi_series == null) {
                        rssi_series = add_series(rssi_name, null);
+                       status_series = add_series(status_name, null);
                }
                rssi_series.add(time(), rssi);
+               status_series.add(time(), status);
        }
 
        public AltosTimeSeries pressure_series;
@@ -231,7 +237,7 @@ public class AltosFlightSeries extends AltosDataListener {
                                height_series.add(alt.time, alt.value - ground_altitude);
                }
 
-               if (gps_height == null && cal_data.gps_pad != null && gps_altitude != null) {
+               if (gps_height == null && cal_data.gps_pad != null && cal_data.gps_pad.alt != AltosLib.MISSING && gps_altitude != null) {
                        double gps_ground_altitude = cal_data.gps_pad.alt;
                        gps_height = add_series(gps_height_name, AltosConvert.height);
                        for (AltosTimeValue gps_alt : gps_altitude)