summaryrefslogtreecommitdiff
path: root/altoslib/AltosEepromHeader.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2014-10-04 00:11:13 -0700
committerKeith Packard <keithp@keithp.com>2014-10-04 00:11:13 -0700
commit00ae706dab6e8fddef4c5730a17c433a022228b7 (patch)
treefae976ad891d1776f6e52c078d9eceb35d96a845 /altoslib/AltosEepromHeader.java
parenta757fd5af53f5721a949181372548afa4757d6c9 (diff)
altoslib: Compute tilt angle from eeprom data
This copies the computation of tilt angle from the firmware so that post-flight analysis can also show the data. This change also renames all of the imu values to make them easier to understand: accel gyro axis along roll length of the board across pitch across the board through yaw through the board. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosEepromHeader.java')
-rw-r--r--altoslib/AltosEepromHeader.java22
1 files changed, 21 insertions, 1 deletions
diff --git a/altoslib/AltosEepromHeader.java b/altoslib/AltosEepromHeader.java
index 71030655..0414c37e 100644
--- a/altoslib/AltosEepromHeader.java
+++ b/altoslib/AltosEepromHeader.java
@@ -25,7 +25,7 @@ public class AltosEepromHeader extends AltosEeprom {
public int cmd;
public String data;
- public int config_a, config_b;
+ public int config_a, config_b, config_c;
public boolean last;
public boolean valid;
@@ -93,6 +93,9 @@ public class AltosEepromHeader extends AltosEeprom {
state.make_baro();
state.baro.crc = config_a;
break;
+ case AltosLib.AO_LOG_IMU_CAL:
+ state.set_accel_zero(config_a, config_b, config_c);
+ break;
case AltosLib.AO_LOG_SOFTWARE_VERSION:
state.set_firmware_version(data);
break;
@@ -100,7 +103,10 @@ public class AltosEepromHeader extends AltosEeprom {
case AltosLib.AO_LOG_APOGEE_LOCKOUT:
case AltosLib.AO_LOG_RADIO_RATE:
case AltosLib.AO_LOG_IGNITE_MODE:
+ break;
case AltosLib.AO_LOG_PAD_ORIENTATION:
+ state.set_pad_orientation(config_a);
+ break;
case AltosLib.AO_LOG_RADIO_ENABLE:
case AltosLib.AO_LOG_AES_KEY:
case AltosLib.AO_LOG_APRS:
@@ -177,11 +183,17 @@ public class AltosEepromHeader extends AltosEeprom {
case AltosLib.AO_LOG_BARO_CRC:
out.printf ("# Baro crc: %d\n", config_a);
break;
+ case AltosLib.AO_LOG_IMU_CAL:
+ out.printf ("# IMU cal: %d %d %d\n", config_a, config_b, config_c);
+ break;
case AltosLib.AO_LOG_FREQUENCY:
case AltosLib.AO_LOG_APOGEE_LOCKOUT:
case AltosLib.AO_LOG_RADIO_RATE:
case AltosLib.AO_LOG_IGNITE_MODE:
+ break;
case AltosLib.AO_LOG_PAD_ORIENTATION:
+ out.printf("# Pad orientation: %d\n", config_a);
+ break;
case AltosLib.AO_LOG_RADIO_ENABLE:
case AltosLib.AO_LOG_AES_KEY:
case AltosLib.AO_LOG_APRS:
@@ -273,6 +285,14 @@ public class AltosEepromHeader extends AltosEeprom {
cmd = AltosLib.AO_LOG_INVALID;
data = tokens[2];
}
+ } else if (tokens[0].equals("IMU") && tokens[1].equals("cal")) {
+ cmd = AltosLib.AO_LOG_IMU_CAL;
+ config_a = Integer.parseInt(tokens[3]);
+ config_b = Integer.parseInt(tokens[5]);
+ config_c = Integer.parseInt(tokens[7]);
+ } else if (tokens[0].equals("Pad") && tokens[1].equals("orientation:")) {
+ cmd = AltosLib.AO_LOG_PAD_ORIENTATION;
+ config_a = Integer.parseInt(tokens[2]);
} else
valid = false;
} catch (Exception e) {