X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosState.java;h=825306be998559373141bba449553019605fa18c;hb=e711c708b0d2c8d8c2d72e34a795ad8e9b5ab5de;hp=a3b9a8c07efafdb54f889094c09e1b7ba6a505f9;hpb=d5a557004c00d1ae25da04dc63c78b816562a236;p=fw%2Faltos diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java index a3b9a8c0..825306be 100644 --- a/altoslib/AltosState.java +++ b/altoslib/AltosState.java @@ -54,6 +54,7 @@ public class AltosState { public double max_baro_speed; public AltosGPS gps; + public int gps_sequence; public AltosIMU imu; public AltosMag mag; @@ -133,6 +134,7 @@ public class AltosState { npad = prev_state.npad; ngps = prev_state.ngps; gps = prev_state.gps; + gps_sequence = prev_state.gps_sequence; pad_lat = prev_state.pad_lat; pad_lon = prev_state.pad_lon; pad_alt = prev_state.pad_alt; @@ -187,6 +189,7 @@ public class AltosState { npad = 0; ngps = 0; gps = null; + gps_sequence = 0; baro_speed = AltosRecord.MISSING; accel_speed = AltosRecord.MISSING; pad_alt = AltosRecord.MISSING; @@ -199,7 +202,7 @@ public class AltosState { time = tick / 100.0; - if (cur.new_gps && (state < AltosLib.ao_flight_boost)) { + if (data.gps != null && data.gps_sequence != gps_sequence && (state < AltosLib.ao_flight_boost)) { /* Track consecutive 'good' gps reports, waiting for 10 of them */ if (data.gps != null && data.gps.locked && data.gps.nsat >= 4) @@ -226,7 +229,7 @@ public class AltosState { pad_alt = ground_altitude; } - data.new_gps = false; + gps_sequence = data.gps_sequence; gps_waiting = MIN_PAD_SAMPLES - npad; if (gps_waiting < 0) @@ -252,8 +255,7 @@ public class AltosState { range = -1; gps_height = 0; if (data.gps != null) { - if (gps == null || !gps.locked || data.gps.locked) - gps = data.gps; + gps = data.gps; if (ngps > 0 && gps.locked) { double h = height;