altoslib: Parse TeleGPS state value from GPS telemetry packet
[fw/altos] / altoslib / AltosGPS.java
index f5162225ac200c08edb3359f8865545e5024075d..f28108334ade41b1f9400e3a61c31557c1037524 100644 (file)
@@ -15,7 +15,7 @@
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.altoslib_2;
+package org.altusmetrum.altoslib_4;
 
 import java.text.*;
 import java.util.concurrent.*;
@@ -45,6 +45,10 @@ public class AltosGPS implements Cloneable {
        public int      h_error;        /* m */
        public int      v_error;        /* m */
 
+       public int      state;          /* for TeleGPS */
+
+       static final int AO_GPS_STATE_VALID = 0x80;
+
        public AltosGPSSat[] cc_gps_sat;        /* tracking data */
 
        public void ParseGPSDate(String date) throws ParseException {
@@ -298,6 +302,7 @@ public class AltosGPS implements Cloneable {
                g.hdop = hdop;          /* unitless? */
                g.h_error = h_error;    /* m */
                g.v_error = v_error;    /* m */
+               g.state = state;
 
                if (cc_gps_sat != null) {
                        g.cc_gps_sat = new AltosGPSSat[cc_gps_sat.length];
@@ -330,6 +335,7 @@ public class AltosGPS implements Cloneable {
                        hdop = old.hdop;                /* unitless? */
                        h_error = old.h_error;  /* m */
                        v_error = old.v_error;  /* m */
+                       state = old.state;
 
                        if (old.cc_gps_sat != null) {
                                cc_gps_sat = new AltosGPSSat[old.cc_gps_sat.length];
@@ -345,6 +351,7 @@ public class AltosGPS implements Cloneable {
                        alt = AltosLib.MISSING;
                        ClearGPSTime();
                        cc_gps_sat = null;
+                       state = 0;
                }
        }