diff options
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; +	}  } | 
