diff options
author | Keith Packard <keithp@keithp.com> | 2016-06-15 22:40:27 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2016-06-15 22:40:27 -0700 |
commit | 1b5ea911049a8afae6af475a4a2bf62a6e3aa57b (patch) | |
tree | 7f896e587da5e7911b7b5a42aade1b7692670200 /altoslib/AltosIMU.java | |
parent | 1de8b6c340cec0b5a327392686c5a4e00f201e98 (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.java | 33 |
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; + } } |