altosdroid: Fix offline map messages to match new meanings
[fw/altos] / altoslib / AltosConvert.java
index 5b3ff39187d3a8452e149287361aaa7eb83d7ac4..d246018700bfd1d0746330f6724e27ab86f208c9 100644 (file)
@@ -19,7 +19,7 @@
 /*
  * Sensor data conversion functions
  */
-package org.altusmetrum.altoslib_11;
+package org.altusmetrum.altoslib_13;
 
 import java.util.*;
 
@@ -184,6 +184,18 @@ public class AltosConvert {
                return altitude;
        }
 
+       public static double degrees_to_radians(double degrees) {
+               if (degrees == AltosLib.MISSING)
+                       return AltosLib.MISSING;
+               return degrees * (Math.PI / 180.0);
+       }
+
+       public static double radians_to_degrees(double radians) {
+               if (radians == AltosLib.MISSING)
+                       return AltosLib.MISSING;
+               return radians * (180.0 / Math.PI);
+       }
+
        public static double
        cc_battery_to_voltage(double battery)
        {
@@ -258,7 +270,15 @@ public class AltosConvert {
                return 3.3 * mega_adc(raw) * (5.1 + 10.0) / 10.0;
        }
 
-       static double easy_mini_voltage(int sensor, int serial) {
+       static double easy_mini_2_adc(int raw) {
+               return raw / 4095.0;
+       }
+
+       static double easy_mini_1_adc(int raw) {
+               return raw / 32767.0;
+       }
+
+       static double easy_mini_1_voltage(int sensor, int serial) {
                double  supply = 3.3;
                double  diode_offset = 0.0;
 
@@ -272,7 +292,13 @@ public class AltosConvert {
                if (serial < 1665)
                        diode_offset = 0.150;
 
-               return sensor / 32767.0 * supply * 127/27 + diode_offset;
+               return easy_mini_1_adc(sensor) * supply * 127/27 + diode_offset;
+       }
+
+       static double easy_mini_2_voltage(int sensor) {
+               double  supply = 3.3;
+
+               return easy_mini_2_adc(sensor) * supply * 127/27;
        }
 
        public static double radio_to_frequency(int freq, int setting, int cal, int channel) {
@@ -392,6 +418,7 @@ public class AltosConvert {
        }
 
        public static double acceleration_from_sensor(double sensor, double plus_g, double minus_g, double ground) {
+
                if (sensor == AltosLib.MISSING)
                        return AltosLib.MISSING;
 
@@ -403,6 +430,10 @@ public class AltosConvert {
 
                double counts_per_g = (plus_g - minus_g) / 2.0;
                double counts_per_mss = counts_per_g / gravity;
+
+               if (counts_per_mss == 0)
+                       return AltosLib.MISSING;
+
                return (sensor - ground) / counts_per_mss;
        }