altoslib: Compute accelerometer speed from megametrum eeprom data
[fw/altos] / altoslib / AltosRecordMM.java
index 055cf85fb6e84a4a0d846a5763b91fe3fc0da882..63b37f82c2c953965e7610dff47d20f5e451dec2 100644 (file)
@@ -47,7 +47,7 @@ public class AltosRecordMM extends AltosRecord {
 
        public double raw_pressure() {
                if (pres != MISSING)
-                       return pres / 100.0;
+                       return pres;
                return MISSING;
        }
 
@@ -57,19 +57,19 @@ public class AltosRecordMM extends AltosRecord {
 
        public double ground_pressure() {
                if (ground_pres != MISSING)
-                       return ground_pres / 100.0;
+                       return ground_pres;
                return MISSING;
        }
 
        public double battery_voltage() {
                if (v_batt != MISSING)
-                       return 3.3 * adc(v_batt) * 27.0 / (15.0 + 27.0);
+                       return 3.3 * adc(v_batt) * (15.0 + 27.0) / 27.0;
                return MISSING;
        }
 
        static double pyro(int raw) {
                if (raw != MISSING)
-                       return 3.3 * adc(raw) * 27.0 / (100.0 + 27.0);
+                       return 3.3 * adc(raw) * (100.0 + 27.0) / 27.0;
                return MISSING;
        }
 
@@ -111,7 +111,11 @@ public class AltosRecordMM extends AltosRecord {
        }
 
        public double accel_speed() {
-               return speed;
+               if (speed != MISSING)
+                       return speed;
+               if (flight_vel == MISSING)
+                       return MISSING;
+               return flight_vel / (accel_counts_per_mss() * 100.0);
        }
 
        public void copy (AltosRecordMM old) {