X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosTelemetryFile.java;h=679c6809559508a7b7c8719e8255b0d0ac00837a;hp=c6462872700f14e1f90fefcb194266a577082dc6;hb=fab890328d4e1151932621a317226bc291b853da;hpb=222158581887b5f9e8b9843d14321c313fa023fa diff --git a/altoslib/AltosTelemetryFile.java b/altoslib/AltosTelemetryFile.java index c6462872..679c6809 100644 --- a/altoslib/AltosTelemetryFile.java +++ b/altoslib/AltosTelemetryFile.java @@ -16,7 +16,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_11; +package org.altusmetrum.altoslib_13; import java.io.*; import java.util.*; @@ -52,6 +52,8 @@ class AltosTelemetryNullListener extends AltosDataListener { public boolean cal_data_complete() { /* All telemetry packets */ + AltosCalData cal_data = cal_data(); + if (cal_data.serial == AltosLib.MISSING) return false; @@ -107,11 +109,10 @@ public class AltosTelemetryFile implements AltosRecordSet { AltosTelemetryNullListener l = new AltosTelemetryNullListener(cal_data); for (AltosTelemetry telem : telems) { - telem.provide_data(l, cal_data); + telem.provide_data(l); if (l.cal_data_complete()) break; } - System.out.printf("Telemetry boost tick %d\n", cal_data.boost_tick); } return cal_data; } @@ -119,15 +120,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) - telem.provide_data(listener, cal_data); + + /* Try to pick up at least one pre-boost value */ + if (cal_data.time() >= -2) + telem.provide_data(listener); + if (listener.state() == AltosLib.ao_flight_landed) + break; } + listener.finish(); } - public AltosTelemetryFile(FileInputStream input) { + public AltosTelemetryFile(FileInputStream input) throws IOException { telems = new AltosTelemetryIterable(input); } }