From: Bdale Garbee Date: Fri, 12 May 2017 18:58:18 +0000 (-0600) Subject: add thrust as a graphable time series type X-Git-Tag: 1.8~99 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=e8794ab1d512418e312a1a779777119e20dc8c38 add thrust as a graphable time series type --- diff --git a/altoslib/AltosEepromRecordFireTwo.java b/altoslib/AltosEepromRecordFireTwo.java index a430bd97..bfdd6cf8 100644 --- a/altoslib/AltosEepromRecordFireTwo.java +++ b/altoslib/AltosEepromRecordFireTwo.java @@ -82,7 +82,7 @@ public class AltosEepromRecordFireTwo extends AltosEepromRecord { 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; } } diff --git a/altoslib/AltosFlightListener.java b/altoslib/AltosFlightListener.java index ff5e4c3d..f7705165 100644 --- a/altoslib/AltosFlightListener.java +++ b/altoslib/AltosFlightListener.java @@ -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_thrust(double N); public abstract void set_temperature(double deg_c); public abstract void set_battery_voltage(double volts); diff --git a/altoslib/AltosFlightSeries.java b/altoslib/AltosFlightSeries.java index 752aa48b..0e260fb4 100644 --- a/altoslib/AltosFlightSeries.java +++ b/altoslib/AltosFlightSeries.java @@ -136,6 +136,16 @@ public class AltosFlightSeries extends AltosFlightListener { 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) { } diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java index 6aa77139..846bda42 100644 --- a/altoslib/AltosState.java +++ b/altoslib/AltosState.java @@ -513,6 +513,25 @@ public class AltosState extends AltosFlightListener implements Cloneable { 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(); @@ -760,6 +779,7 @@ public class AltosState extends AltosFlightListener implements Cloneable { ground_pressure = new AltosGroundPressure(); altitude = new AltosAltitude(); pressure = new AltosPressure(); + thrust = new AltosForce(); speed = new AltosSpeed(); acceleration = new AltosAccel(); orient = new AltosCValue(); diff --git a/altosuilib/AltosGraphNew.java b/altosuilib/AltosGraphNew.java index ba2dc717..2c01c466 100644 --- a/altosuilib/AltosGraphNew.java +++ b/altosuilib/AltosGraphNew.java @@ -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 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); @@ -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; - 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); + 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); @@ -120,6 +122,11 @@ public class AltosGraphNew extends AltosUIGraphNew { 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); @@ -139,6 +146,12 @@ public class AltosGraphNew extends AltosUIGraphNew { pressure_color, false, pressure_axis); + addSeries("Thrust", + AltosGraphDataPoint.data_thrust, + thrust_units, + thrust_color, + false, + thrust_axis); addSeries("Speed", AltosGraphDataPoint.data_speed, AltosConvert.speed,