altoslib: Reset transient AltosCalData values before processing data
[fw/altos] / altoslib / AltosTelemetryFile.java
index 8adf7e695c569900ead1a3d301b547c5e0cce15a..a4792f118938b4d0283954d7bd1d8ae8919bb158 100644 (file)
@@ -118,15 +118,21 @@ public class AltosTelemetryFile implements AltosRecordSet {
        public void capture_series(AltosDataListener listener) {
                AltosCalData    cal_data = cal_data();
 
+               cal_data.reset();
                for (AltosTelemetry telem : telems) {
                        int tick = telem.tick();
                        cal_data.set_tick(tick);
-                       if (cal_data.time() >= -1)
+
+                       /* Try to pick up at least one pre-boost value */
+                       if (cal_data.time() >= -2)
                                telem.provide_data(listener, cal_data);
+                       if (listener.state == AltosLib.ao_flight_landed)
+                               break;
                }
+               listener.finish();
        }
 
-       public AltosTelemetryFile(FileInputStream input) {
+       public AltosTelemetryFile(FileInputStream input) throws IOException {
                telems = new AltosTelemetryIterable(input);
        }
 }