altosui: Don't display missing sensor data
[fw/altos] / altosui / AltosInfoTable.java
index 579d720b0493b042dada3c48e9d18cf89feecae8..1dce6dafbc216493726469b081a4676360359e35 100644 (file)
@@ -20,7 +20,7 @@ package altosui;
 import java.awt.*;
 import javax.swing.*;
 import javax.swing.table.*;
-import org.altusmetrum.altoslib.*;
+import org.altusmetrum.altoslib_1.*;
 
 public class AltosInfoTable extends JTable {
        private AltosFlightInfoTableModel model;
@@ -85,15 +85,15 @@ public class AltosInfoTable extends JTable {
        }
 
        void info_add_deg(int col, String name, double v, int pos, int neg) {
-               //int   c = pos;
+               int     c = pos;
                if (v < 0) {
-                       //c = neg;
+                       c = neg;
                        v = -v;
                }
                double  deg = Math.floor(v);
                double  min = (v - deg) * 60;
 
-               info_add_row(col, name, String.format("%3.0f°%08.5f'", deg, min));
+               info_add_row(col, name, String.format("%c %3.0f°%08.5f'", c, deg, min));
        }
 
        void info_finish() {
@@ -108,16 +108,26 @@ public class AltosInfoTable extends JTable {
                if (state == null)
                        return;
                info_reset();
-               info_add_row(0, "Altitude", "%6.0f    m", state.altitude);
-               info_add_row(0, "Pad altitude", "%6.0f    m", state.ground_altitude);
-               info_add_row(0, "Height", "%6.0f    m", state.height);
-               info_add_row(0, "Max height", "%6.0f    m", state.max_height);
-               info_add_row(0, "Acceleration", "%8.1f  m/s²", state.acceleration);
-               info_add_row(0, "Max acceleration", "%8.1f  m/s²", state.max_acceleration);
-               info_add_row(0, "Speed", "%8.1f  m/s", state.speed());
-               info_add_row(0, "Max Speed", "%8.1f  m/s", state.max_accel_speed);
-               info_add_row(0, "Temperature", "%9.2f °C", state.temperature);
-               info_add_row(0, "Battery", "%9.2f V", state.battery);
+               if (state.altitude != AltosRecord.MISSING)
+                       info_add_row(0, "Altitude", "%6.0f    m", state.altitude);
+               if (state.ground_altitude != AltosRecord.MISSING)
+                       info_add_row(0, "Pad altitude", "%6.0f    m", state.ground_altitude);
+               if (state.height != AltosRecord.MISSING)
+                       info_add_row(0, "Height", "%6.0f    m", state.height);
+               if (state.max_height != AltosRecord.MISSING)
+                       info_add_row(0, "Max height", "%6.0f    m", state.max_height);
+               if (state.acceleration != AltosRecord.MISSING)
+                       info_add_row(0, "Acceleration", "%8.1f  m/s²", state.acceleration);
+               if (state.max_acceleration != AltosRecord.MISSING)
+                       info_add_row(0, "Max acceleration", "%8.1f  m/s²", state.max_acceleration);
+               if (state.speed() != AltosRecord.MISSING)
+                       info_add_row(0, "Speed", "%8.1f  m/s", state.speed());
+               if (state.max_speed() != AltosRecord.MISSING)
+                       info_add_row(0, "Max Speed", "%8.1f  m/s", state.max_accel_speed);
+               if (state.temperature != AltosRecord.MISSING)
+                       info_add_row(0, "Temperature", "%9.2f °C", state.temperature);
+               if (state.battery != AltosRecord.MISSING)
+                       info_add_row(0, "Battery", "%9.2f V", state.battery);
                if (state.drogue_sense != AltosRecord.MISSING)
                        info_add_row(0, "Drogue", "%9.2f V", state.drogue_sense);
                if (state.main_sense != AltosRecord.MISSING)