altoslib,altosuilib,altosui: log_format/device_type TeleGPS selects stateless
[fw/altos] / altoslib / AltosDataListener.java
index be6d840f0091e9b20d21589634ff63099272f5eb..fb37fe3d6453229fa1d107fae80c616272ef2871 100644 (file)
@@ -19,7 +19,6 @@ 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 void set_tick(int tick) {
@@ -42,14 +41,34 @@ 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);
+               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) {
                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) {
@@ -64,6 +83,12 @@ public abstract class AltosDataListener {
        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);