From: Keith Packard Date: Wed, 9 Oct 2024 17:51:34 +0000 (-0700) Subject: altoslib: Only set ground altitude in Pad mode X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=f6229e2693192c938f74bbc58c0b021496dc1007;p=fw%2Faltos altoslib: Only set ground altitude in Pad mode This avoids setting the ground altitude from an unknown location. Signed-off-by: Keith Packard --- diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java index 28fdbb24..a531c1ba 100644 --- a/altoslib/AltosState.java +++ b/altoslib/AltosState.java @@ -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);