From 4a5ef9eaa8b809c56813625133120e7e91fc8e65 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 28 May 2014 02:06:18 -0700 Subject: [PATCH] altoslib: When log-format is missing, use product log-format was added for 1.0; earlier log files don't include that, but do say which product they're from. Signed-off-by: Keith Packard --- altoslib/AltosEepromFile.java | 11 ++++++++++- altoslib/AltosEepromHeader.java | 1 + altoslib/AltosState.java | 3 +++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/altoslib/AltosEepromFile.java b/altoslib/AltosEepromFile.java index 2a26c484..1664dc95 100644 --- a/altoslib/AltosEepromFile.java +++ b/altoslib/AltosEepromFile.java @@ -74,6 +74,15 @@ public class AltosEepromFile extends AltosStateIterable { start = headers.state(); start.set_state(AltosLib.ao_flight_pad); + if (start.log_format == AltosLib.MISSING) { + if (start.product != null) { + if (start.product.startsWith("TeleMetrum")) + start.log_format = AltosLib.AO_LOG_FORMAT_FULL; + else if (start.product.startsWith("TeleMini")) + start.log_format = AltosLib.AO_LOG_FORMAT_TINY; + } + } + switch (start.log_format) { case AltosLib.AO_LOG_FORMAT_FULL: body = new AltosEepromIterable(AltosEepromTM.read(input)); @@ -120,4 +129,4 @@ public class AltosEepromFile extends AltosStateIterable { } return new AltosEepromIterator(state, i); } -} \ No newline at end of file +} diff --git a/altoslib/AltosEepromHeader.java b/altoslib/AltosEepromHeader.java index 0d022f46..ea6f5e28 100644 --- a/altoslib/AltosEepromHeader.java +++ b/altoslib/AltosEepromHeader.java @@ -53,6 +53,7 @@ public class AltosEepromHeader extends AltosEeprom { case AltosLib.AO_LOG_MANUFACTURER: break; case AltosLib.AO_LOG_PRODUCT: + state.product = data; break; case AltosLib.AO_LOG_LOG_FORMAT: state.log_format = config_a; diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java index 71263151..9e8e22ac 100644 --- a/altoslib/AltosState.java +++ b/altoslib/AltosState.java @@ -614,6 +614,7 @@ public class AltosState implements Cloneable { public double ground_accel_avg; public int log_format; + public String product; public AltosMs5607 baro; @@ -708,6 +709,7 @@ public class AltosState implements Cloneable { ground_accel_avg = AltosLib.MISSING; log_format = AltosLib.MISSING; + product = null; serial = AltosLib.MISSING; receiver_serial = AltosLib.MISSING; @@ -839,6 +841,7 @@ public class AltosState implements Cloneable { ground_accel_avg = old.ground_accel_avg; log_format = old.log_format; + product = old.product; serial = old.serial; receiver_serial = old.receiver_serial; -- 2.30.2