altosui: Deal with telem data that goes backwards in time
[fw/altos] / altosui / AltosTelemetryRecordRaw.java
index e6c4cfc8af44ddf3ba5c3424df4b44b7cf7ef48e..fb2b495cdb2e281792bff6784b14c48fd9338edd 100644 (file)
@@ -33,6 +33,7 @@ public class AltosTelemetryRecordRaw implements AltosTelemetryRecord {
        final static int packet_type_configuration = 0x04;
        final static int packet_type_location = 0x05;
        final static int packet_type_satellite = 0x06;
+       final static int packet_type_companion = 0x07;
        
        final static int PKT_APPEND_STATUS_1_CRC_OK             = (1 << 7);
        final static int PKT_APPEND_STATUS_1_LQI_MASK           = (0x7f);
@@ -72,7 +73,7 @@ public class AltosTelemetryRecordRaw implements AltosTelemetryRecord {
 
                /* length, data ..., rssi, status, checksum -- 4 bytes extra */
                switch (bytes.length) {
-               case Altos.ao_telemetry_split_len + 4:
+               case Altos.ao_telemetry_standard_len + 4:
                        int     type = Altos.uint8(bytes, 4 + 1);
                        switch (type) {
                        case packet_type_TM_sensor:
@@ -89,12 +90,18 @@ public class AltosTelemetryRecordRaw implements AltosTelemetryRecord {
                        case packet_type_satellite:
                                r = new AltosTelemetryRecordSatellite(bytes);
                                break;
+                       case packet_type_companion:
+                               r = new AltosTelemetryRecordCompanion(bytes);
+                               break;
                        default:
                                r = new AltosTelemetryRecordRaw(bytes);
                                break;
                        }
                        break;
-               case Altos.ao_telemetry_legacy_len + 4:
+               case Altos.ao_telemetry_0_9_len + 4:
+                       r = new AltosTelemetryRecordLegacy(bytes, rssi, status);
+                       break;
+               case Altos.ao_telemetry_0_8_len + 4:
                        r = new AltosTelemetryRecordLegacy(bytes, rssi, status);
                        break;
                default: