altoslib: Parse TeleGPS state value from GPS telemetry packet
[fw/altos] / altoslib / AltosState.java
index 1162e5221be70636fc7faa7d2d8373b4b0c3a21c..ef3a09766adc68e69c60e09b725f2358aa56ffbc 100644 (file)
@@ -713,6 +713,7 @@ public class AltosState implements Cloneable {
                gps_ground_altitude = new AltosGpsGroundAltitude();
                gps_ground_speed = new AltosValue();
                gps_ascent_rate = new AltosValue();
+               gps_course = new AltosValue();
 
                speak_tick = AltosLib.MISSING;
                speak_altitude = AltosLib.MISSING;
@@ -842,6 +843,9 @@ public class AltosState implements Cloneable {
 
                gps_altitude.copy(old.gps_altitude);
                gps_ground_altitude.copy(old.gps_ground_altitude);
+               gps_ground_speed.copy(old.gps_ground_speed);
+               gps_ascent_rate.copy(old.gps_ascent_rate);
+               gps_course.copy(old.gps_course);
 
                pad_lat = old.pad_lat;
                pad_lon = old.pad_lon;
@@ -914,6 +918,9 @@ public class AltosState implements Cloneable {
                        elevation = from_pad.elevation;
                        range = from_pad.range;
                }
+
+               if ((gps.state & AltosGPS.AO_GPS_STATE_VALID) != 0)
+                       set_state (gps.state & ~(AltosGPS.AO_GPS_STATE_VALID));
        }
 
        public void set_tick(int new_tick) {