X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosui%2FAltosAscent.java;h=d607b0c50aeff986137282c43fa4aeaef2e41da7;hp=8a4aa58b02de03234e4d070886ceaf208f84dcb6;hb=8f80f5705d64469bcfb00ff11aee68364edb271b;hpb=80ca066a825646f833ca609190c76c5252118d9a diff --git a/altosui/AltosAscent.java b/altosui/AltosAscent.java index 8a4aa58b..d607b0c5 100644 --- a/altosui/AltosAscent.java +++ b/altosui/AltosAscent.java @@ -36,6 +36,18 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay { JTextField value; AltosLights lights; + void show() { + value.setVisible(true); + lights.setVisible(true); + label.setVisible(true); + } + + void hide() { + value.setVisible(false); + lights.setVisible(false); + label.setVisible(false); + } + void show(AltosState state, int crc_errors) {} void reset() { value.setText(""); @@ -136,14 +148,19 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay { void reset() { value.setText(""); max_value.setText(""); - max = 0; + max = AltosRecord.MISSING; } void show(String format, double v) { - value.setText(String.format(format, v)); - if (v > max) { - max_value.setText(String.format(format, v)); - max = v; + if (v == AltosRecord.MISSING) { + value.setText("Missing"); + max_value.setText("Missing"); + } else { + value.setText(String.format(format, v)); + if (v > max || max == AltosRecord.MISSING) { + max_value.setText(String.format(format, v)); + max = v; + } } } public AscentValueHold (GridBagLayout layout, int y, String text) { @@ -233,6 +250,7 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay { class Apogee extends AscentStatus { void show (AltosState state, int crc_errors) { + show(); value.setText(String.format("%4.2f V", state.drogue_sense)); lights.set(state.drogue_sense > 3.2); } @@ -245,6 +263,7 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay { class Main extends AscentStatus { void show (AltosState state, int crc_errors) { + show(); value.setText(String.format("%4.2f V", state.main_sense)); lights.set(state.main_sense > 3.2); } @@ -296,7 +315,7 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay { } public void show(AltosState state, int crc_errors) { - if (state.gps != null) { + if (state.gps != null && state.gps.connected) { lat.show(state, crc_errors); lon.show(state, crc_errors); } else { @@ -304,8 +323,14 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay { lon.hide(); } height.show(state, crc_errors); - main.show(state, crc_errors); - apogee.show(state, crc_errors); + if (state.main_sense != AltosRecord.MISSING) + main.show(state, crc_errors); + else + main.hide(); + if (state.drogue_sense != AltosRecord.MISSING) + apogee.show(state, crc_errors); + else + apogee.hide(); speed.show(state, crc_errors); accel.show(state, crc_errors); }