altoslib: Check for negative tick wrap when importing flight records
[fw/altos] / altoslib / AltosEepromRecordSet.java
index 689eaea67553f725aa3fc8b598af8d354309d00b..f0819a8108d9c5212697524a2290609eac0508e1 100644 (file)
@@ -86,6 +86,9 @@ public class AltosEepromRecordSet implements AltosRecordSet {
                case AltosLib.AO_LOG_FORMAT_TELEMEGA_OLD:
                case AltosLib.AO_LOG_FORMAT_EASYMEGA_2:
                case AltosLib.AO_LOG_FORMAT_TELEMEGA_4:
+               case AltosLib.AO_LOG_FORMAT_TELEMEGA_5:
+               case AltosLib.AO_LOG_FORMAT_TELEMEGA_6:
+               case AltosLib.AO_LOG_FORMAT_EASYMEGA_3:
                        record = new AltosEepromRecordMega(eeprom);
                        break;
                case AltosLib.AO_LOG_FORMAT_TELEMETRUM:
@@ -106,6 +109,12 @@ public class AltosEepromRecordSet implements AltosRecordSet {
                case AltosLib.AO_LOG_FORMAT_MICROPEAK2:
                        record = new AltosEepromRecordMicroPeak2(eeprom);
                        break;
+               case AltosLib.AO_LOG_FORMAT_EASYMOTOR:
+                       record = new AltosEepromRecordMotor(eeprom);
+                       break;
+               case AltosLib.AO_LOG_FORMAT_EASYTIMER_2:
+                       record = new AltosEepromRecordTimer(eeprom);
+                       break;
                }
 
                ordered = new TreeSet<AltosEepromRecord>();
@@ -129,6 +138,8 @@ public class AltosEepromRecordSet implements AltosRecordSet {
                        } else {
                                while (t < tick - 32767)
                                        t += 65536;
+                               while (t > tick + 32767)
+                                       t -= 65536;
                                tick = t;
                        }
                        record.wide_tick = tick;