summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBdale Garbee <bdale@gag.com>2017-09-18 16:01:43 -0600
committerBdale Garbee <bdale@gag.com>2017-09-18 16:01:43 -0600
commit6e4c104c28952f2010c7b1cbc9ce59e148ab2d8f (patch)
treeb62b70697d5873aa2f3d37d09e8ccfb1ae779d6a
parent63eeaada85cb9ddccb0fa9b2d751cc8f46399d9c (diff)
parent4f2cbe0c537c9f417aae310cc3b89f84e0915103 (diff)
Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
-rw-r--r--altoslib/AltosFlightStats.java20
-rw-r--r--altoslib/AltosTimeSeries.java8
-rw-r--r--src/test/ao_flight_test.c9
-rw-r--r--telegps/TeleGPSConfigUI.java13
4 files changed, 39 insertions, 11 deletions
diff --git a/altoslib/AltosFlightStats.java b/altoslib/AltosFlightStats.java
index c2e4e2a3..ea1a9675 100644
--- a/altoslib/AltosFlightStats.java
+++ b/altoslib/AltosFlightStats.java
@@ -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;
diff --git a/altoslib/AltosTimeSeries.java b/altoslib/AltosTimeSeries.java
index b3c432fc..9f3b4d80 100644
--- a/altoslib/AltosTimeSeries.java
+++ b/altoslib/AltosTimeSeries.java
@@ -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() {
diff --git a/src/test/ao_flight_test.c b/src/test/ao_flight_test.c
index 8e69730e..298848d6 100644
--- a/src/test/ao_flight_test.c
+++ b/src/test/ao_flight_test.c
@@ -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;
diff --git a/telegps/TeleGPSConfigUI.java b/telegps/TeleGPSConfigUI.java
index 88ced192..87683c2b 100644
--- a/telegps/TeleGPSConfigUI.java
+++ b/telegps/TeleGPSConfigUI.java
@@ -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();