From 6e244a73d8c2a475416480f83328b7d363693402 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 27 Aug 2017 17:33:38 -0700 Subject: altoslib: Remove debug printf for gyro adjust Signed-off-by: Keith Packard --- altoslib/AltosCalData.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'altoslib') diff --git a/altoslib/AltosCalData.java b/altoslib/AltosCalData.java index b49e3792..6258c1a8 100644 --- a/altoslib/AltosCalData.java +++ b/altoslib/AltosCalData.java @@ -342,8 +342,8 @@ public class AltosCalData { v = Math.ceil(v); else v = Math.floor(v); - if (v != 0) - System.out.printf("Adjusting gyro axis by %g steps\n", v); +// if (v != 0) +// System.out.printf("Adjusting gyro axis by %g steps\n", v); return v * 128.0; } -- cgit v1.2.3 From 92b689bfd78a96ba56f0e1022ba68b7384a9b9b6 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 27 Aug 2017 17:34:07 -0700 Subject: altoslib: Allow for missing product when checking for mma655x inverted If there's no product, assume we've got some ancient log file. Signed-off-by: Keith Packard --- altoslib/AltosConfigData.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'altoslib') diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index 97a80bcb..63c34310 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -488,14 +488,16 @@ public class AltosConfigData { public boolean mma655x_inverted() throws AltosUnknownProduct { - if (product.startsWith("EasyMega-v1")) - return false; - if (product.startsWith("TeleMetrum-v2")) - return true; - if (product.startsWith("TeleMega-v2")) - return false; - if (product.startsWith("TeleMega-v1")) - return false; + if (product != null) { + if (product.startsWith("EasyMega-v1")) + return false; + if (product.startsWith("TeleMetrum-v2")) + return true; + if (product.startsWith("TeleMega-v2")) + return false; + if (product.startsWith("TeleMega-v1")) + return false; + } throw new AltosUnknownProduct(product); } -- cgit v1.2.3 From 9537a21b6ddb73b9f086858dad9a7b9d05279741 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 27 Aug 2017 17:34:49 -0700 Subject: altoslib: Fix parsing of old TM log GPS sat data Attempting to fetch sat data from wrong byte led to array bounds exception. Signed-off-by: Keith Packard --- altoslib/AltosEepromRecordFull.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'altoslib') diff --git a/altoslib/AltosEepromRecordFull.java b/altoslib/AltosEepromRecordFull.java index 85709f73..32df9578 100644 --- a/altoslib/AltosEepromRecordFull.java +++ b/altoslib/AltosEepromRecordFull.java @@ -85,7 +85,7 @@ public class AltosEepromRecordFull extends AltosEepromRecord { case AltosLib.AO_LOG_GPS_SAT: gps = cal_data.make_temp_gps(tick(),true); int svid = data16(0); - int c_n0 = data16(3); + int c_n0 = data16(2); gps.add_sat(svid, c_n0); break; case AltosLib.AO_LOG_GPS_DATE: -- cgit v1.2.3 From dd72c9144b207b12150eb6a7ffb012f217f37374 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 27 Aug 2017 17:35:49 -0700 Subject: altoslib: Compute speed at entry to each state Useful to have drogue/main deployment speeds Signed-off-by: Keith Packard --- altoslib/AltosFlightStats.java | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'altoslib') diff --git a/altoslib/AltosFlightStats.java b/altoslib/AltosFlightStats.java index 6f8732cf..c2e4e2a3 100644 --- a/altoslib/AltosFlightStats.java +++ b/altoslib/AltosFlightStats.java @@ -26,6 +26,7 @@ public class AltosFlightStats { public double max_speed; public double max_acceleration; public double[] state_speed = new double[AltosLib.ao_flight_invalid + 1]; + public double[] state_enter_speed = new double[AltosLib.ao_flight_invalid + 1]; public double[] state_accel = new double[AltosLib.ao_flight_invalid + 1]; public double[] state_time = new double[AltosLib.ao_flight_invalid + 1]; public String product; @@ -131,6 +132,8 @@ public class AltosFlightStats { private void add_times(AltosFlightSeries series, int state, double start_time, double end_time) { double delta_time = end_time - start_time; if (0 <= state && state <= AltosLib.ao_flight_invalid && delta_time > 0) { + if (state_enter_speed[state] == AltosLib.MISSING) + state_enter_speed[state] = series.speed_series.value(start_time); speeds[state].value += series.speed_series.average(start_time, end_time) * delta_time; speeds[state].time += delta_time; accels[state].value += series.accel_series.average(start_time, end_time) * delta_time; @@ -192,6 +195,7 @@ public class AltosFlightStats { for (int s = 0; s < AltosLib.ao_flight_invalid + 1; s++) { state_speed[s] = AltosLib.MISSING; + state_enter_speed[s] = AltosLib.MISSING; state_accel[s] = AltosLib.MISSING; state_time[s] = 0; speeds[s] = new AltosTimeValue(0, 0); -- cgit v1.2.3 From dacd4c70700041a018b1f8ba47f22071b9600eaf Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 28 Aug 2017 00:10:04 -0700 Subject: altoslib: Fix freq preference loading Allocate throw-away freq array to get the class pointer. Add null-ary AltosFrequency constructor for JSON code. Signed-off-by: Keith Packard --- altoslib/AltosFrequency.java | 3 +++ altoslib/AltosPreferences.java | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'altoslib') diff --git a/altoslib/AltosFrequency.java b/altoslib/AltosFrequency.java index 6838be8a..dfe33789 100644 --- a/altoslib/AltosFrequency.java +++ b/altoslib/AltosFrequency.java @@ -62,4 +62,7 @@ public class AltosFrequency { frequency = f; description = d; } + public AltosFrequency() { + this(0, null); + } } diff --git a/altoslib/AltosPreferences.java b/altoslib/AltosPreferences.java index 0c388f1b..c511332b 100644 --- a/altoslib/AltosPreferences.java +++ b/altoslib/AltosPreferences.java @@ -139,7 +139,7 @@ public class AltosPreferences { try { AltosJson json = AltosJson.fromString(backend.getString(frequenciesPreference, null)); - frequencies = (AltosFrequency[]) json.make(frequencies.getClass()); + frequencies = (AltosFrequency[]) json.make((new AltosFrequency[1]).getClass()); } catch (Exception e) { } -- cgit v1.2.3