X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosTelemetryFile.java;h=15344b8dba5f06464f482b13aee3817fc3125990;hb=HEAD;hp=0b0e6a484c18a077a0bcdecc95b3c425c1acd5a9;hpb=f26cfe417c6977cf1e7e75a4f050e25f64d41859;p=fw%2Faltos diff --git a/altoslib/AltosTelemetryFile.java b/altoslib/AltosTelemetryFile.java index 0b0e6a48..5ba32518 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_14; import java.io.*; import java.util.*; @@ -46,12 +46,15 @@ class AltosTelemetryNullListener extends AltosDataListener { public void set_accel(double along, double across, double through) { } public void set_mag(double along, double across, double through) { } public void set_pyro_voltage(double volts) { } - public void set_ignitor_voltage(double[] voltage) { } + public void set_igniter_voltage(double[] voltage) { } public void set_pyro_fired(int pyro_mask) { } public void set_companion(AltosCompanion companion) { } + public void set_motor_pressure(double motor_pressure) { } public boolean cal_data_complete() { /* All telemetry packets */ + AltosCalData cal_data = cal_data(); + if (cal_data.serial == AltosLib.MISSING) return false; @@ -78,7 +81,7 @@ class AltosTelemetryNullListener extends AltosDataListener { /* * TelemetryLocation */ - if (AltosLib.has_gps(cal_data.device_type) && cal_data.gps_ground_altitude == AltosLib.MISSING) + if (AltosLib.has_gps(cal_data.device_type) && cal_data.gps_pad == null) return false; return true; @@ -93,6 +96,7 @@ public class AltosTelemetryFile implements AltosRecordSet { AltosTelemetryIterable telems; AltosCalData cal_data; + int first_state; public void write_comments(PrintStream out) { } @@ -106,28 +110,39 @@ 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; } - System.out.printf("Telemetry boost tick %d\n", cal_data.boost_tick); } 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); - if (cal_data.time() >= -1) - telem.provide_data(listener, cal_data); + telem.provide_data(listener); + if (listener.state() == AltosLib.ao_flight_landed) + break; } + listener.finish(); + } + + public AltosConfigData config_data() { + return null; } - public AltosTelemetryFile(FileInputStream input) { + public AltosTelemetryFile(FileInputStream input) throws IOException { telems = new AltosTelemetryIterable(input); } }