Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
authorBdale Garbee <bdale@gag.com>
Mon, 18 Sep 2017 22:01:43 +0000 (16:01 -0600)
committerBdale Garbee <bdale@gag.com>
Mon, 18 Sep 2017 22:01:43 +0000 (16:01 -0600)
altoslib/AltosFlightStats.java
altoslib/AltosTimeSeries.java
src/test/ao_flight_test.c
telegps/TeleGPSConfigUI.java

index c2e4e2a36bb8a72fc9b023bdebfffc7eb2c47b3a..ea1a9675aba8c818c814481bb45e6e545568cae0 100644 (file)
@@ -212,8 +212,11 @@ public class AltosFlightStats {
                                        add_times(series, (int) prev.value, prev.time, state.time);
                                prev = state;
                        }
-                       if (prev != null)
-                               add_times(series, (int) prev.value, prev.time, series.accel_series.last().time);
+                       if (prev != null) {
+                               AltosTimeValue last_accel = series.accel_series.last();
+                               if (last_accel != null)
+                                       add_times(series, (int) prev.value, prev.time, last_accel.time);
+                       }
                }
 
                for (int s = 0; s <= AltosLib.ao_flight_invalid; s++) {
@@ -245,14 +248,15 @@ public class AltosFlightStats {
                        has_gps = true;
                        lat = pad_lat = gps.lat;
                        lon = pad_lon = gps.lon;
-                       for (AltosGPSTimeValue gtv : series.gps_series) {
-                               gps = gtv.gps;
-                               if (gps.locked && gps.nsat >= 4) {
-                                       lat = gps.lat;
-                                       lon = gps.lon;
+                       if (series.gps_series != null) {
+                               for (AltosGPSTimeValue gtv : series.gps_series) {
+                                       gps = gtv.gps;
+                                       if (gps.locked && gps.nsat >= 4) {
+                                               lat = gps.lat;
+                                               lon = gps.lon;
+                                       }
                                }
                        }
-
                }
 
                max_height = AltosLib.MISSING;
index b3c432fcf565e1b481d63e0025024334a8d90061..9f3b4d807ef26bb36ae9a358515ac41c17f3bad5 100644 (file)
@@ -151,11 +151,15 @@ public class AltosTimeSeries implements Iterable<AltosTimeValue>, Comparable<Alt
        }
 
        public AltosTimeValue first() {
-               return values.get(0);
+               if (values.size() > 0)
+                       return values.get(0);
+               return null;
        }
 
        public AltosTimeValue last() {
-               return values.get(values.size() - 1);
+               if (values.size() > 0)
+                       return values.get(values.size() - 1);
+               return null;
        }
 
        public double average() {
index 8e69730ee54e1f73322de422ef677a44d9001cd7..298848d6a46b4a7921bd8fddb9ba4605020e3e25 100644 (file)
@@ -344,8 +344,10 @@ struct ao_cmds {
 #include <ao_ms5607.h>
 struct ao_ms5607_prom  ao_ms5607_prom;
 #include "ao_ms5607_convert.c"
+#if TELEMEGA
 #define AO_PYRO_NUM    4
 #include <ao_pyro.h>
+#endif
 #else
 #include "ao_convert.c"
 #endif
@@ -427,6 +429,9 @@ static double       ao_test_landed_time;
 static int     landed_set;
 static double  landed_time;
 static double  landed_height;
+#if AO_PYRO_NUM
+static uint16_t        pyros_fired;
+#endif
 
 #if HAS_MPU6000
 static struct ao_mpu6000_sample        ao_ground_mpu6000;
@@ -825,6 +830,10 @@ ao_sleep(void *wchan)
                                                ao_insert();
                                                return;
                                        case AO_LOG_TEMP_VOLT:
+                                               if (pyros_fired != log_mega->u.volt.pyro) {
+                                                       printf("pyro changed %x -> %x\n", pyros_fired, log_mega->u.volt.pyro);
+                                                       pyros_fired = log_mega->u.volt.pyro;
+                                               }
                                                break;
                                        case AO_LOG_GPS_TIME:
                                                ao_gps_prev = ao_gps_static;
index 88ced19248298b0c80119826de3a3040eb0d2a83..87683c2baf5b3155f7731bf2d9ebef8914e0e0c1 100644 (file)
@@ -619,7 +619,7 @@ public class TeleGPSConfigUI
                return true;
        }
 
-       void set_dirty() {
+       public void set_dirty() {
                dirty = true;
                save.setEnabled(true);
        }
@@ -634,6 +634,17 @@ public class TeleGPSConfigUI
                super.dispose();
        }
 
+       public int accel_cal_plus() {
+               return AltosLib.MISSING;
+       }
+
+       public int accel_cal_minus() {
+               return AltosLib.MISSING;
+       }
+
+       public void set_accel_cal(int accel_plus, int accel_minus) {
+       }
+
        /* Listen for events from our buttons */
        public void actionPerformed(ActionEvent e) {
                String  cmd = e.getActionCommand();