X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosui%2FAltosTelemetryIterable.java;h=1a31b3652e23745c6b2b41a4068c613c6fdf4cd1;hb=578c4b17b8f62f2727654ebda78ee139f9fe13fa;hp=44e5ad8f8d9c2fe9977cd0550abf8ab67c8d9dc0;hpb=f558cfa1df77c36a459168c1953d0945ee5a7f9f;p=fw%2Faltos diff --git a/altosui/AltosTelemetryIterable.java b/altosui/AltosTelemetryIterable.java index 44e5ad8f..1a31b365 100644 --- a/altosui/AltosTelemetryIterable.java +++ b/altosui/AltosTelemetryIterable.java @@ -40,6 +40,7 @@ public class AltosTelemetryIterable extends AltosRecordIterable { int current_tick = 0; int boost_tick = 0; + AltosRecord previous = null; records = new LinkedList (); try { @@ -49,7 +50,7 @@ public class AltosTelemetryIterable extends AltosRecordIterable { break; } try { - AltosTelemetry record = new AltosTelemetry(line); + AltosRecord record = AltosTelemetry.parse(line, previous); if (record == null) break; if (records.isEmpty()) { @@ -72,7 +73,9 @@ public class AltosTelemetryIterable extends AltosRecordIterable { has_gps = true; if (record.main != AltosRecord.MISSING) has_ignite = true; - records.add(record); + if (previous != null && previous.tick != record.tick) + records.add(previous); + previous = record; } catch (ParseException pe) { System.out.printf("parse exception %s\n", pe.getMessage()); } catch (AltosCRCException ce) { @@ -82,6 +85,9 @@ public class AltosTelemetryIterable extends AltosRecordIterable { System.out.printf("io exception\n"); } + if (previous != null) + records.add(previous); + /* adjust all tick counts to be relative to boost time */ for (AltosRecord r : this) r.time = (r.tick - boost_tick) / 100.0;