altoslib: Add 'motor_pressure' data value
[fw/altos] / altoslib / AltosConvert.java
index ce1b8f7f14f7733a29722e6eedd62090733ed63f..e51e4f3059f942893a1fc30d331fbdcf16ab5dba 100644 (file)
@@ -19,7 +19,7 @@
 /*
  * Sensor data conversion functions
  */
-package org.altusmetrum.altoslib_13;
+package org.altusmetrum.altoslib_14;
 
 import java.util.*;
 
@@ -276,6 +276,10 @@ public class AltosConvert {
                return 3.3 * mega_adc(raw) * (5.1 + 10.0) / 10.0;
        }
 
+       static double easy_timer_voltage(int sensor) {
+               return 3.3 * mega_adc(sensor) * (100.0 + 27.0) / 27.0;
+       }
+
        static double easy_mini_2_adc(int raw) {
                return raw / 4095.0;
        }
@@ -307,6 +311,25 @@ public class AltosConvert {
                return easy_mini_2_adc(sensor) * supply * 127/27;
        }
 
+       static double motor_pressure(double voltage) {
+               double  base = 0.5;
+               double  max = 4.5;
+               double  full_scale_pressure = psi_to_pa(1600);
+
+               if (voltage < base)
+                       voltage = base;
+               if (voltage > max)
+                       voltage = max;
+               return (voltage - base) / (max - base) * full_scale_pressure;
+       }
+
+       static double easy_motor_2_motor_pressure(int sensor) {
+               double  supply = 3.3;
+               double  voltage = easy_mini_2_adc(sensor) * supply * 15.6 / 10.0;
+
+               return motor_pressure(voltage);
+       }
+
        public static double radio_to_frequency(int freq, int setting, int cal, int channel) {
                double  f;
 
@@ -473,7 +496,7 @@ public class AltosConvert {
 
        public static AltosPyroName pyro_name = new AltosPyroName();
 
-       public static AltosUnits magnetic_field = null;
+       public static AltosUnits magnetic_field = new AltosGauss();
 
        public static String show_gs(String format, double a) {
                a = meters_to_g(a);