Merge remote-tracking branch 'mjb/altoslib_mjb'
[fw/altos] / altoslib / AltosState.java
index 68c7611f2adab67777f93eb07b18bff56b6e13cb..2806812e4fc9f992b2fd7447eb2913eedf6b1670 100644 (file)
@@ -38,6 +38,7 @@ public class AltosState {
        public boolean boost;   /* under power */
 
        public double   ground_altitude;
+       public double   altitude;
        public double   height;
        public double   speed;
        public double   acceleration;
@@ -76,12 +77,13 @@ public class AltosState {
        public double   speak_altitude;
 
        public void init (AltosRecord cur, AltosState prev_state) {
-               int             i;
-               AltosRecord prev;
+               //int           i;
+               //AltosRecord prev;
 
                data = cur;
 
                ground_altitude = data.ground_altitude();
+               altitude = data.raw_altitude();
                height = data.filtered_height();
 
                report_time = System.currentTimeMillis();
@@ -160,7 +162,8 @@ public class AltosState {
                                }
                                ngps++;
                        }
-               }
+               } else
+                       pad_alt = ground_altitude;
 
                gps_waiting = MIN_PAD_SAMPLES - npad;
                if (gps_waiting < 0)
@@ -173,14 +176,14 @@ public class AltosState {
                boost = (AltosLib.ao_flight_boost == state);
 
                /* Only look at accelerometer data under boost */
-               if (boost && acceleration > max_acceleration)
+               if (boost && acceleration > max_acceleration && acceleration != AltosRecord.MISSING)
                        max_acceleration = acceleration;
-               if (boost && speed > max_speed)
+               if (boost && speed > max_speed && speed != AltosRecord.MISSING)
                        max_speed = speed;
-               if (boost && baro_speed > max_baro_speed)
+               if (boost && baro_speed > max_baro_speed && baro_speed != AltosRecord.MISSING)
                        max_baro_speed = baro_speed;
 
-               if (height > max_height)
+               if (height > max_height && height != AltosRecord.MISSING)
                        max_height = height;
                if (data.gps != null) {
                        if (gps == null || !gps.locked || data.gps.locked)