diff options
author | Keith Packard <keithp@keithp.com> | 2011-08-10 14:35:21 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2011-08-10 14:35:21 -0700 |
commit | 4962bcf1ce15c21a946ea718bd676b901f0f2bd0 (patch) | |
tree | eb799aadedf5da42ca1fadc10f54edf0d309c186 /altosui | |
parent | 01b9352eb8ca0e4e2d023ce973c4e863cdcc0c51 (diff) |
altosui: Plot reasonable data from Tm files
Don't plot acceleration based on baro data.
Display baro speed if accel speed isn't available.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altosui')
-rw-r--r-- | altosui/AltosFlightStats.java | 5 | ||||
-rw-r--r-- | altosui/AltosFlightStatsTable.java | 18 | ||||
-rw-r--r-- | altosui/AltosState.java | 4 |
3 files changed, 18 insertions, 9 deletions
diff --git a/altosui/AltosFlightStats.java b/altosui/AltosFlightStats.java index e644b0ba..19471e9f 100644 --- a/altosui/AltosFlightStats.java +++ b/altosui/AltosFlightStats.java @@ -67,7 +67,10 @@ public class AltosFlightStats { if (state_end[state.state] < state.time) state_end[state.state] = state.time; max_height = state.max_height; - max_speed = state.max_speed; + if (state.max_speed != 0) + max_speed = state.max_speed; + else + max_speed = state.max_baro_speed; max_acceleration = state.max_acceleration; } } catch (ParseException pp) { diff --git a/altosui/AltosFlightStatsTable.java b/altosui/AltosFlightStatsTable.java index 8676d306..e2c0dd46 100644 --- a/altosui/AltosFlightStatsTable.java +++ b/altosui/AltosFlightStatsTable.java @@ -77,14 +77,16 @@ public class AltosFlightStatsTable extends JComponent { String.format("%5.0f m/s", stats.max_speed), String.format("%5.0f ft/s", stats.max_speed * 100 / 2.54 / 12), String.format("Mach %5.3f", stats.max_speed / 343.0)); - new FlightStat(layout, y++, "Maximum acceleration", - String.format("%5.0f m/s²", stats.max_acceleration), - String.format("%5.0f ft/s²", stats.max_acceleration * 100 / 2.54 /12), - String.format("%5.2f G", stats.max_acceleration / 9.80665)); - new FlightStat(layout, y++, "Average boost acceleration", - String.format("%5.0f m/s²", stats.state_accel[Altos.ao_flight_boost]), - String.format("%5.0f ft/s²", stats.state_accel[Altos.ao_flight_boost] * 100 / 2.54 /12), - String.format("%5.2f G", stats.state_accel[Altos.ao_flight_boost] / 9.80665)); + if (stats.max_acceleration != AltosRecord.MISSING) { + new FlightStat(layout, y++, "Maximum acceleration", + String.format("%5.0f m/s²", stats.max_acceleration), + String.format("%5.0f ft/s²", stats.max_acceleration * 100 / 2.54 /12), + String.format("%5.2f G", stats.max_acceleration / 9.80665)); + new FlightStat(layout, y++, "Average boost acceleration", + String.format("%5.0f m/s²", stats.state_accel[Altos.ao_flight_boost]), + String.format("%5.0f ft/s²", stats.state_accel[Altos.ao_flight_boost] * 100 / 2.54 /12), + String.format("%5.2f G", stats.state_accel[Altos.ao_flight_boost] / 9.80665)); + } new FlightStat(layout, y++, "Drogue descent rate", String.format("%5.0f m/s", stats.state_baro_speed[Altos.ao_flight_drogue]), String.format("%5.0f ft/s", stats.state_baro_speed[Altos.ao_flight_drogue] * 100 / 2.54 / 12)); diff --git a/altosui/AltosState.java b/altosui/AltosState.java index 1ac816d5..378930bf 100644 --- a/altosui/AltosState.java +++ b/altosui/AltosState.java @@ -49,6 +49,7 @@ public class AltosState { double max_height; double max_acceleration; double max_speed; + double max_baro_speed; AltosGPS gps; @@ -105,6 +106,7 @@ public class AltosState { max_height = prev_state.max_height; max_acceleration = prev_state.max_acceleration; max_speed = prev_state.max_speed; + max_baro_speed = prev_state.max_baro_speed; /* make sure the clock is monotonic */ while (tick < prev_state.tick) @@ -171,6 +173,8 @@ public class AltosState { max_acceleration = acceleration; if (ascent && speed > max_speed) max_speed = speed; + if (ascent && baro_speed > max_baro_speed) + max_baro_speed = baro_speed; if (height > max_height) max_height = height; |