diff options
Diffstat (limited to 'altoslib/AltosState.java')
| -rw-r--r-- | altoslib/AltosState.java | 360 | 
1 files changed, 8 insertions, 352 deletions
| diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java index a3c6cc34..26cedce9 100644 --- a/altoslib/AltosState.java +++ b/altoslib/AltosState.java @@ -23,7 +23,7 @@ package org.altusmetrum.altoslib_11;  import java.io.*; -public class AltosState implements Cloneable, AltosHashable { +public class AltosState implements Cloneable, AltosJsonable {  	public static final int set_position = 1;  	public static final int set_gps = 2; @@ -46,7 +46,7 @@ public class AltosState implements Cloneable, AltosHashable {  	private int	prev_tick;  	public int	boost_tick; -	class AltosValue implements AltosHashable, AltosJsonable { +	class AltosValue implements AltosJsonable {  		double	value;  		double	prev_value;  		private double	max_value; @@ -177,17 +177,6 @@ public class AltosState implements Cloneable, AltosHashable {  			prev_set_time = set_time;  		} -		public AltosHashSet hashSet() { -			AltosHashSet h = new AltosHashSet(); - -			h.putDouble("value", value); -			h.putDouble("prev_value", prev_value); -			h.putDouble("max_value", max_value); -			h.putDouble("set_time", set_time); -			h.putDouble("prev_set_time", prev_set_time); -			return h; -		} -  		public AltosJson json() {  			AltosJson j = new AltosJson(); @@ -199,17 +188,6 @@ public class AltosState implements Cloneable, AltosHashable {  			return j;  		} -		AltosValue(AltosHashSet h) { -			this(); -			if (h != null) { -				value = h.getDouble("value", value); -				prev_value = h.getDouble("prev_value", prev_value); -				max_value = h.getDouble("max_value", max_value); -				set_time = h.getDouble("set_time", 0); -				prev_set_time = h.getDouble("prev_set_time", 0); -			} -		} -  		AltosValue(AltosJson j) {  			this();  			if (j != null) { @@ -229,21 +207,15 @@ public class AltosState implements Cloneable, AltosHashable {  	} -	AltosValue AltosValue_fromHashSet(AltosHashSet h, AltosValue def) { -		if (h == null) -			return def; -		return new AltosValue(h); -	} -  	AltosValue AltosValue_fromJson(AltosJson j, AltosValue def) {  		if (j == null)  			return def;  		return new AltosValue(j);  	} -	class AltosCValue implements AltosHashable, AltosJsonable { +	class AltosCValue implements AltosJsonable { -		class AltosIValue extends AltosValue implements AltosHashable, AltosJsonable { +		class AltosIValue extends AltosValue implements AltosJsonable {  			boolean can_max() {  				return c_can_max();  			} @@ -252,10 +224,6 @@ public class AltosState implements Cloneable, AltosHashable {  				super();  			} -			AltosIValue(AltosHashSet h) { -				super(h); -			} -  			AltosIValue(AltosJson j) {  				super(j);  			} @@ -352,14 +320,6 @@ public class AltosState implements Cloneable, AltosHashable {  			computed = new AltosIValue();  		} -		public AltosHashSet hashSet() { -			AltosHashSet h = new AltosHashSet(); - -			h.putHashable("measured", measured); -			h.putHashable("computed", computed); -			return h; -		} -  		public AltosJson json() {  			AltosJson	j = new AltosJson(); @@ -368,23 +328,12 @@ public class AltosState implements Cloneable, AltosHashable {  			return j;  		} -		AltosCValue(AltosHashSet h) { -			measured = new AltosIValue(h.getHash("measured")); -			computed = new AltosIValue(h.getHash("computed")); -		} -  		AltosCValue(AltosJson j) {  			measured = new AltosIValue(j.get("measured"));  			computed = new AltosIValue(j.get("computed"));  		}  	} -	AltosCValue AltosCValue_fromHashSet(AltosHashSet h, AltosCValue def) { -		if (h == null) -			return def; -		return new AltosCValue(h); -	} -  	AltosCValue AltosCValue_fromJson(AltosJson j, AltosCValue def) {  		if (j == null)  			return def; @@ -441,20 +390,11 @@ public class AltosState implements Cloneable, AltosHashable {  			super();  		} -		AltosGpsGroundAltitude (AltosHashSet h) { -			super(h); -		} -  		AltosGpsGroundAltitude (AltosJson j) {  			super(j);  		}  	} -	AltosGpsGroundAltitude AltosGpsGroundAltitude_fromHashSet(AltosHashSet h, AltosGpsGroundAltitude def) { -		if (h == null) return def; -		return new AltosGpsGroundAltitude(h); -	} -  	AltosGpsGroundAltitude AltosGpsGroundAltitude_fromJson(AltosJson j, AltosGpsGroundAltitude def) {  		if (j == null) return def;  		return new AltosGpsGroundAltitude(j); @@ -486,20 +426,11 @@ public class AltosState implements Cloneable, AltosHashable {  			super();  		} -		AltosGroundPressure (AltosHashSet h) { -			super(h); -		} -  		AltosGroundPressure (AltosJson j) {  			super(j);  		}  	} -	AltosGroundPressure AltosGroundPressure_fromHashSet(AltosHashSet h, AltosGroundPressure def) { -		if (h == null) return def; -		return new AltosGroundPressure(h); -	} -  	AltosGroundPressure AltosGroundPressure_fromJson(AltosJson j, AltosGroundPressure def) {  		if (j == null) return def;  		return new AltosGroundPressure(j); @@ -515,7 +446,7 @@ public class AltosState implements Cloneable, AltosHashable {  		ground_pressure.set_measured(pressure, time);  	} -	class AltosAltitude extends AltosCValue implements AltosHashable { +	class AltosAltitude extends AltosCValue {  		private void set_speed(AltosValue v) {  			if (!acceleration.is_measured() || !ascent) @@ -538,20 +469,11 @@ public class AltosState implements Cloneable, AltosHashable {  			super();  		} -		AltosAltitude (AltosHashSet h) { -			super(h); -		} -  		AltosAltitude (AltosJson j) {  			super(j);  		}  	} -	AltosAltitude AltosAltitude_fromHashSet(AltosHashSet h, AltosAltitude def) { -		if (h == null) return def; -		return new AltosAltitude(h); -	} -  	AltosAltitude AltosAltitude_fromJson(AltosJson j, AltosAltitude def) {  		if (j == null) return def;  		return new AltosAltitude(j); @@ -559,7 +481,7 @@ public class AltosState implements Cloneable, AltosHashable {  	private AltosAltitude	altitude; -	class AltosGpsAltitude extends AltosValue implements AltosHashable { +	class AltosGpsAltitude extends AltosValue {  		private void set_gps_height() {  			double	a = value(); @@ -580,20 +502,11 @@ public class AltosState implements Cloneable, AltosHashable {  			super();  		} -		AltosGpsAltitude (AltosHashSet h) { -			super(h); -		} -  		AltosGpsAltitude (AltosJson j) {  			super(j);  		}  	} -	AltosGpsAltitude AltosGpsAltitude_fromHashSet(AltosHashSet h, AltosGpsAltitude def) { -		if (h == null) return def; -		return new AltosGpsAltitude(h); -	} -  	AltosGpsAltitude AltosGpsAltitude_fromJson(AltosJson j, AltosGpsAltitude def) {  		if (j == null) return def;  		return new AltosGpsAltitude(j); @@ -677,20 +590,11 @@ public class AltosState implements Cloneable, AltosHashable {  			super();  		} -		AltosPressure (AltosHashSet h) { -			super(h); -		} -  		AltosPressure (AltosJson j) {  			super(j);  		}  	} -	AltosPressure AltosPressure_fromHashSet(AltosHashSet h, AltosPressure def) { -		if (h == null) return def; -		return new AltosPressure(h); -	} -  	AltosPressure AltosPressure_fromJson(AltosJson j, AltosPressure def) {  		if (j == null) return def;  		return new AltosPressure(j); @@ -756,7 +660,7 @@ public class AltosState implements Cloneable, AltosHashable {  		return AltosLib.MISSING;  	} -	class AltosSpeed extends AltosCValue implements AltosHashable { +	class AltosSpeed extends AltosCValue {  		boolean can_max() {  			return state < AltosLib.ao_flight_fast || state == AltosLib.ao_flight_stateless; @@ -785,20 +689,11 @@ public class AltosState implements Cloneable, AltosHashable {  			super();  		} -		AltosSpeed (AltosHashSet h) { -			super(h); -		} -  		AltosSpeed (AltosJson j) {  			super(j);  		}  	} -	AltosSpeed AltosSpeed_fromHashSet(AltosHashSet h, AltosSpeed def) { -		if (h == null) return def; -		return new AltosSpeed(h); -	} -  	AltosSpeed AltosSpeed_fromJson(AltosJson j, AltosSpeed def) {  		if (j == null) return def;  		return new AltosSpeed(j); @@ -832,7 +727,7 @@ public class AltosState implements Cloneable, AltosHashable {  		return AltosLib.MISSING;  	} -	class AltosAccel extends AltosCValue implements AltosHashable { +	class AltosAccel extends AltosCValue {  		boolean can_max() {  			return state < AltosLib.ao_flight_fast || state == AltosLib.ao_flight_stateless; @@ -848,20 +743,11 @@ public class AltosState implements Cloneable, AltosHashable {  			super();  		} -		AltosAccel (AltosHashSet h) { -			super(h); -		} -  		AltosAccel (AltosJson j) {  			super(j);  		}  	} -	AltosAccel AltosAccel_fromHashSet(AltosHashSet h, AltosAccel def) { -		if (h == null) return def; -		return new AltosAccel(h); -	} -  	AltosAccel AltosAccel_fromJson(AltosJson j, AltosAccel def) {  		if (j == null) return def;  		return new AltosAccel(j); @@ -1765,19 +1651,6 @@ public class AltosState implements Cloneable, AltosHashable {  				System.exit(1);  			}  		} -		if (false) { -			AltosHashSet	hash = hashSet(); -			String		onetrip = hash.toString(); -			AltosHashSet	back = AltosHashSet.fromString(onetrip); -			AltosState	tripstate = AltosState.fromHashSet(back); -			AltosHashSet	triphash = tripstate.hashSet(); -			String		twotrip = triphash.toString(); - -			if (!onetrip.equals(twotrip)) { -				System.out.printf("%s\n%s\n", onetrip, twotrip); -				System.exit(1); -			} -		}  		return s;  	} @@ -1785,112 +1658,6 @@ public class AltosState implements Cloneable, AltosHashable {  		init();  	} -	public AltosHashSet hashSet() { -		AltosHashSet	h = new AltosHashSet(); - -		h.putBoolean("valid", true); -		h.putInt("set", set); -		h.putLong("received_time", received_time); -		h.putDouble("time", time); -		h.putDouble("prev_time", prev_time); -		h.putDouble("time_change", time_change); -		h.putInt("tick", tick); -		h.putInt("prev_tick", prev_tick); -		h.putInt("boost_tick", boost_tick); -		h.putInt("state", state); -		h.putInt("flight", flight); -		h.putInt("serial", serial); -		h.putInt("altitude_32", altitude_32); -		h.putInt("receiver_serial", receiver_serial); -		h.putBoolean("landed", landed); -		h.putBoolean("ascent", ascent); -		h.putBoolean("boost", boost); -		h.putInt("rssi", rssi); -		h.putInt("status", status); -		h.putInt("device_type", device_type); -		h.putInt("config_major", config_major); -		h.putInt("config_minor", config_minor); -		h.putInt("apogee_delay", apogee_delay); -		h.putInt("main_deploy", main_deploy); -		h.putInt("flight_log_max", flight_log_max); -		h.putHashable("ground_altitude", ground_altitude); -		h.putHashable("gps_ground_altitude", gps_ground_altitude); -		h.putHashable("ground_pressure", ground_pressure); -		h.putHashable("altitude", altitude); -		h.putHashable("gps_altitude", gps_altitude); -		h.putHashable("gps_ground_speed", gps_ground_speed); -		h.putHashable("gps_ascent_rate", gps_ascent_rate); -		h.putHashable("gps_course", gps_course); -		h.putHashable("gps_speed", gps_speed); -		h.putHashable("pressure", pressure); -		h.putHashable("speed", speed); -		h.putHashable("acceleration", acceleration); -		h.putHashable("orient", orient); -		h.putHashable("kalman_height", kalman_height); -		h.putHashable("kalman_speed", kalman_speed); -		h.putHashable("kalman_acceleration", kalman_acceleration); - -		h.putDouble("battery_voltage",battery_voltage); -		h.putDouble("pyro_voltage",pyro_voltage); -		h.putDouble("temperature",temperature); -		h.putDouble("apogee_voltage",apogee_voltage); -		h.putDouble("main_voltage",main_voltage); -		h.putDoubleArray("ignitor_voltage",ignitor_voltage); -		h.putHashable("gps", gps); -		h.putHashable("temp_gps", temp_gps); -		h.putInt("temp_gps_sat_tick", temp_gps_sat_tick); -		h.putBoolean("gps_pending", gps_pending); -		h.putInt("gps_sequence", gps_sequence); -		h.putHashable("imu", imu); -		h.putHashable("mag", mag); - -		h.putInt("npad", npad); -		h.putInt("gps_waiting", gps_waiting); -		h.putBoolean("gps_ready", gps_ready); -		h.putInt("ngps", ngps); -		h.putHashable("from_pad", from_pad); -		h.putDouble("elevation", elevation); -		h.putDouble("range", range); -		h.putDouble("gps_height", gps_height); -		h.putDouble("pad_lat", pad_lat); -		h.putDouble("pad_lon", pad_lon); -		h.putDouble("pad_alt", pad_alt); -		h.putInt("speak_tick", speak_tick); -		h.putDouble("speak_altitude", speak_altitude); -		h.putString("callsign", callsign); -		h.putString("firmware_version", firmware_version); -		h.putDouble("accel_plus_g", accel_plus_g); -		h.putDouble("accel_minus_g", accel_minus_g); -		h.putDouble("accel", accel); -		h.putDouble("ground_accel", ground_accel); -		h.putDouble("ground_accel_avg", ground_accel_avg); -		h.putInt("log_format", log_format); -		h.putInt("log_space", log_space); -		h.putString("product", product); -		h.putHashable("baro", baro); -		h.putHashable("companion", companion); -		h.putInt("pyro_fired", pyro_fired); -		h.putDouble("accel_zero_along", accel_zero_along); -		h.putDouble("accel_zero_across", accel_zero_across); -		h.putDouble("accel_zero_through", accel_zero_through); - -		h.putHashable("rotation", rotation); -		h.putHashable("ground_rotation", ground_rotation); - -		h.putInt("pad_orientation", pad_orientation); - -		h.putDouble("accel_ground_along", accel_ground_along); -		h.putDouble("accel_ground_across", accel_ground_across); -		h.putDouble("accel_ground_through", accel_ground_through); - -		h.putDouble("gyro_zero_roll", gyro_zero_roll); -		h.putDouble("gyro_zero_pitch", gyro_zero_pitch); -		h.putDouble("gyro_zero_yaw", gyro_zero_yaw); - -		h.putDouble("last_imu_time", last_imu_time); -		return h; -	} -  	public AltosJson json() {  		AltosJson	j = new AltosJson(); @@ -1997,110 +1764,6 @@ public class AltosState implements Cloneable, AltosHashable {  		return j;  	} -	public AltosState(AltosHashSet h) { -		this(); - -		set = h.getInt("set", set); -		received_time = h.getLong("received_time", received_time); -		time = h.getDouble("time", time); -		prev_time = h.getDouble("prev_time", prev_time); -		time_change = h.getDouble("time_change", time_change); -		tick = h.getInt("tick", tick); -		prev_tick = h.getInt("prev_tick", prev_tick); -		boost_tick = h.getInt("boost_tick", boost_tick); -		state = h.getInt("state", state); -		flight = h.getInt("flight", flight); -		serial = h.getInt("serial", serial); -		altitude_32 = h.getInt("altitude_32", altitude_32); -		receiver_serial = h.getInt("receiver_serial", receiver_serial); -		landed = h.getBoolean("landed", landed); -		ascent = h.getBoolean("ascent", ascent); -		boost = h.getBoolean("boost", boost); -		rssi = h.getInt("rssi", rssi); -		status = h.getInt("status", status); -		device_type = h.getInt("device_type", device_type); -		config_major = h.getInt("config_major", config_major); -		config_minor = h.getInt("config_minor", config_minor); -		apogee_delay = h.getInt("apogee_delay", apogee_delay); -		main_deploy = h.getInt("main_deploy", main_deploy); -		flight_log_max = h.getInt("flight_log_max", flight_log_max); -		ground_altitude = AltosCValue_fromHashSet(h.getHash("ground_altitude"), ground_altitude); -		gps_ground_altitude = AltosGpsGroundAltitude_fromHashSet(h.getHash("gps_ground_altitude"), gps_ground_altitude); -		ground_pressure = AltosGroundPressure_fromHashSet(h.getHash("ground_pressure"), ground_pressure); -		altitude = AltosAltitude_fromHashSet(h.getHash("altitude"), altitude); -		gps_altitude = AltosGpsAltitude_fromHashSet(h.getHash("gps_altitude"), gps_altitude); -		gps_ground_speed = AltosValue_fromHashSet(h.getHash("gps_ground_speed"), gps_ground_speed); -		gps_ascent_rate = AltosValue_fromHashSet(h.getHash("gps_ascent_rate"), gps_ascent_rate); -		gps_course = AltosValue_fromHashSet(h.getHash("gps_course"), gps_course); -		gps_speed = AltosValue_fromHashSet(h.getHash("gps_speed"), gps_speed); -		pressure = AltosPressure_fromHashSet(h.getHash("pressure"), pressure); -		speed = AltosSpeed_fromHashSet(h.getHash("speed"), speed); -		acceleration = AltosAccel_fromHashSet(h.getHash("acceleration"), acceleration); -		orient = AltosCValue_fromHashSet(h.getHash("orient"), orient); -		kalman_height = AltosValue_fromHashSet(h.getHash("kalman_height"), kalman_height); -		kalman_speed = AltosValue_fromHashSet(h.getHash("kalman_speed"), kalman_speed); -		kalman_acceleration = AltosValue_fromHashSet(h.getHash("kalman_acceleration"), kalman_acceleration); - -		battery_voltage = h.getDouble("battery_voltage", battery_voltage); -		pyro_voltage = h.getDouble("pyro_voltage", pyro_voltage); -		temperature = h.getDouble("temperature", temperature); -		apogee_voltage = h.getDouble("apogee_voltage", apogee_voltage); -		main_voltage=  h.getDouble("main_voltage", main_voltage); -		ignitor_voltage = h.getDoubleArray("ignitor_voltage", ignitor_voltage); -		gps = AltosGPS.fromHashSet(h.getHash("gps"), gps); -		temp_gps = AltosGPS.fromHashSet(h.getHash("temp_gps"), temp_gps); -		temp_gps_sat_tick = h.getInt("temp_gps_sat_tick", temp_gps_sat_tick); -		gps_pending = h.getBoolean("gps_pending", gps_pending); -		gps_sequence = h.getInt("gps_sequence", gps_sequence); -		imu = AltosIMU.fromHashSet(h.getHash("imu"), imu); -		mag = AltosMag.fromHashSet(h.getHash("mag"), mag); - -		npad = h.getInt("npad", npad); -		gps_waiting = h.getInt("gps_waiting", gps_waiting); -		gps_ready = h.getBoolean("gps_ready", gps_ready); -		ngps = h.getInt("ngps", ngps); -		from_pad = AltosGreatCircle.fromHashSet(h.getHash("from_pad"), from_pad); -		elevation = h.getDouble("elevation", elevation); -		range = h.getDouble("range", range); -		gps_height = h.getDouble("gps_height", gps_height); -		pad_lat = h.getDouble("pad_lat", pad_lat); -		pad_lon = h.getDouble("pad_lon", pad_lon); -		pad_alt = h.getDouble("pad_alt", pad_alt); -		speak_tick = h.getInt("speak_tick", speak_tick); -		speak_altitude = h.getDouble("speak_altitude", speak_altitude); -		callsign = h.getString("callsign", callsign); -		firmware_version = h.getString("firmware_version", firmware_version); -		accel_plus_g = h.getDouble("accel_plus_g", accel_plus_g); -		accel_minus_g = h.getDouble("accel_minus_g", accel_minus_g); -		accel = h.getDouble("accel", accel); -		ground_accel = h.getDouble("ground_accel", ground_accel); -		ground_accel_avg = h.getDouble("ground_accel_avg", ground_accel_avg); -		log_format = h.getInt("log_format", log_format); -		log_space = h.getInt("log_space", log_space); -		product = h.getString("product", product); -		baro = AltosMs5607.fromHashSet(h.getHash("baro"), baro); -		companion = AltosCompanion.fromHashSet(h.getHash("companion"), companion); -		pyro_fired = h.getInt("pyro_fired", pyro_fired); -		accel_zero_along = h.getDouble("accel_zero_along", accel_zero_along); -		accel_zero_across = h.getDouble("accel_zero_across", accel_zero_across); -		accel_zero_through = h.getDouble("accel_zero_through", accel_zero_through); - -		rotation = AltosRotation.fromHashSet(h.getHash("rotation"), rotation); -		ground_rotation = AltosRotation.fromHashSet(h.getHash("ground_rotation"), ground_rotation); - -		pad_orientation = h.getInt("pad_orientation", pad_orientation); - -		accel_ground_along = h.getDouble("accel_ground_along", accel_ground_along); -		accel_ground_across = h.getDouble("accel_ground_across", accel_ground_across); -		accel_ground_through = h.getDouble("accel_ground_through", accel_ground_through); - -		gyro_zero_roll = h.getDouble("gyro_zero_roll", gyro_zero_roll); -		gyro_zero_pitch = h.getDouble("gyro_zero_pitch", gyro_zero_pitch); -		gyro_zero_yaw = h.getDouble("gyro_zero_yaw", gyro_zero_yaw); - -		last_imu_time = h.getDouble("last_imu_time", last_imu_time); -	} -  	public AltosState(AltosJson j) {  		this(); @@ -2204,13 +1867,6 @@ public class AltosState implements Cloneable, AltosHashable {  		last_imu_time = j.get_double("last_imu_time", last_imu_time);  	} -	public static AltosState fromHashSet(AltosHashSet h) { -		if (h == null) -			return null; -		if (!h.getBoolean("valid", false)) -			return null; -		return new AltosState(h); -	}  	public static AltosState fromJson(AltosJson j) {  		if (j == null) | 
