altosui: Max acceleration across boost instead of all ascent
authorKeith Packard <keithp@keithp.com>
Sat, 8 Oct 2011 17:43:37 +0000 (11:43 -0600)
committerKeith Packard <keithp@keithp.com>
Sat, 8 Oct 2011 17:43:37 +0000 (11:43 -0600)
This ignores ejection bumps, making the max acceleration far more useful.

Signed-off-by: Keith Packard <keithp@keithp.com>
altosui/AltosFlightStatsTable.java
altosui/AltosState.java

index 3fecf92..2d34c6e 100644 (file)
@@ -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)));
index 072cb79..3d8e5e1 100644 (file)
@@ -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)