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/AltosCompanion.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/AltosCompanion.java')
| -rw-r--r-- | altoslib/AltosCompanion.java | 28 | 
1 files changed, 27 insertions, 1 deletions
| diff --git a/altoslib/AltosCompanion.java b/altoslib/AltosCompanion.java index 6f18d93e..abb98830 100644 --- a/altoslib/AltosCompanion.java +++ b/altoslib/AltosCompanion.java @@ -19,7 +19,7 @@ package org.altusmetrum.altoslib_11;  import java.io.*; -public class AltosCompanion implements AltosHashable { +public class AltosCompanion implements AltosHashable, AltosJsonable {  	public final static int	board_id_telescience = 0x0a;  	public final static int	MAX_CHANNELS = 12; @@ -49,6 +49,17 @@ public class AltosCompanion implements AltosHashable {  		return h;  	} +	public AltosJson json() { +		AltosJson j = new AltosJson(); + +		j.put("tick", tick); +		j.put("board_id", board_id); +		j.put("update_period", update_period); +		j.put("channels", channels); +		j.put("companion_data", companion_data); +		return j; +	} +  	public AltosCompanion(AltosHashSet h) {  		tick = h.getInt("tick", tick);  		board_id = h.getInt("board_id", board_id); @@ -63,4 +74,19 @@ public class AltosCompanion implements AltosHashable {  		return new AltosCompanion(h);  	} + +	public AltosCompanion(AltosJson j) { +		tick = j.get_int("tick", tick); +		board_id = j.get_int("board_id", board_id); +		update_period = j.get_int("update_period", update_period); +		channels = j.get_int("channels", channels); +		companion_data = j.get_int_array("companion_data", new int[channels]); +	} + +	public static AltosCompanion fromJson(AltosJson j, AltosCompanion def) { +		if (j == null) +			return def; + +		return new AltosCompanion(j); +	}  } | 
