X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosDataListener.java;h=496235c3c843fa5f2595a6b74d7f12ced91f35bc;hp=5f89b3e4b5adae46772f47387ea0e5da37107f19;hb=HEAD;hpb=c8dbcaf69cd538a31ab6e2b568237ae7c8656a9a diff --git a/altoslib/AltosDataListener.java b/altoslib/AltosDataListener.java index 5f89b3e4..18ffd988 100644 --- a/altoslib/AltosDataListener.java +++ b/altoslib/AltosDataListener.java @@ -12,16 +12,23 @@ * General Public License for more details. */ -package org.altusmetrum.altoslib_12; +package org.altusmetrum.altoslib_14; public abstract class AltosDataListener { private AltosCalData cal_data = null; public double time = AltosLib.MISSING; - public int state = AltosLib.MISSING; + public double frequency = AltosLib.MISSING; + + public int raw_tick = AltosLib.MISSING; + + public int tick() { + return raw_tick; + } public void set_tick(int tick) { + raw_tick = tick; cal_data.set_tick(tick); set_time(cal_data.time()); } @@ -32,6 +39,10 @@ public abstract class AltosDataListener { return cal_data; } + public AltosConfigData config_data() { + return null; + } + public void set_time(double time) { if (time != AltosLib.MISSING) this.time = time; @@ -41,24 +52,63 @@ public abstract class AltosDataListener { cal_data().set_serial(serial); } + public void set_device_type(int device_type) { + cal_data().set_device_type(device_type); + switch (device_type) { + case AltosLib.product_telegps: + set_state(AltosLib.ao_flight_stateless); + break; + } + } + + public void set_log_format(int log_format) { + cal_data().set_log_format(log_format); + if (cal_data().device_type == AltosLib.MISSING) + cal_data().set_device_type(AltosLib.product_id_from_log_format(log_format)); + switch (log_format) { + case AltosLib.AO_LOG_FORMAT_TELEGPS: + set_state(AltosLib.ao_flight_stateless); + break; + } + } + public double time() { return time; } + public String state_name() { + return cal_data().state_name(); + } + public void set_state(int state) { cal_data().set_state(state); - if (state != AltosLib.MISSING) - this.state = state; + } + + public int state() { + return cal_data().state; } public void set_flight(int flight) { cal_data().set_flight(flight); } + public void set_frequency(double frequency) { + this.frequency = frequency; + } + + public void set_avoid_duplicate_files() { + } + /* Called after all records are captured */ public void finish() { } + public void init() { + set_state(AltosLib.ao_flight_invalid); + time = AltosLib.MISSING; + frequency = AltosLib.MISSING; + } + public abstract void set_rssi(int rssi, int status); public abstract void set_received_time(long received_time); @@ -74,7 +124,18 @@ public abstract class AltosDataListener { public abstract void set_apogee_voltage(double volts); public abstract void set_main_voltage(double volts); - public abstract void set_gps(AltosGPS gps); + public void set_gps(AltosGPS gps, boolean set_location, boolean set_sats) { + AltosCalData cal_data = cal_data(); + cal_data.set_cal_gps(gps); + } + + public AltosGPS make_temp_gps(boolean sats) { + return cal_data().make_temp_cal_gps(tick(), sats); + } + + public AltosGPS temp_gps() { + return cal_data().temp_cal_gps(); + } public abstract void set_orient(double orient); public abstract void set_gyro(double roll, double pitch, double yaw); @@ -85,6 +146,7 @@ public abstract class AltosDataListener { public abstract void set_igniter_voltage(double[] voltage); public abstract void set_pyro_fired(int pyro_mask); public abstract void set_companion(AltosCompanion companion); + public abstract void set_motor_pressure(double motor_pressure); public AltosDataListener() { }