altoslib: Re-initialize cal data for eeprom record set
authorKeith Packard <keithp@keithp.com>
Thu, 13 Feb 2020 23:06:45 +0000 (15:06 -0800)
committerKeith Packard <keithp@keithp.com>
Thu, 13 Feb 2020 23:43:35 +0000 (15:43 -0800)
Instead of leaving it uninitialized, restore the initial data from
the flight log.

Signed-off-by: Keith Packard <keithp@keithp.com>
altoslib/AltosEepromRecordSet.java

index fcf224f35c2a948a3dda802ee5dafc135ff13848..94a4f643029afc3bf5a94623ca4be614712169b4 100644 (file)
@@ -27,24 +27,32 @@ public class AltosEepromRecordSet implements AltosRecordSet {
                return eeprom.config_data();
        }
 
+       private void init_cal_data() {
+               for (AltosEepromRecord record : ordered) {
+                       if (record.cmd() == AltosLib.AO_LOG_FLIGHT) {
+                               cal_data.set_tick(record.tick());
+                               cal_data.set_boost_tick();
+                               cal_data.set_state(AltosLib.ao_flight_pad);
+                               break;
+                       }
+               }
+       }
+
        public AltosCalData cal_data() {
                if (cal_data == null) {
                        cal_data = new AltosCalData(config_data());
-                       for (AltosEepromRecord record : ordered) {
-                               if (record.cmd() == AltosLib.AO_LOG_FLIGHT) {
-                                       cal_data.set_tick(record.tick());
-                                       cal_data.set_boost_tick();
-                                       break;
-                               }
-                       }
+                       init_cal_data();
                }
                return cal_data;
        }
 
        public void capture_series(AltosDataListener listener) {
-               AltosCalData    cal_data = cal_data();
-
-               cal_data.reset();
+               if (cal_data == null) {
+                       cal_data();
+               } else {
+                       cal_data.reset();
+                       init_cal_data();
+               }
                listener.set_log_format(config_data().log_format);
 
                for (AltosEepromRecord record : ordered) {