X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosDataListener.java;h=359d04c932008993238474a14266bb0ce5ca241a;hb=d75e8b9046295051c91696461e8d5f59c8260ccc;hp=7f5dfda9360cfb9bf1c4c249e457134aae4957b2;hpb=a61217f0a6d0ef48b6471f632c4600255867e831;p=fw%2Faltos diff --git a/altoslib/AltosDataListener.java b/altoslib/AltosDataListener.java index 7f5dfda9..359d04c9 100644 --- a/altoslib/AltosDataListener.java +++ b/altoslib/AltosDataListener.java @@ -16,28 +16,86 @@ package org.altusmetrum.altoslib_12; public abstract class AltosDataListener { - public AltosCalData cal_data = null; + 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()); + } + + public AltosCalData cal_data() { + if (cal_data == null) + cal_data = new AltosCalData(); + return cal_data; + } public void set_time(double time) { if (time != AltosLib.MISSING) this.time = time; } + public void set_serial(int serial) { + 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); + switch (log_format) { + case AltosLib.AO_LOG_FORMAT_TELEGPS: + set_state(AltosLib.ao_flight_stateless); + break; + } + } + public double time() { return time; } public void set_state(int state) { - if (state != AltosLib.MISSING) - this.state = state; + cal_data().set_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; } /* 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);