altosui: Fix Landed tab units
authorKeith Packard <keithp@keithp.com>
Fri, 14 Sep 2012 18:13:02 +0000 (11:13 -0700)
committerKeith Packard <keithp@keithp.com>
Fri, 14 Sep 2012 18:13:02 +0000 (11:13 -0700)
And clean up the whole flight value reporting code base. It would be
nice to create a separate class to make this easier; at present
there's a bunch of customization embedded in how values are presented
in each tab.

Reported by: Bdale Garbee <bdale@gag.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
altosui/AltosAscent.java
altosui/AltosDescent.java
altosui/AltosKML.java
altosui/AltosLanded.java
altosui/AltosPad.java

index a158eb214d92ec33b4bec9c3597b5fb5f3c1630d..3fe517aa6bb08388aeef0874e11ff2577dac8e89 100644 (file)
@@ -51,6 +51,20 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay {
                }
 
                void show(AltosState state, int crc_errors) {}
+
+               void show(String s) {
+                       show();
+                       value.setText(s);
+               }
+               
+               void show(AltosUnits units, double v) {
+                       show(units.show(8, v));
+               }
+
+               void show(String format, double v) {
+                       show(String.format(format, v));
+               }
+
                void reset() {
                        value.setText("");
                        lights.set(false);
@@ -112,6 +126,19 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay {
                        value.setVisible(true);
                }
 
+               void show(String s) {
+                       show();
+                       value.setText(s);
+               }
+               
+               void show(AltosUnits units, double v) {
+                       show(units.show(8, v));
+               }
+
+               void show(String format, double v) {
+                       show(String.format(format, v));
+               }
+
                void hide() {
                        label.setVisible(false);
                        value.setVisible(false);
@@ -268,8 +295,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));
+                       show("%4.2f V", state.drogue_sense);
                        lights.set(state.drogue_sense > 3.2);
                }
                public Apogee (GridBagLayout layout, int y) {
@@ -281,8 +307,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));
+                       show("%4.2f V", state.main_sense);
                        lights.set(state.main_sense > 3.2);
                }
                public Main (GridBagLayout layout, int y) {
@@ -294,11 +319,10 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay {
 
        class Lat extends AscentValue {
                void show (AltosState state, int crc_errors) {
-                       show();
                        if (state.gps != null)
-                               value.setText(pos(state.gps.lat,"N", "S"));
+                               show(pos(state.gps.lat,"N", "S"));
                        else
-                               value.setText("???");
+                               show("???");
                }
                public Lat (GridBagLayout layout, int y) {
                        super (layout, y, "Latitude");
@@ -309,11 +333,10 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay {
 
        class Lon extends AscentValue {
                void show (AltosState state, int crc_errors) {
-                       show();
                        if (state.gps != null)
-                               value.setText(pos(state.gps.lon,"E", "W"));
+                               show(pos(state.gps.lon,"E", "W"));
                        else
-                               value.setText("???");
+                               show("???");
                }
                public Lon (GridBagLayout layout, int y) {
                        super (layout, y, "Longitude");
index 62258814552fb9123adaecea57ff94721c5c936a..73972b865dfcb6a66eb493441bc966e7019abaf7 100644 (file)
@@ -45,6 +45,15 @@ public class AltosDescent extends JComponent implements AltosFlightDisplay {
                        lights.setVisible(true);
                }
 
+               void show(String s) {
+                       show();
+                       value.setText(s);
+               }
+
+               void show(String format, double value) {
+                       show(String.format(format, value));
+               }
+
                void hide() {
                        label.setVisible(false);
                        value.setVisible(false);
@@ -119,16 +128,17 @@ public class AltosDescent extends JComponent implements AltosFlightDisplay {
                        value.setVisible(false);
                }
 
-               void show(AltosUnits units, double v) {
-                       value.setText(units.show(8, v));
+               void show(String v) {
+                       show();
+                       value.setText(v);
                }
 
-               void show(String format, double v) {
-                       value.setText(String.format(format, v));
+               void show(AltosUnits units, double v) {
+                       show(units.show(8, v));
                }
 
-               void show(String v) {
-                       value.setText(v);
+               void show(String format, double v) {
+                       show(String.format(format, v));
                }
 
                void set_font() {
@@ -307,8 +317,7 @@ public class AltosDescent extends JComponent implements AltosFlightDisplay {
 
        class Apogee extends DescentStatus {
                void show (AltosState state, int crc_errors) {
-                       show();
-                       value.setText(String.format("%4.2f V", state.drogue_sense));
+                       show("%4.2f V", state.drogue_sense);
                        lights.set(state.drogue_sense > 3.2);
                }
                public Apogee (GridBagLayout layout, int y) {
@@ -320,8 +329,7 @@ public class AltosDescent extends JComponent implements AltosFlightDisplay {
 
        class Main extends DescentStatus {
                void show (AltosState state, int crc_errors) {
-                       show();
-                       value.setText(String.format("%4.2f V", state.main_sense));
+                       show("%4.2f V", state.main_sense);
                        lights.set(state.main_sense > 3.2);
                }
                public Main (GridBagLayout layout, int y) {
index ff0734b8cbbe25a36c8edb40058b79809d13603e..6bac1d9c03eab2462c7b4ac9dedf51437c4e4abc 100644 (file)
@@ -131,8 +131,12 @@ public class AltosKML implements AltosWriter {
        public void write(AltosRecord record) {
                AltosGPS        gps = record.gps;
 
-               if (gps == null)
+               if (gps == null) {
+                       System.out.printf ("no gps\n");
                        return;
+               }
+
+               System.out.printf ("seen %x\n", record.seen);
                if ((record.seen & (AltosRecord.seen_flight)) == 0)
                        return;
                if ((record.seen & (AltosRecord.seen_gps_lat)) == 0)
index a47e1cbdc3c8a1e8b2551cb6a345c1f2e3b8bf15..68efae8d85ba6e6c1342d404983e9ea057440f3a 100644 (file)
@@ -46,6 +46,19 @@ public class AltosLanded extends JComponent implements AltosFlightDisplay, Actio
                        value.setVisible(true);
                }
 
+               void show(String s) {
+                       show();
+                       value.setText(s);
+               }
+               
+               void show(AltosUnits units, double v) {
+                       show(units.show(8, v));
+               }
+
+               void show(String format, double v) {
+                       show(String.format(format, v));
+               }
+
                public void set_font() {
                        label.setFont(Altos.label_font);
                        value.setFont(Altos.value_font);
@@ -56,12 +69,6 @@ public class AltosLanded extends JComponent implements AltosFlightDisplay, Actio
                        value.setVisible(false);
                }
 
-               void show(String format, double v) {
-                       show();
-                       value.setText(String.format(format, v));
-               }
-
-
                public LandedValue (GridBagLayout layout, int y, String text) {
                        GridBagConstraints      c = new GridBagConstraints();
                        c.weighty = 1;
@@ -102,11 +109,10 @@ public class AltosLanded extends JComponent implements AltosFlightDisplay, Actio
 
        class Lat extends LandedValue {
                void show (AltosState state, int crc_errors) {
-                       show();
                        if (state.gps != null && state.gps.connected)
-                               value.setText(pos(state.gps.lat,"N", "S"));
+                               show(pos(state.gps.lat,"N", "S"));
                        else
-                               value.setText("???");
+                               show("???");
                }
                public Lat (GridBagLayout layout, int y) {
                        super (layout, y, "Latitude");
@@ -119,9 +125,9 @@ public class AltosLanded extends JComponent implements AltosFlightDisplay, Actio
                void show (AltosState state, int crc_errors) {
                        show();
                        if (state.gps != null && state.gps.connected)
-                               value.setText(pos(state.gps.lon,"E", "W"));
+                               show(pos(state.gps.lon,"E", "W"));
                        else
-                               value.setText("???");
+                               show("???");
                }
                public Lon (GridBagLayout layout, int y) {
                        super (layout, y, "Longitude");
@@ -136,7 +142,7 @@ public class AltosLanded extends JComponent implements AltosFlightDisplay, Actio
                        if (state.from_pad != null)
                                show("%3.0f°", state.from_pad.bearing);
                        else
-                               value.setText("???");
+                               show("???");
                }
                public Bearing (GridBagLayout layout, int y) {
                        super (layout, y, "Bearing");
@@ -149,9 +155,9 @@ public class AltosLanded extends JComponent implements AltosFlightDisplay, Actio
                void show (AltosState state, int crc_errors) {
                        show();
                        if (state.from_pad != null)
-                               show("%6.0f m", state.from_pad.distance);
+                               show(AltosConvert.distance, state.from_pad.distance);
                        else
-                               value.setText("???");
+                               show("???");
                }
                public Distance (GridBagLayout layout, int y) {
                        super (layout, y, "Distance");
@@ -162,7 +168,7 @@ public class AltosLanded extends JComponent implements AltosFlightDisplay, Actio
 
        class Height extends LandedValue {
                void show (AltosState state, int crc_errors) {
-                       show("%6.0f m", state.max_height);
+                       show(AltosConvert.height, state.max_height);
                }
                public Height (GridBagLayout layout, int y) {
                        super (layout, y, "Maximum Height");
@@ -173,7 +179,7 @@ public class AltosLanded extends JComponent implements AltosFlightDisplay, Actio
 
        class Speed extends LandedValue {
                void show (AltosState state, int crc_errors) {
-                       show("%6.0f m/s", state.max_speed);
+                       show(AltosConvert.speed, state.max_speed);
                }
                public Speed (GridBagLayout layout, int y) {
                        super (layout, y, "Maximum Speed");
@@ -184,7 +190,7 @@ public class AltosLanded extends JComponent implements AltosFlightDisplay, Actio
 
        class Accel extends LandedValue {
                void show (AltosState state, int crc_errors) {
-                       show("%6.0f m/s²", state.max_acceleration);
+                       show(AltosConvert.accel, state.max_acceleration);
                }
                public Accel (GridBagLayout layout, int y) {
                        super (layout, y, "Maximum Acceleration");
index 0a3f3d65842520659be28026a07722e140868554..947c754080f7a7499f099c321fda0c3b918c9f16 100644 (file)
@@ -38,6 +38,7 @@ public class AltosPad extends JComponent implements AltosFlightDisplay {
                AltosLights     lights;
 
                void show(AltosState state, int crc_errors) {}
+
                void reset() {
                        value.setText("");
                        lights.set(false);
@@ -49,6 +50,19 @@ public class AltosPad extends JComponent implements AltosFlightDisplay {
                        lights.setVisible(true);
                }
 
+               void show(String s) {
+                       show();
+                       value.setText(s);
+               }
+
+               void show(String format, double value) {
+                       show(String.format(format, value));
+               }
+
+               void show(String format, int value) {
+                       show(String.format(format, value));
+               }
+
                public void hide() {
                        label.setVisible(false);
                        value.setVisible(false);
@@ -116,9 +130,23 @@ public class AltosPad extends JComponent implements AltosFlightDisplay {
                        value.setFont(Altos.value_font);
                }
 
+               void show(String s) {
+                       show();
+                       value.setText(s);
+               }
+
+               void show(AltosUnits units, double v) {
+                       show(units.show(8, v));
+               }
+
+               void show(String format, double v) {
+                       show(String.format(format, v));
+               }
+
                void reset() {
                        value.setText("");
                }
+
                public LaunchValue (GridBagLayout layout, int y, String text) {
                        GridBagConstraints      c = new GridBagConstraints();
                        c.insets = new Insets(Altos.tab_elt_pad, Altos.tab_elt_pad, Altos.tab_elt_pad, Altos.tab_elt_pad);
@@ -148,7 +176,7 @@ public class AltosPad extends JComponent implements AltosFlightDisplay {
 
        class Battery extends LaunchStatus {
                void show (AltosState state, int crc_errors) {
-                       value.setText(String.format("%4.2f V", state.battery));
+                       show("%4.2f V", state.battery);
                        lights.set(state.battery > 3.7);
                }
                public Battery (GridBagLayout layout, int y) {
@@ -160,8 +188,7 @@ public class AltosPad extends JComponent implements AltosFlightDisplay {
 
        class Apogee extends LaunchStatus {
                void show (AltosState state, int crc_errors) {
-                       show();
-                       value.setText(String.format("%4.2f V", state.drogue_sense));
+                       show("%4.2f V", state.drogue_sense);
                        lights.set(state.drogue_sense > 3.2);
                }
                public Apogee (GridBagLayout layout, int y) {
@@ -173,8 +200,7 @@ public class AltosPad extends JComponent implements AltosFlightDisplay {
 
        class Main extends LaunchStatus {
                void show (AltosState state, int crc_errors) {
-                       show();
-                       value.setText(String.format("%4.2f V", state.main_sense));
+                       show("%4.2f V", state.main_sense);
                        lights.set(state.main_sense > 3.2);
                }
                public Main (GridBagLayout layout, int y) {
@@ -186,17 +212,16 @@ public class AltosPad extends JComponent implements AltosFlightDisplay {
 
        class LoggingReady extends LaunchStatus {
                void show (AltosState state, int crc_errors) {
-                       show();
                        if (state.data.flight != 0) {
                                if (state.data.state <= Altos.ao_flight_pad)
-                                       value.setText("Ready to record");
+                                       show("Ready to record");
                                else if (state.data.state < Altos.ao_flight_landed)
-                                       value.setText("Recording data");
+                                       show("Recording data");
                                else
-                                       value.setText("Recorded data");
+                                       show("Recorded data");
                        }
                        else
-                               value.setText("Storage full");
+                               show("Storage full");
                        lights.set(state.data.flight != 0);
                }
                public LoggingReady (GridBagLayout layout, int y) {
@@ -208,8 +233,7 @@ 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));
+                       show("%4d sats", state.gps.nsat);
                        lights.set(state.gps.locked && state.gps.nsat >= 4);
                }
                public GPSLocked (GridBagLayout layout, int y) {
@@ -221,11 +245,10 @@ 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");
+                               show("Ready");
                        else
-                               value.setText(String.format("Waiting %d", state.gps_waiting));
+                               show("Waiting %d", state.gps_waiting);
                        lights.set(state.gps_ready);
                }
                public GPSReady (GridBagLayout layout, int y) {
@@ -248,8 +271,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"));
+                       show(pos(state.pad_lat,"N", "S"));
                }
                public PadLat (GridBagLayout layout, int y) {
                        super (layout, y, "Pad Latitude");
@@ -260,8 +282,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"));
+                       show(pos(state.pad_lon,"E", "W"));
                }
                public PadLon (GridBagLayout layout, int y) {
                        super (layout, y, "Pad Longitude");
@@ -272,7 +293,7 @@ public class AltosPad extends JComponent implements AltosFlightDisplay {
 
        class PadAlt extends LaunchValue {
                void show (AltosState state, int crc_errors) {
-                       value.setText(String.format("%4.0f m", state.pad_alt));
+                       show("%4.0f m", state.pad_alt);
                }
                public PadAlt (GridBagLayout layout, int y) {
                        super (layout, y, "Pad Altitude");