altoslib: Add support for TeleMega v4
[fw/altos] / altoslib / AltosState.java
index 54c7009451232bd43651b4028d31450622474c27..b3bcff925cfe9ed390cbb0ae46ad4d0ebccfed0d 100644 (file)
@@ -20,7 +20,7 @@
  * Track flight state from telemetry or eeprom data stream
  */
 
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
 
 public class AltosState extends AltosDataListener {
 
@@ -842,6 +842,8 @@ public class AltosState extends AltosDataListener {
                                                        gps.climb_rate * gps.climb_rate), time);
                        if (gps.course != AltosLib.MISSING)
                                gps_course.set(gps.course, time);
+               } else if (state() == AltosLib.ao_flight_pad || state() == AltosLib.ao_flight_stateless) {
+                       set_npad(0);
                }
                if (gps.lat != 0 && gps.lon != 0 &&
                    pad_lat != AltosLib.MISSING &&
@@ -887,6 +889,7 @@ public class AltosState extends AltosDataListener {
        }
 
        public void set_gps(AltosGPS gps) {
+               super.set_gps(gps);
                if (gps != null) {
                        this.gps = gps;
                        update_gps();
@@ -900,9 +903,9 @@ public class AltosState extends AltosDataListener {
 
        void update_pad_rotation() {
                if (cal_data().pad_orientation != AltosLib.MISSING && accel_ground_along != AltosLib.MISSING) {
-                       rotation = new AltosRotation(AltosIMU.convert_accel(accel_ground_across - cal_data().accel_zero_across),
-                                                    AltosIMU.convert_accel(accel_ground_through - cal_data().accel_zero_through),
-                                                    AltosIMU.convert_accel(accel_ground_along - cal_data().accel_zero_along),
+                       rotation = new AltosRotation(accel_ground_across,
+                                                    accel_ground_through,
+                                                    accel_ground_along,
                                                     cal_data().pad_orientation);
                        orient.set_computed(rotation.tilt(), time);
                }