summaryrefslogtreecommitdiff
path: root/altoslib/AltosMag.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/AltosMag.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/AltosMag.java')
-rw-r--r--altoslib/AltosMag.java36
1 files changed, 21 insertions, 15 deletions
diff --git a/altoslib/AltosMag.java b/altoslib/AltosMag.java
index 690241f1..1fa8877b 100644
--- a/altoslib/AltosMag.java
+++ b/altoslib/AltosMag.java
@@ -20,19 +20,19 @@ package org.altusmetrum.altoslib_5;
import java.util.concurrent.*;
public class AltosMag implements Cloneable {
- public double x;
- public double y;
- public double z;
+ public int along;
+ public int across;
+ public int through;
public static double counts_per_gauss = 1090;
- public static double convert_gauss(int counts) {
- return (double) counts / counts_per_gauss;
+ public static double convert_gauss(double counts) {
+ return counts / counts_per_gauss;
}
public boolean parse_string(String line) {
// if (line.startsWith("Syntax error")) {
-// x = y = z = 0;
+// along = across = through = 0;
// return true;
// }
@@ -42,9 +42,9 @@ public class AltosMag implements Cloneable {
String[] items = line.split("\\s+");
if (items.length >= 6) {
- x = convert_gauss(Integer.parseInt(items[1]));
- y = convert_gauss(Integer.parseInt(items[3]));
- z = convert_gauss(Integer.parseInt(items[5]));
+ along = Integer.parseInt(items[1]);
+ across = Integer.parseInt(items[3]);
+ through = Integer.parseInt(items[5]);
}
return true;
}
@@ -52,16 +52,22 @@ public class AltosMag implements Cloneable {
public AltosMag clone() {
AltosMag n = new AltosMag();
- n.x = x;
- n.y = y;
- n.z = z;
+ n.along = along;
+ n.across = across;
+ n.through = through;
return n;
}
public AltosMag() {
- x = AltosLib.MISSING;
- y = AltosLib.MISSING;
- z = AltosLib.MISSING;
+ along = AltosLib.MISSING;
+ across = AltosLib.MISSING;
+ through = AltosLib.MISSING;
+ }
+
+ public AltosMag(int along, int across, int through) {
+ this.along = along;
+ this.across = across;
+ this.through = through;
}
static public void update_state(AltosState state, AltosLink link, AltosConfigData config_data) throws InterruptedException {