diff options
-rw-r--r-- | altoslib/AltosState.java | 24 | ||||
-rw-r--r-- | altosui/AltosPad.java | 39 |
2 files changed, 45 insertions, 18 deletions
diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java index f18bf368..8a3bbd4c 100644 --- a/altoslib/AltosState.java +++ b/altoslib/AltosState.java @@ -98,14 +98,16 @@ public class AltosState { ground_altitude = data.ground_altitude(); altitude = data.altitude(); + if (altitude == AltosRecord.MISSING && data.gps != null) + altitude = data.gps.alt; height = AltosRecord.MISSING; if (data.kalman_height != AltosRecord.MISSING) height = data.kalman_height; else { - if (prev_state != null && altitude != AltosRecord.MISSING && ground_altitude != AltosRecord.MISSING) { + if (altitude != AltosRecord.MISSING && ground_altitude != AltosRecord.MISSING) { double cur_height = altitude - ground_altitude; - if (prev_state.height == AltosRecord.MISSING) + if (prev_state == null || prev_state.height == AltosRecord.MISSING) height = cur_height; else height = (prev_state.height * 15 + cur_height) / 16.0; @@ -116,10 +118,8 @@ public class AltosState { if (data.kalman_acceleration != AltosRecord.MISSING) acceleration = data.kalman_acceleration; - else { + else acceleration = data.acceleration(); - System.out.printf ("data acceleration %g\n", acceleration); - } temperature = data.temperature(); drogue_sense = data.drogue_voltage(); main_sense = data.main_voltage(); @@ -179,10 +179,10 @@ public class AltosState { gps = null; baro_speed = AltosRecord.MISSING; accel_speed = AltosRecord.MISSING; - max_baro_speed = AltosRecord.MISSING; - max_accel_speed = AltosRecord.MISSING; - max_height = AltosRecord.MISSING; - max_acceleration = AltosRecord.MISSING; + max_baro_speed = 0; + max_accel_speed = 0; + max_height = 0; + max_acceleration = 0; time_change = 0; } @@ -230,12 +230,12 @@ public class AltosState { /* Only look at accelerometer data under boost */ if (boost && acceleration != AltosRecord.MISSING && (max_acceleration == AltosRecord.MISSING || acceleration > max_acceleration)) max_acceleration = acceleration; - if (boost && accel_speed != AltosRecord.MISSING && (max_accel_speed == AltosRecord.MISSING || accel_speed > max_accel_speed)) + if (boost && accel_speed != AltosRecord.MISSING && accel_speed > max_accel_speed) max_accel_speed = accel_speed; - if (boost && baro_speed != AltosRecord.MISSING && (max_baro_speed == AltosRecord.MISSING || baro_speed > max_baro_speed)) + if (boost && baro_speed != AltosRecord.MISSING && baro_speed > max_baro_speed) max_baro_speed = baro_speed; - if (height != AltosRecord.MISSING || (max_height == AltosRecord.MISSING || height > max_height)) + if (height != AltosRecord.MISSING && height > max_height) max_height = height; if (data.gps != null) { if (gps == null || !gps.locked || data.gps.locked) diff --git a/altosui/AltosPad.java b/altosui/AltosPad.java index 66cb4cfc..eb08525c 100644 --- a/altosui/AltosPad.java +++ b/altosui/AltosPad.java @@ -66,6 +66,10 @@ public class AltosPad extends JComponent implements AltosFlightDisplay { value.setFont(Altos.value_font); } + public void set_label(String text) { + label.setText(text); + } + public LaunchStatus (GridBagLayout layout, int y, String text) { GridBagConstraints c = new GridBagConstraints(); c.weighty = 1; @@ -135,6 +139,10 @@ public class AltosPad extends JComponent implements AltosFlightDisplay { show(String.format(format, v)); } + public void set_label(String text) { + label.setText(text); + } + void reset() { value.setText(""); } @@ -267,7 +275,13 @@ public class AltosPad extends JComponent implements AltosFlightDisplay { class PadLat extends LaunchValue { void show (AltosState state, int crc_errors) { - show(pos(state.pad_lat,"N", "S")); + if (state.state < AltosLib.ao_flight_pad && state.gps != null) { + show(pos(state.gps.lat,"N", "S")); + set_label("Latitude"); + } else { + show(pos(state.pad_lat,"N", "S")); + set_label("Pad Latitude"); + } } public PadLat (GridBagLayout layout, int y) { super (layout, y, "Pad Latitude"); @@ -278,7 +292,13 @@ public class AltosPad extends JComponent implements AltosFlightDisplay { class PadLon extends LaunchValue { void show (AltosState state, int crc_errors) { - show(pos(state.pad_lon,"E", "W")); + if (state.state < AltosLib.ao_flight_pad && state.gps != null) { + show(pos(state.gps.lon,"E", "W")); + set_label("Longitude"); + } else { + show(pos(state.pad_lon,"E", "W")); + set_label("Pad Longitude"); + } } public PadLon (GridBagLayout layout, int y) { super (layout, y, "Pad Longitude"); @@ -289,10 +309,17 @@ public class AltosPad extends JComponent implements AltosFlightDisplay { class PadAlt extends LaunchValue { void show (AltosState state, int crc_errors) { - if (state.pad_alt == AltosRecord.MISSING) - hide(); - else - show("%4.0f m", state.pad_alt); + if (state.state < AltosLib.ao_flight_pad && state.gps != null) { + show("%4.0f m", state.gps.alt); + set_label("Altitude"); + } else { + if (state.pad_alt == AltosRecord.MISSING) + hide(); + else { + show("%4.0f m", state.pad_alt); + set_label("Pad Altitude"); + } + } } public PadAlt (GridBagLayout layout, int y) { super (layout, y, "Pad Altitude"); |