]> git.gag.com Git - fw/altos/commitdiff
altoslib: Only set ground altitude in Pad mode
authorKeith Packard <keithp@keithp.com>
Wed, 9 Oct 2024 17:51:34 +0000 (10:51 -0700)
committerKeith Packard <keithp@keithp.com>
Wed, 9 Oct 2024 17:51:34 +0000 (10:51 -0700)
This avoids setting the ground altitude from an unknown location.

Signed-off-by: Keith Packard <keithp@keithp.com>
altoslib/AltosState.java

index 28fdbb244c3afffd6da9e530da4c84fce71bafec..a531c1baf9f63e50ad737eecfeff2dc20c678984 100644 (file)
@@ -820,19 +820,18 @@ public class AltosState extends AltosDataListener {
 
                if (gps.locked && gps.nsat >= 4) {
                        /* Track consecutive 'good' gps reports, waiting for 10 of them */
-                       if (state() == AltosLib.ao_flight_pad || state() == AltosLib.ao_flight_stateless) {
+                       if (state() == AltosLib.ao_flight_pad) {
                                set_npad(npad+1);
-                               if (pad_lat != AltosLib.MISSING && (npad < 10 || state() == AltosLib.ao_flight_pad)) {
+                               if (pad_lat != AltosLib.MISSING) {
                                        pad_lat = (pad_lat * 31 + gps.lat) / 32;
                                        pad_lon = (pad_lon * 31 + gps.lon) / 32;
                                        gps_ground_altitude.set_filtered(gps.alt, time);
+                               } else {
+                                       pad_lat = gps.lat;
+                                       pad_lon = gps.lon;
+                                       gps_ground_altitude.set(gps.alt, time);
                                }
                        }
-                       if (pad_lat == AltosLib.MISSING) {
-                               pad_lat = gps.lat;
-                               pad_lon = gps.lon;
-                               gps_ground_altitude.set(gps.alt, time);
-                       }
                        gps_altitude.set(gps.alt, time);
                        if (gps.climb_rate != AltosLib.MISSING)
                                gps_ascent_rate.set(gps.climb_rate, time);