X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ao-tools%2Faltosui%2FAltosTelemetryReader.java;h=3564a0a5a7aa14acf5f98925dbef47f203f515d8;hb=7e053ae1f2d09347123ac9fa79e46645378b4c70;hp=a3402f9c8b85a1756809ed2f879009fcb37b4294;hpb=c443f43f8dee6e0fcbcecf9d09e948fd928b7af4;p=fw%2Faltos diff --git a/ao-tools/altosui/AltosTelemetryReader.java b/ao-tools/altosui/AltosTelemetryReader.java index a3402f9c..3564a0a5 100644 --- a/ao-tools/altosui/AltosTelemetryReader.java +++ b/ao-tools/altosui/AltosTelemetryReader.java @@ -41,6 +41,7 @@ public class AltosTelemetryReader extends AltosReader { public AltosTelemetryReader (FileInputStream input) { boolean saw_boost = false; + int current_tick = 0; records = new LinkedList (); @@ -54,6 +55,15 @@ public class AltosTelemetryReader extends AltosReader { AltosTelemetry record = new AltosTelemetry(line); if (record == null) break; + if (records.isEmpty()) { + current_tick = record.tick; + } else { + int tick = record.tick | (current_tick & ~ 0xffff); + if (tick < current_tick - 0x1000) + tick += 0x10000; + current_tick = tick; + record.tick = current_tick; + } if (!saw_boost && record.state >= Altos.ao_flight_boost) { saw_boost = true; @@ -62,6 +72,8 @@ public class AltosTelemetryReader extends AltosReader { records.add(record); } catch (ParseException pe) { System.out.printf("parse exception %s\n", pe.getMessage()); + } catch (AltosCRCException ce) { + System.out.printf("crc error\n"); } } } catch (IOException io) {