summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--altoslib/AltosState.java24
-rw-r--r--altosui/AltosPad.java39
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");