altosuilib: Show raw tick values in graph and info table
[fw/altos] / altoslib / AltosFlightSeries.java
index 45d3b4563207a0c5f4f11309c6e41064ca107392..ab7943b399c1a340c3257b35dbdda9721c5e56e7 100644 (file)
@@ -150,15 +150,13 @@ public class AltosFlightSeries extends AltosDataListener {
 
        public void set_state(int state) {
 
-               if (state == AltosLib.ao_flight_pad)
-                       return;
-
-               if (state_series == null)
-                       state_series = add_series(state_name, AltosConvert.state_name);
-               else if (this.state == state)
-                       return;
-               this.state = state;
-               state_series.add(time(), state);
+               if (state != AltosLib.ao_flight_pad && state != AltosLib.MISSING && state != AltosLib.ao_flight_stateless) {
+                       if (state_series == null)
+                               state_series = add_series(state_name, AltosConvert.state_name);
+                       if (this.state() != state)
+                               state_series.add(time(), state);
+               }
+               super.set_state(state);
        }
 
        public AltosTimeSeries  accel_series;
@@ -193,6 +191,17 @@ public class AltosFlightSeries extends AltosDataListener {
        public void set_received_time(long received_time) {
        }
 
+       public AltosTimeSeries tick_series;
+
+       public static final String tick_name = "Tick";
+
+       public void set_tick(int tick) {
+               super.set_tick(tick);
+               if (tick_series == null)
+                       tick_series = add_series(tick_name, null);
+               tick_series.add(time(), tick);
+       }
+
        public AltosTimeSeries rssi_series;
 
        public static final String rssi_name = "RSSI";
@@ -363,11 +372,11 @@ public class AltosFlightSeries extends AltosDataListener {
                        double  dt = time - prev_time;
 
                        if (dt > 0) {
-                               double  roll = AltosConvert.degrees_to_radians(roll_v.value);
-                               double  pitch = AltosConvert.degrees_to_radians(gyro_pitch.value(time));
-                               double  yaw = AltosConvert.degrees_to_radians(gyro_yaw.value(time));
+                               double  roll = AltosConvert.degrees_to_radians(roll_v.value) * dt;
+                               double  pitch = AltosConvert.degrees_to_radians(gyro_pitch.value(time)) * dt;
+                               double  yaw = AltosConvert.degrees_to_radians(gyro_yaw.value(time)) * dt;
 
-                               rotation.rotate(dt, pitch, yaw, roll);
+                               rotation.rotate(pitch, yaw, roll);
                                orient_series.add(time, rotation.tilt());
                        }
                        prev_time = time;
@@ -643,7 +652,7 @@ public class AltosFlightSeries extends AltosDataListener {
        public  void set_igniter_voltage(double[] voltage) {
                int channels = voltage.length;
                if (igniter_voltage == null || igniter_voltage.length <= channels) {
-                       AltosTimeSeries[]       new_igniter_voltage = new AltosTimeSeries[channels + 1];
+                       AltosTimeSeries[]       new_igniter_voltage = new AltosTimeSeries[channels];
                        int                     i = 0;
 
                        if (igniter_voltage != null) {