altoslib: Add ADXL375 support and EasyMega v2.0 support
[fw/altos] / altoslib / AltosCalData.java
index 03e2cbd72e17793aabf277fbc408188940b73fae..c3d79250a6e54cb23e25a2fb870e988f16dccce5 100644 (file)
@@ -12,7 +12,7 @@
  * General Public License for more details.
  */
 
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_13;
 
 /*
  * Calibration and other data needed to construct 'real' values from various data
@@ -133,6 +133,18 @@ public class AltosCalData {
                mma655x_inverted = inverted;
        }
 
+       public boolean adxl375_inverted = false;
+
+       public void set_adxl375_inverted(boolean inverted) {
+               adxl375_inverted = inverted;
+       }
+
+       public int adxl375_axis = AltosLib.MISSING;
+
+       public void set_adxl375_axis(int axis) {
+               adxl375_axis = axis;
+       }
+
        public int pad_orientation = AltosLib.MISSING;
 
        public void set_pad_orientation(int orientation) {
@@ -142,7 +154,11 @@ public class AltosCalData {
 
        /* Compute acceleration */
        public double acceleration(double sensor) {
-               return AltosConvert.acceleration_from_sensor(sensor, accel_plus_g, accel_minus_g, ground_accel);
+               double accel;
+               accel = AltosConvert.acceleration_from_sensor(sensor, accel_plus_g, accel_minus_g, ground_accel);
+               System.out.printf("acceleration %g (+ %g - %g g %g) -> %g\n",
+                                 sensor, accel_plus_g, accel_minus_g, ground_accel, accel);
+               return accel;
        }
 
        public AltosMs5607      ms5607 = null;
@@ -397,13 +413,21 @@ public class AltosCalData {
                set_flight_params(config_data.apogee_delay / ticks_per_sec, config_data.apogee_lockout / ticks_per_sec);
                set_pad_orientation(config_data.pad_orientation);
                set_product(config_data.product);
-               set_accel_plus_minus(config_data.accel_cal_plus, config_data.accel_cal_minus);
+               set_accel_plus_minus(config_data.accel_cal_plus(config_data.pad_orientation), config_data.accel_cal_minus(config_data.pad_orientation));
                set_accel_zero(config_data.accel_zero_along, config_data.accel_zero_across, config_data.accel_zero_through);
                set_ms5607(config_data.ms5607);
                try {
                        set_mma655x_inverted(config_data.mma655x_inverted());
                } catch (AltosUnknownProduct up) {
                }
+               try {
+                       set_adxl375_inverted(config_data.adxl375_inverted());
+               } catch (AltosUnknownProduct up) {
+               }
+               try {
+                       set_adxl375_axis(config_data.adxl375_axis());
+               } catch (AltosUnknownProduct up) {
+               }
                set_pad_orientation(config_data.pad_orientation);
        }
 }