X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosui%2FAltosPad.java;h=2d800e8aae2768ffe64ad2fe11aaa18a55a2566c;hp=669543472a71ff3074ad823f0e24c562dcc4220e;hb=2c121f1ef495e8af3eb39210baa40e212b691894;hpb=f01096c4b42f9a4720ed0414826c2a283a992545 diff --git a/altosui/AltosPad.java b/altosui/AltosPad.java index 66954347..2d800e8a 100644 --- a/altosui/AltosPad.java +++ b/altosui/AltosPad.java @@ -42,6 +42,18 @@ public class AltosPad extends JComponent implements AltosFlightDisplay { lights.set(false); } + public void show() { + label.setVisible(true); + value.setVisible(true); + lights.setVisible(true); + } + + public void hide() { + label.setVisible(false); + value.setVisible(false); + lights.setVisible(false); + } + public LaunchStatus (GridBagLayout layout, int y, String text) { GridBagConstraints c = new GridBagConstraints(); c.weighty = 1; @@ -83,6 +95,16 @@ public class AltosPad extends JComponent implements AltosFlightDisplay { JTextField value; void show(AltosState state, int crc_errors) {} + void show() { + label.setVisible(true); + value.setVisible(true); + } + + void hide() { + label.setVisible(false); + value.setVisible(false); + } + void reset() { value.setText(""); } @@ -151,8 +173,9 @@ public class AltosPad extends JComponent implements AltosFlightDisplay { class GPSLocked extends LaunchStatus { void show (AltosState state, int crc_errors) { + show(); value.setText(String.format("%4d sats", state.gps.nsat)); - lights.set(state.gps.locked); + lights.set(state.gps.locked && state.gps.nsat >= 4); } public GPSLocked (GridBagLayout layout, int y) { super (layout, y, "GPS Locked"); @@ -163,6 +186,7 @@ public class AltosPad extends JComponent implements AltosFlightDisplay { class GPSReady extends LaunchStatus { void show (AltosState state, int crc_errors) { + show(); if (state.gps_ready) value.setText("Ready"); else @@ -189,6 +213,7 @@ public class AltosPad extends JComponent implements AltosFlightDisplay { class PadLat extends LaunchValue { void show (AltosState state, int crc_errors) { + show(); value.setText(pos(state.pad_lat,"N", "S")); } public PadLat (GridBagLayout layout, int y) { @@ -200,6 +225,7 @@ public class AltosPad extends JComponent implements AltosFlightDisplay { class PadLon extends LaunchValue { void show (AltosState state, int crc_errors) { + show(); value.setText(pos(state.pad_lon,"E", "W")); } public PadLon (GridBagLayout layout, int y) { @@ -235,11 +261,18 @@ public class AltosPad extends JComponent implements AltosFlightDisplay { battery.show(state, crc_errors); apogee.show(state, crc_errors); main.show(state, crc_errors); - gps_locked.show(state, crc_errors); - gps_ready.show(state, crc_errors); - pad_lat.show(state, crc_errors); - pad_lon.show(state, crc_errors); pad_alt.show(state, crc_errors); + if (state.gps != null) { + gps_locked.show(state, crc_errors); + gps_ready.show(state, crc_errors); + pad_lat.show(state, crc_errors); + pad_lon.show(state, crc_errors); + } else { + gps_locked.hide(); + gps_ready.hide(); + pad_lat.hide(); + pad_lon.hide(); + } } public AltosPad() {