From: Keith Packard Date: Sun, 28 May 2017 21:33:28 +0000 (-0700) Subject: altoslib: Handle eeprom tick wrapping X-Git-Tag: 1.8~67 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=e0f25bcb8c036330e80c1254ab67f0bf323a4a98 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 --- 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; } } }