X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosui%2FAltosTelemetryRecordRaw.java;h=39b2ba0772a2d3efdf56d897023ce5bd3718402c;hb=93b8f40bb451c9ec152490d1f431ab18f8ecb7d1;hp=e6c4cfc8af44ddf3ba5c3424df4b44b7cf7ef48e;hpb=4132ac5896114e5f3d8fb3f219422e8933078cf4;p=fw%2Faltos diff --git a/altosui/AltosTelemetryRecordRaw.java b/altosui/AltosTelemetryRecordRaw.java index e6c4cfc8..39b2ba07 100644 --- a/altosui/AltosTelemetryRecordRaw.java +++ b/altosui/AltosTelemetryRecordRaw.java @@ -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: @@ -136,9 +143,11 @@ public class AltosTelemetryRecordRaw implements AltosTelemetryRecord { public AltosRecord update_state(AltosRecord previous) { AltosRecord next; - if (previous != null) + if (previous != null) { next = new AltosRecord(previous); - else + while (tick < previous.tick) + tick += 65536; + } else next = new AltosRecord(); next.serial = serial; next.tick = tick;