X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosui%2FAltosState.java;h=da498bc1d3b12f7a46709547249e07808cf1357a;hb=0669f0d74fc24c4f1925a45a9975b7a49a65b692;hp=378930bf4993856464edbf42ba02c7dd419c9d90;hpb=4962bcf1ce15c21a946ea718bd676b901f0f2bd0;p=fw%2Faltos diff --git a/altosui/AltosState.java b/altosui/AltosState.java index 378930bf..da498bc1 100644 --- a/altosui/AltosState.java +++ b/altosui/AltosState.java @@ -35,6 +35,7 @@ public class AltosState { int state; boolean landed; boolean ascent; /* going up? */ + boolean boost; /* under power */ double ground_altitude; double height; @@ -73,7 +74,6 @@ public class AltosState { int speak_tick; double speak_altitude; - void init (AltosRecord cur, AltosState prev_state) { int i; AltosRecord prev; @@ -135,7 +135,7 @@ public class AltosState { time = tick / 100.0; - if (state == Altos.ao_flight_pad || state == Altos.ao_flight_idle) { + if (cur.new_gps && (state == Altos.ao_flight_pad || state == Altos.ao_flight_idle)) { /* Track consecutive 'good' gps reports, waiting for 10 of them */ if (data.gps != null && data.gps.locked && data.gps.nsat >= 4) @@ -167,13 +167,14 @@ public class AltosState { ascent = (Altos.ao_flight_boost <= state && state <= Altos.ao_flight_coast); + boost = (Altos.ao_flight_boost == state); - /* Only look at accelerometer data on the way up */ - if (ascent && acceleration > max_acceleration) + /* Only look at accelerometer data under boost */ + if (boost && acceleration > max_acceleration) max_acceleration = acceleration; - if (ascent && speed > max_speed) + if (boost && speed > max_speed) max_speed = speed; - if (ascent && baro_speed > max_baro_speed) + if (boost && baro_speed > max_baro_speed) max_baro_speed = baro_speed; if (height > max_height)