X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosTelemetryFile.java;h=1aa473aee56325da0539787183ce54fafb2ddd0b;hb=8ac11767a1b8d3e2faf6f020f5161ed05b801070;hp=037a6c87f9698a2c018d0426d5ab4aaa3b3d1eb6;hpb=a61217f0a6d0ef48b6471f632c4600255867e831;p=fw%2Faltos diff --git a/altoslib/AltosTelemetryFile.java b/altoslib/AltosTelemetryFile.java index 037a6c87..1aa473ae 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_12; +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; @@ -93,6 +95,7 @@ public class AltosTelemetryFile implements AltosRecordSet { AltosTelemetryIterable telems; AltosCalData cal_data; + int first_state; public void write_comments(PrintStream out) { } @@ -106,8 +109,11 @@ public class AltosTelemetryFile implements AltosRecordSet { cal_data = new AltosCalData(); AltosTelemetryNullListener l = new AltosTelemetryNullListener(cal_data); + first_state = AltosLib.ao_flight_startup; for (AltosTelemetry telem : telems) { - telem.provide_data(l, cal_data); + telem.provide_data(l); + if (cal_data.state == AltosLib.ao_flight_pad) + first_state = cal_data.state; if (l.cal_data_complete()) break; } @@ -115,18 +121,17 @@ public class AltosTelemetryFile implements AltosRecordSet { return cal_data; } - public void capture_series(AltosDataListener listener) { - AltosCalData cal_data = cal_data(); + public boolean valid() { + return true; + } + public void capture_series(AltosDataListener listener) { + cal_data(); cal_data.reset(); + cal_data.state = first_state; for (AltosTelemetry telem : telems) { - int tick = telem.tick(); - cal_data.set_tick(tick); - - /* 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) + telem.provide_data(listener); + if (listener.state() == AltosLib.ao_flight_landed) break; } listener.finish();