From e0f25bcb8c036330e80c1254ab67f0bf323a4a98 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 28 May 2017 14:33:28 -0700 Subject: [PATCH] altoslib: Handle eeprom tick wrapping Need to deal with eeprom files with tick values that cross the 16-bit barrier. Use 'wide_tick' to order eeprom record. Remeber 'prev_tick' to order cal data time sequence. Signed-off-by: Keith Packard --- altoslib/AltosCalData.java | 1 + altoslib/AltosEepromRecord.java | 2 +- altoslib/AltosEepromRecordSet.java | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/altoslib/AltosCalData.java b/altoslib/AltosCalData.java index 960de30a..54b75817 100644 --- a/altoslib/AltosCalData.java +++ b/altoslib/AltosCalData.java @@ -172,6 +172,7 @@ public class AltosCalData { tick += 65536; } } + prev_tick = tick; this.tick = tick; } } diff --git a/altoslib/AltosEepromRecord.java b/altoslib/AltosEepromRecord.java index 7a0cc8f9..75fe5381 100644 --- a/altoslib/AltosEepromRecord.java +++ b/altoslib/AltosEepromRecord.java @@ -74,7 +74,7 @@ public abstract class AltosEepromRecord implements Comparable if (cmd_diff != 0) return cmd_diff; - int tick_diff = tick() - o.tick(); + int tick_diff = wide_tick - o.wide_tick; if (tick_diff != 0) return tick_diff; diff --git a/altoslib/AltosEepromRecordSet.java b/altoslib/AltosEepromRecordSet.java index 0c60c1a5..c019a092 100644 --- a/altoslib/AltosEepromRecordSet.java +++ b/altoslib/AltosEepromRecordSet.java @@ -33,6 +33,7 @@ public class AltosEepromRecordSet implements AltosRecordSet { if (record.cmd() == AltosLib.AO_LOG_FLIGHT) { cal_data.set_tick(record.tick()); cal_data.set_boost_tick(); + break; } } } -- 2.30.2