X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosui%2FAltosState.java;h=d374aed8e5d410e32fb34c30c3f291f8ea8e81f9;hp=ec499d5acf2110e776e2096decf83e8b088a69e8;hb=11a2bb8e28df7ed87542f2ee726f877971f5d52a;hpb=f01096c4b42f9a4720ed0414826c2a283a992545 diff --git a/altosui/AltosState.java b/altosui/AltosState.java index ec499d5a..d374aed8 100644 --- a/altosui/AltosState.java +++ b/altosui/AltosState.java @@ -79,7 +79,7 @@ public class AltosState { data = cur; ground_altitude = data.ground_altitude(); - height = data.filtered_altitude() - ground_altitude; + height = data.filtered_height(); report_time = System.currentTimeMillis(); @@ -114,10 +114,14 @@ public class AltosState { /* compute barometric speed */ double height_change = height - prev_state.height; - if (time_change > 0) - baro_speed = (prev_state.baro_speed * 3 + (height_change / time_change)) / 4.0; - else - baro_speed = prev_state.baro_speed; + if (data.speed != AltosRecord.MISSING) + baro_speed = data.speed; + else { + if (time_change > 0) + baro_speed = (prev_state.baro_speed * 3 + (height_change / time_change)) / 4.0; + else + baro_speed = prev_state.baro_speed; + } } else { npad = 0; ngps = 0; @@ -126,7 +130,7 @@ public class AltosState { time_change = 0; } - if (state == Altos.ao_flight_pad) { + if (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)