X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosIMU.java;h=df6c4ed36fbc08c7d2d77cdbe56f06886cdc7eeb;hb=2970de9f92243b11d3beef56f3b1df3ef3579b95;hp=26d115919da55be14aa460aec56904f23b220a35;hpb=97adfff4cfb67c17a96f3ff46606b4e439422b01;p=fw%2Faltos diff --git a/altoslib/AltosIMU.java b/altoslib/AltosIMU.java index 26d11591..df6c4ed3 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, Serializable { +public class AltosIMU implements Cloneable, AltosHashable { public int accel_along; public int accel_across; public int accel_through; @@ -29,13 +29,13 @@ public class AltosIMU implements Cloneable, Serializable { public int gyro_pitch; public int gyro_yaw; - public static double counts_per_g = 2048.0; + public static final double counts_per_g = 2048.0; public static double convert_accel(double counts) { return counts / counts_per_g * (-AltosConvert.GRAVITATIONAL_ACCELERATION); } - public static double counts_per_degsec = 16.4; + public static final double counts_per_degsec = 16.4; public static double convert_gyro(double counts) { return counts / counts_per_degsec; @@ -115,4 +115,35 @@ public class AltosIMU implements Cloneable, Serializable { break; } } + + public AltosIMU (AltosHashSet h) { + this(); + + accel_along = h.getInt("accel_along", accel_along); + accel_across = h.getInt("accel_across", accel_across); + accel_through = h.getInt("accel_through", accel_through); + + gyro_roll = h.getInt("gyro_roll", gyro_roll); + gyro_pitch = h.getInt("gyro_pitch", gyro_pitch); + gyro_yaw = h.getInt("gyro_yaw", gyro_yaw); + } + + static public AltosIMU fromHashSet(AltosHashSet h, AltosIMU def) { + if (h == null) + return def; + return new AltosIMU(h); + } + + public AltosHashSet hashSet() { + AltosHashSet h = new AltosHashSet(); + + h.putInt("accel_along", accel_along); + h.putInt("accel_across", accel_across); + h.putInt("accel_through", accel_through); + + h.putInt("gyro_roll", gyro_roll); + h.putInt("gyro_pitch", gyro_pitch); + h.putInt("gyro_yaw", gyro_yaw); + return h; + } }