altoslib: Use common constants for flash action messages
[fw/altos] / altoslib / AltosFlightStats.java
index ea1a9675aba8c818c814481bb45e6e545568cae0..7c8ed85e589d7f89623c116b7f32d2830d0d070e 100644 (file)
@@ -16,7 +16,7 @@
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
 
 import java.io.*;
 
@@ -27,6 +27,8 @@ public class AltosFlightStats {
        public double           max_acceleration;
        public double[]         state_speed = new double[AltosLib.ao_flight_invalid + 1];
        public double[]         state_enter_speed = new double[AltosLib.ao_flight_invalid + 1];
+       public double[]         state_enter_height = new double[AltosLib.ao_flight_invalid + 1];
+       public double[]         state_enter_gps_height = new double[AltosLib.ao_flight_invalid + 1];
        public double[]         state_accel = new double[AltosLib.ao_flight_invalid + 1];
        public double[]         state_time = new double[AltosLib.ao_flight_invalid + 1];
        public String           product;
@@ -134,6 +136,11 @@ public class AltosFlightStats {
                if (0 <= state && state <= AltosLib.ao_flight_invalid && delta_time > 0) {
                        if (state_enter_speed[state] == AltosLib.MISSING)
                                state_enter_speed[state] = series.speed_series.value(start_time);
+                       if (state_enter_height[state] == AltosLib.MISSING)
+                               state_enter_height[state] = series.height_series.value(start_time);
+                       if (state_enter_gps_height[state] == AltosLib.MISSING)
+                               if (series.gps_height != null)
+                                       state_enter_gps_height[state] = series.gps_height.value(start_time);
                        speeds[state].value += series.speed_series.average(start_time, end_time) * delta_time;
                        speeds[state].time += delta_time;
                        accels[state].value += series.accel_series.average(start_time, end_time) * delta_time;
@@ -259,8 +266,8 @@ public class AltosFlightStats {
                        }
                }
 
-               max_height = AltosLib.MISSING;
-               if (series.height_series != null)
+               max_height = series.max_height;
+               if (max_height == AltosLib.MISSING && series.height_series != null)
                        max_height = series.height_series.max().value;
                max_gps_height = AltosLib.MISSING;
                if (series.gps_height != null) {