summaryrefslogtreecommitdiff
path: root/altoslib/AltosIMU.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-06-15 22:40:27 -0700
committerKeith Packard <keithp@keithp.com>2016-06-15 22:40:27 -0700
commit1b5ea911049a8afae6af475a4a2bf62a6e3aa57b (patch)
tree7f896e587da5e7911b7b5a42aade1b7692670200 /altoslib/AltosIMU.java
parent1de8b6c340cec0b5a327392686c5a4e00f201e98 (diff)
altoslib: Switch preserved state format to JSON
This is much easier to debug than the icky strings with backslashes everywhere. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosIMU.java')
-rw-r--r--altoslib/AltosIMU.java33
1 files changed, 32 insertions, 1 deletions
diff --git a/altoslib/AltosIMU.java b/altoslib/AltosIMU.java
index df6c4ed3..ecc02f15 100644
--- a/altoslib/AltosIMU.java
+++ b/altoslib/AltosIMU.java
@@ -20,7 +20,7 @@ package org.altusmetrum.altoslib_11;
import java.util.concurrent.*;
import java.io.*;
-public class AltosIMU implements Cloneable, AltosHashable {
+public class AltosIMU implements Cloneable, AltosHashable, AltosJsonable {
public int accel_along;
public int accel_across;
public int accel_through;
@@ -128,12 +128,30 @@ public class AltosIMU implements Cloneable, AltosHashable {
gyro_yaw = h.getInt("gyro_yaw", gyro_yaw);
}
+ public AltosIMU (AltosJson j) {
+ this();
+
+ accel_along = j.get_int("accel_along", accel_along);
+ accel_across = j.get_int("accel_across", accel_across);
+ accel_through = j.get_int("accel_through", accel_through);
+
+ gyro_roll = j.get_int("gyro_roll", gyro_roll);
+ gyro_pitch = j.get_int("gyro_pitch", gyro_pitch);
+ gyro_yaw = j.get_int("gyro_yaw", gyro_yaw);
+ }
+
static public AltosIMU fromHashSet(AltosHashSet h, AltosIMU def) {
if (h == null)
return def;
return new AltosIMU(h);
}
+ static public AltosIMU fromJson(AltosJson j, AltosIMU def) {
+ if (j == null)
+ return def;
+ return new AltosIMU(j);
+ }
+
public AltosHashSet hashSet() {
AltosHashSet h = new AltosHashSet();
@@ -146,4 +164,17 @@ public class AltosIMU implements Cloneable, AltosHashable {
h.putInt("gyro_yaw", gyro_yaw);
return h;
}
+
+ public AltosJson json() {
+ AltosJson j = new AltosJson();
+
+ j.put("accel_along", accel_along);
+ j.put("accel_across", accel_across);
+ j.put("accel_through", accel_through);
+
+ j.put("gyro_roll", gyro_roll);
+ j.put("gyro_pitch", gyro_pitch);
+ j.put("gyro_yaw", gyro_yaw);
+ return j;
+ }
}