add thrust as a graphable time series type
authorBdale Garbee <bdale@gag.com>
Fri, 12 May 2017 18:58:18 +0000 (12:58 -0600)
committerKeith Packard <keithp@keithp.com>
Sat, 20 May 2017 04:41:40 +0000 (21:41 -0700)
altoslib/AltosEepromRecordFireTwo.java
altoslib/AltosFlightListener.java
altoslib/AltosFlightSeries.java
altoslib/AltosState.java
altosuilib/AltosGraphNew.java

index a430bd97c86a6bae0ca7b6e534f10615e15a1e51..bfdd6cf898adc4f4f5aa4c22e68f96bdd9c90795 100644 (file)
@@ -82,7 +82,7 @@ public class AltosEepromRecordFireTwo extends AltosEepromRecord {
                        break;
                case AltosLib.AO_LOG_SENSOR:
                        state.set_pressure(adc_to_pa(pres()));
                        break;
                case AltosLib.AO_LOG_SENSOR:
                        state.set_pressure(adc_to_pa(pres()));
-                       state.set_accel(adc_to_n(thrust()));
+                       state.set_thrust(adc_to_n(thrust()));
                        break;
                }
        }
                        break;
                }
        }
index ff5e4c3d6fe520000cd30162bb2e0be3fc3c2a7c..f770516544b81960859fe7e95719cfba60046e4d 100644 (file)
@@ -62,6 +62,7 @@ public abstract class AltosFlightListener {
        public abstract void set_accel(double accel);
        public abstract void set_accel_g(double accel_plus_g, double accel_minus_g);
        public abstract void set_pressure(double pa);
        public abstract void set_accel(double accel);
        public abstract void set_accel_g(double accel_plus_g, double accel_minus_g);
        public abstract void set_pressure(double pa);
+       public abstract void set_thrust(double N);
 
        public abstract void set_temperature(double deg_c);
        public abstract void set_battery_voltage(double volts);
 
        public abstract void set_temperature(double deg_c);
        public abstract void set_battery_voltage(double volts);
index 752aa48ba103fdcda2d52104371f1621df1cafb7..0e260fb4bb63063a9aa7c4dca58c7b83cddf0c24 100644 (file)
@@ -136,6 +136,16 @@ public class AltosFlightSeries extends AltosFlightListener {
                pressure_series.add(time(), pa);
        }
 
                pressure_series.add(time(), pa);
        }
 
+       AltosTimeSeries thrust_series;
+
+       public static final String thrust_name = "Thrust";
+
+       public  void set_thrust(double N) {
+               if (thrust_series == null)
+                       thrust_series = add_series(thrust_name, AltosConvert.force);
+               thrust_series.add(time(), N);
+       }
+
        public  void set_temperature(double deg_c) {
        }
 
        public  void set_temperature(double deg_c) {
        }
 
index 6aa77139d62f81f9edd47191b51640a7367ae813..846bda42dd834f454c8dc225de5bc4a42a44643f 100644 (file)
@@ -513,6 +513,25 @@ public class AltosState extends AltosFlightListener implements Cloneable {
                pressure.set(p, time);
        }
 
                pressure.set(p, time);
        }
 
+       class AltosForce extends AltosValue {
+               void set(double p, double time) {
+                       super.set(p, time);
+               }
+
+               AltosForce() {
+                       super();
+               }
+       }
+       private AltosForce      thrust;
+
+       public double thrust() {
+               return thrust.value();
+       }
+
+       public void set_thrust(double N) {
+               thrust.set(N, time);
+       }
+
        public double baro_height() {
                double a = altitude();
                double g = ground_altitude();
        public double baro_height() {
                double a = altitude();
                double g = ground_altitude();
@@ -760,6 +779,7 @@ public class AltosState extends AltosFlightListener implements Cloneable {
                ground_pressure = new AltosGroundPressure();
                altitude = new AltosAltitude();
                pressure = new AltosPressure();
                ground_pressure = new AltosGroundPressure();
                altitude = new AltosAltitude();
                pressure = new AltosPressure();
+               thrust = new AltosForce();
                speed = new AltosSpeed();
                acceleration = new AltosAccel();
                orient = new AltosCValue();
                speed = new AltosSpeed();
                acceleration = new AltosAccel();
                orient = new AltosCValue();
index ba2dc7176d0f404828a526f21c9aedc7d5be4531..2c01c466e76ac123baa8cdbd6b0fbace0e9ac0f4 100644 (file)
@@ -43,6 +43,7 @@ public class AltosGraphNew extends AltosUIGraphNew {
        static final private Color range_color = new Color(100, 31, 31);
        static final private Color distance_color = new Color(100, 31, 194);
        static final private Color speed_color = new Color(31,194,31);
        static final private Color range_color = new Color(100, 31, 31);
        static final private Color distance_color = new Color(100, 31, 194);
        static final private Color speed_color = new Color(31,194,31);
+       static final private Color thrust_color = new Color(31,194,31);
        static final private Color accel_color = new Color(31,31,194);
        static final private Color voltage_color = new Color(194, 194, 31);
        static final private Color battery_voltage_color = new Color(194, 194, 31);
        static final private Color accel_color = new Color(31,31,194);
        static final private Color voltage_color = new Color(194, 194, 31);
        static final private Color battery_voltage_color = new Color(194, 194, 31);
@@ -82,13 +83,14 @@ public class AltosGraphNew extends AltosUIGraphNew {
        AltosUITimeSeries[] setup(AltosFlightStats stats, AltosRecordSet record_set) {
 
                AltosUIAxis     height_axis, speed_axis, accel_axis, voltage_axis, temperature_axis, nsat_axis, dbm_axis;
        AltosUITimeSeries[] setup(AltosFlightStats stats, AltosRecordSet record_set) {
 
                AltosUIAxis     height_axis, speed_axis, accel_axis, voltage_axis, temperature_axis, nsat_axis, dbm_axis;
-               AltosUIAxis     distance_axis, pressure_axis;
+               AltosUIAxis     distance_axis, pressure_axis, thrust_axis;
                AltosUIAxis     gyro_axis, orient_axis, mag_axis;
                AltosUIAxis     course_axis, dop_axis;
 
                height_axis = newAxis("Height", AltosConvert.height, height_color);
                pressure_axis = newAxis("Pressure", AltosConvert.pressure, pressure_color, 0);
                speed_axis = newAxis("Speed", AltosConvert.speed, speed_color);
                AltosUIAxis     gyro_axis, orient_axis, mag_axis;
                AltosUIAxis     course_axis, dop_axis;
 
                height_axis = newAxis("Height", AltosConvert.height, height_color);
                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);
                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);
                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);
@@ -120,6 +122,11 @@ public class AltosGraphNew extends AltosUIGraphNew {
                                             true,
                                             pressure_axis);
 
                                             true,
                                             pressure_axis);
 
+               flight_series.register_extra(AltosUIFlightSeries.thrust_name,
+                                            thrust_color,
+                                            true,
+                                            thrust_axis);
+
 //             addMarker("State", AltosGraphDataPoint.data_state, state_color);
 
                record_set.capture_series(flight_series);
 //             addMarker("State", AltosGraphDataPoint.data_state, state_color);
 
                record_set.capture_series(flight_series);
@@ -139,6 +146,12 @@ public class AltosGraphNew extends AltosUIGraphNew {
                                  pressure_color,
                                  false,
                                  pressure_axis);
                                  pressure_color,
                                  false,
                                  pressure_axis);
+                       addSeries("Thrust",
+                                 AltosGraphDataPoint.data_thrust,
+                                 thrust_units,
+                                 thrust_color,
+                                 false,
+                                 thrust_axis);
                        addSeries("Speed",
                                  AltosGraphDataPoint.data_speed,
                                  AltosConvert.speed,
                        addSeries("Speed",
                                  AltosGraphDataPoint.data_speed,
                                  AltosConvert.speed,