altoslib: Add Ms5607 constructor that just takes config_data
[fw/altos] / altoslib / AltosEepromFireTwo.java
index dd510280578319a0ab1511edb4f94adec1a0419f..16019c8c280320c10cd86c84b7dada7fd71efa9a 100644 (file)
@@ -49,13 +49,11 @@ public class AltosEepromFireTwo extends AltosEeprom {
        private static final double r_below = 10000.0;
        private static final double v_adc = 3.3;
 
-       private static double
-       firetwo_adc(int raw) {
+       private static double firetwo_adc(int raw) {
                return raw / 4095.0;
        }
 
-       private static double
-       adc_to_pa(int adc) {
+       public static double adc_to_pa(int adc) {
 
                /* raw adc to processor voltage, then back through the
                 * voltage divider to the sensor voltage
@@ -71,6 +69,13 @@ public class AltosEepromFireTwo extends AltosEeprom {
                return AltosConvert.psi_to_pa(psi);
        }
 
+       public static double adc_to_n(int adc) {
+               double v = firetwo_adc(adc);
+
+               /* this is a total guess */
+               return AltosConvert.lb_to_n(v * 298 * 9.807);
+       }
+
        public void update_state(AltosState state) {
                super.update_state(state);
 
@@ -78,12 +83,14 @@ public class AltosEepromFireTwo extends AltosEeprom {
                case AltosLib.AO_LOG_FLIGHT:
                        state.set_flight(flight());
                        state.set_ground_pressure(adc_to_pa(idle_pres()));
+                       state.set_accel_g(0, -1);
                        break;
                case AltosLib.AO_LOG_STATE:
                        state.set_state(state());
                        break;
                case AltosLib.AO_LOG_SENSOR:
                        state.set_pressure(adc_to_pa(pres()));
+                       state.set_accel(firetwo_adc(thrust()) * 100);
                        break;
                }
        }