altoslib: When log-format is missing, use product
authorKeith Packard <keithp@keithp.com>
Wed, 28 May 2014 09:06:18 +0000 (02:06 -0700)
committerKeith Packard <keithp@keithp.com>
Wed, 28 May 2014 09:06:18 +0000 (02:06 -0700)
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 <keithp@keithp.com>
altoslib/AltosEepromFile.java
altoslib/AltosEepromHeader.java
altoslib/AltosState.java

index 2a26c484ac7b3b24ab3cbe3df5e035f575afbbe6..1664dc95ec5eac1df082b7a57b86e612c1a7839c 100644 (file)
@@ -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
+}
index 0d022f466afb505bc9620bacd6bb16d19025b80a..ea6f5e28bb31db1894b43295855565b826a837f4 100644 (file)
@@ -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;
index 7126315168448d2765b5beb518bcfdf1b141d7e1..9e8e22ac8d945168512db1266df11656c63cc9e4 100644 (file)
@@ -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;