altoslib: Check for negative tick wrap when importing flight records
[fw/altos] / altoslib / AltosEepromRecordSet.java
index 3b19ee682ff9b633884c45fdf33584f5447affa6..f0819a8108d9c5212697524a2290609eac0508e1 100644 (file)
@@ -87,6 +87,8 @@ public class AltosEepromRecordSet implements AltosRecordSet {
                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:
@@ -110,6 +112,9 @@ public class AltosEepromRecordSet implements AltosRecordSet {
                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>();
@@ -133,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;