altoslib: Recover battery voltage from TeleGPS configuration packet
[fw/altos] / altoslib / AltosState.java
index 1162e5221be70636fc7faa7d2d8373b4b0c3a21c..7871da77b3a73a3bc60edefaa68a6adf1b58c88a 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) {
@@ -952,11 +959,14 @@ public class AltosState implements Cloneable {
                this.device_type = device_type;
        }
 
-       public void set_config(int major, int minor, int apogee_delay, int main_deploy, int flight_log_max) {
-               config_major = major;
-               config_minor = minor;
+       public void set_flight_params(int apogee_delay, int main_deploy) {
                this.apogee_delay = apogee_delay;
                this.main_deploy = main_deploy;
+       }
+
+       public void set_config(int major, int minor, int flight_log_max) {
+               config_major = major;
+               config_minor = minor;
                this.flight_log_max = flight_log_max;
        }