summaryrefslogtreecommitdiff
path: root/altoslib/AltosConfigData.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/AltosConfigData.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/AltosConfigData.java')
-rw-r--r--altoslib/AltosConfigData.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java
index fc1f2442..a9e863c7 100644
--- a/altoslib/AltosConfigData.java
+++ b/altoslib/AltosConfigData.java
@@ -90,6 +90,9 @@ public class AltosConfigData implements Iterable<String> {
public int tracker_motion;
public int tracker_interval;
+ /* HAS_GYRO */
+ public int accel_zero_along, accel_zero_across, accel_zero_through;
+
public static String get_string(String line, String label) throws ParseException {
if (line.startsWith(label)) {
String quoted = line.substring(label.length()).trim();
@@ -266,6 +269,10 @@ public class AltosConfigData implements Iterable<String> {
storage_size = -1;
storage_erase_unit = -1;
stored_flight = 0;
+
+ accel_zero_along = -1;
+ accel_zero_across = -1;
+ accel_zero_through = -1;
}
public void parse_line(String line) {
@@ -361,6 +368,18 @@ public class AltosConfigData implements Iterable<String> {
/* Log listing replies */
try { get_int(line, "flight"); stored_flight++; } catch (Exception e) {}
+
+ /* HAS_GYRO */
+ try {
+ if (line.startsWith("IMU call along")) {
+ String[] bits = line.split("\\s+");
+ if (bits.length >= 8) {
+ accel_zero_along = Integer.parseInt(bits[3]);
+ accel_zero_across = Integer.parseInt(bits[5]);
+ accel_zero_through = Integer.parseInt(bits[7]);
+ }
+ }
+ } catch (Exception e) {}
}
public AltosConfigData() {
@@ -637,6 +656,9 @@ public class AltosConfigData implements Iterable<String> {
if (tracker_motion >= 0 && tracker_interval >= 0)
link.printf("c t %d %d\n", tracker_motion, tracker_interval);
+ /* HAS_GYRO */
+ /* UI doesn't support accel cal */
+
link.printf("c w\n");
link.flush_output();
}