summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-10-08 11:43:37 -0600
committerKeith Packard <keithp@keithp.com>2011-10-08 11:43:37 -0600
commitf9b0b7423c0640f729d61a91de6ff96ffe4b486e (patch)
treec236f0ec44a5c1d1607a78be7d1b97ddd59accac
parent258b75498916183ed250d3abb3282fe3d843e7a1 (diff)
altosui: Max acceleration across boost instead of all ascent
This ignores ejection bumps, making the max acceleration far more useful. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--altosui/AltosFlightStatsTable.java2
-rw-r--r--altosui/AltosState.java10
2 files changed, 7 insertions, 5 deletions
diff --git a/altosui/AltosFlightStatsTable.java b/altosui/AltosFlightStatsTable.java
index 3fecf921..2d34c6e2 100644
--- a/altosui/AltosFlightStatsTable.java
+++ b/altosui/AltosFlightStatsTable.java
@@ -86,7 +86,7 @@ public class AltosFlightStatsTable extends JComponent {
String.format("%5.0f ft/s", AltosConvert.meters_to_feet(stats.max_speed)),
String.format("Mach %5.3f", AltosConvert.meters_to_mach(stats.max_speed)));
if (stats.max_acceleration != AltosRecord.MISSING) {
- new FlightStat(layout, y++, "Maximum acceleration",
+ new FlightStat(layout, y++, "Maximum boost acceleration",
String.format("%5.0f m/s²", stats.max_acceleration),
String.format("%5.0f ft/s²", AltosConvert.meters_to_feet(stats.max_acceleration)),
String.format("%5.2f G", AltosConvert.meters_to_g(stats.max_acceleration)));
diff --git a/altosui/AltosState.java b/altosui/AltosState.java
index 072cb790..3d8e5e12 100644
--- a/altosui/AltosState.java
+++ b/altosui/AltosState.java
@@ -35,6 +35,7 @@ public class AltosState {
int state;
boolean landed;
boolean ascent; /* going up? */
+ boolean boost; /* under power */
double ground_altitude;
double height;
@@ -166,13 +167,14 @@ public class AltosState {
ascent = (Altos.ao_flight_boost <= state &&
state <= Altos.ao_flight_coast);
+ boost = (Altos.ao_flight_boost == state);
- /* Only look at accelerometer data on the way up */
- if (ascent && acceleration > max_acceleration)
+ /* Only look at accelerometer data under boost */
+ if (boost && acceleration > max_acceleration)
max_acceleration = acceleration;
- if (ascent && speed > max_speed)
+ if (boost && speed > max_speed)
max_speed = speed;
- if (ascent && baro_speed > max_baro_speed)
+ if (boost && baro_speed > max_baro_speed)
max_baro_speed = baro_speed;
if (height > max_height)