altosuilib: Add GPS DOP values to graph
[fw/altos] / altosuilib / AltosGraphDataPoint.java
index 446468d752994b4f61a9ba978ee739c346661ade..56dadb8b49170389975d6063c77ce4cccd2e3539 100644 (file)
@@ -15,9 +15,9 @@
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.altosuilib_2;
+package org.altusmetrum.altosuilib_3;
 
-import org.altusmetrum.altoslib_4.*;
+import org.altusmetrum.altoslib_5.*;
 
 public class AltosGraphDataPoint implements AltosUIDataPoint {
 
@@ -53,7 +53,10 @@ public class AltosGraphDataPoint implements AltosUIDataPoint {
        public static final int data_gps_course = 27;
        public static final int data_gps_ground_speed = 28;
        public static final int data_gps_climb_rate = 29;
-       public static final int data_ignitor_0 = 30;
+       public static final int data_gps_pdop = 30;
+       public static final int data_gps_hdop = 31;
+       public static final int data_gps_vdop = 32;
+       public static final int data_ignitor_0 = 33;
        public static final int data_ignitor_num = 32;
        public static final int data_ignitor_max = data_ignitor_0 + data_ignitor_num - 1;
        public static final int data_ignitor_fired_0 = data_ignitor_0 + data_ignitor_num;
@@ -101,8 +104,12 @@ public class AltosGraphDataPoint implements AltosUIDataPoint {
                                y = state.gps.nsat;
                        break;
                case data_gps_nsat_view:
-                       if (state.gps != null && state.gps.cc_gps_sat != null)
-                               y = state.gps.cc_gps_sat.length;
+                       if (state.gps != null) {
+                               if (state.gps.cc_gps_sat != null)
+                                       y = state.gps.cc_gps_sat.length;
+                               else
+                                       y = 0;
+                       }
                        break;
                case data_gps_altitude:
                        y = state.gps_altitude();
@@ -190,6 +197,24 @@ public class AltosGraphDataPoint implements AltosUIDataPoint {
                        else
                                y = AltosLib.MISSING;
                        break;
+               case data_gps_pdop:
+                       if (state.gps != null)
+                               y = state.gps.pdop;
+                       else
+                               y = AltosLib.MISSING;
+                       break;
+               case data_gps_hdop:
+                       if (state.gps != null)
+                               y = state.gps.hdop;
+                       else
+                               y = AltosLib.MISSING;
+                       break;
+               case data_gps_vdop:
+                       if (state.gps != null)
+                               y = state.gps.vdop;
+                       else
+                               y = AltosLib.MISSING;
+                       break;
                default:
                        if (data_ignitor_0 <= index && index <= data_ignitor_max) {
                                int ignitor = index - data_ignitor_0;