altosuilib: Show raw tick values in graph and info table
authorKeith Packard <keithp@keithp.com>
Tue, 3 Oct 2017 00:02:18 +0000 (17:02 -0700)
committerKeith Packard <keithp@keithp.com>
Tue, 3 Oct 2017 00:08:33 +0000 (17:08 -0700)
Not terribly useful, but did help validate firmware handling of tick
wrapping, so we'll keep it.

Signed-off-by: Keith Packard <keithp@keithp.com>
altoslib/AltosDataListener.java
altoslib/AltosFlightSeries.java
altosuilib/AltosGraph.java
altosuilib/AltosInfoTable.java

index fb37fe3d6453229fa1d107fae80c616272ef2871..359d04c932008993238474a14266bb0ce5ca241a 100644 (file)
@@ -21,7 +21,14 @@ public abstract class AltosDataListener {
        public double           time = 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());
        }
index f7ea0d153ffc57678c5615d89ed985cc7e7d373d..ab7943b399c1a340c3257b35dbdda9721c5e56e7 100644 (file)
@@ -191,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";
index 31042abb51e34ca1da41c1f0ff4df5809243280d..5df952330168cf2de197c60fed46887a1497d5cd 100644 (file)
@@ -80,6 +80,7 @@ public class AltosGraph extends AltosUIGraph {
        static final private Color orient_color = new Color(31, 31, 31);
 
        static AltosUnits dop_units = null;
+       static AltosUnits tick_units = null;
 
        AltosUIFlightSeries flight_series;
 
@@ -89,7 +90,7 @@ public class AltosGraph extends AltosUIGraph {
                AltosUIAxis     height_axis, speed_axis, accel_axis, voltage_axis, temperature_axis, nsat_axis, dbm_axis;
                AltosUIAxis     distance_axis, pressure_axis, thrust_axis;
                AltosUIAxis     gyro_axis, orient_axis, mag_axis;
-               AltosUIAxis     course_axis, dop_axis;
+               AltosUIAxis     course_axis, dop_axis, tick_axis;
 
                if (stats.serial != AltosLib.MISSING && stats.product != null && stats.flight != AltosLib.MISSING)
                        setName(String.format("%s %d flight %d\n", stats.product, stats.serial, stats.flight));
@@ -98,6 +99,7 @@ public class AltosGraph extends AltosUIGraph {
                pressure_axis = newAxis("Pressure", AltosConvert.pressure, pressure_color, 0);
                speed_axis = newAxis("Speed", AltosConvert.speed, speed_color);
                thrust_axis = newAxis("Thrust", AltosConvert.force, thrust_color);
+               tick_axis = newAxis("Tick", tick_units, accel_color, 0);
                accel_axis = newAxis("Acceleration", AltosConvert.accel, accel_color);
                voltage_axis = newAxis("Voltage", AltosConvert.voltage, voltage_color);
                temperature_axis = newAxis("Temperature", AltosConvert.temperature, temperature_color, 0);
@@ -129,6 +131,11 @@ public class AltosGraph extends AltosUIGraph {
                                              plot,
                                              false);
 
+               flight_series.register_axis(AltosUIFlightSeries.tick_name,
+                                           accel_color,
+                                           false,
+                                           tick_axis);
+
                flight_series.register_axis(AltosUIFlightSeries.accel_name,
                                            accel_color,
                                            true,
@@ -320,6 +327,12 @@ public class AltosGraph extends AltosUIGraph {
                return flight_series.series(cal_data);
        }
 
+       public void set_filter(double filter) {
+               System.out.printf("filter set to %f\n", filter);
+               flight_series.set_filter(filter, filter);
+               units_changed(false);
+       }
+
        public void set_data(AltosFlightStats stats, AltosUIFlightSeries flight_series) {
                set_series(setup(stats, flight_series));
        }
@@ -330,6 +343,7 @@ public class AltosGraph extends AltosUIGraph {
 
        public AltosGraph(AltosUIEnable enable, AltosFlightStats stats, AltosUIFlightSeries flight_series) {
                this(enable);
+               this.flight_series = flight_series;
                set_series(setup(stats, flight_series));
        }
 }
index 9e528b1fd27f6ae4295bb7bdc013a53c3a74ab0c..e759394bb4645e0f304bad9017641630248d5849 100644 (file)
@@ -142,6 +142,8 @@ public class AltosInfoTable extends JTable implements AltosFlightDisplay, Hierar
                                info_add_row(0, "Device", "%s", AltosLib.product_name(cal_data.device_type));
                        else if (cal_data.product != null)
                                info_add_row(0, "Device", "%s", cal_data.product);
+                       if (state.tick() != AltosLib.MISSING)
+                               info_add_row(0, "Tick", "%6d", state.tick());
                        if (state.altitude() != AltosLib.MISSING)
                                info_add_row(0, "Altitude", "%6.0f    m", state.altitude());
                        if (cal_data.ground_altitude != AltosLib.MISSING)