summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBdale Garbee <bdale@gag.com>2017-05-12 12:58:18 -0600
committerKeith Packard <keithp@keithp.com>2017-05-19 21:41:40 -0700
commite8794ab1d512418e312a1a779777119e20dc8c38 (patch)
tree3cdeeabc670ce74e29b8ef0012320ee0d2bcd48e
parentbbe0c2e0a3216f40f49af34b756330ba28d7c7e1 (diff)
add thrust as a graphable time series type
-rw-r--r--altoslib/AltosEepromRecordFireTwo.java2
-rw-r--r--altoslib/AltosFlightListener.java1
-rw-r--r--altoslib/AltosFlightSeries.java10
-rw-r--r--altoslib/AltosState.java20
-rw-r--r--altosuilib/AltosGraphNew.java15
5 files changed, 46 insertions, 2 deletions
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,