summaryrefslogtreecommitdiff
path: root/altoslib/AltosCompanion.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-06-15 22:40:27 -0700
committerKeith Packard <keithp@keithp.com>2016-06-15 22:40:27 -0700
commit1b5ea911049a8afae6af475a4a2bf62a6e3aa57b (patch)
tree7f896e587da5e7911b7b5a42aade1b7692670200 /altoslib/AltosCompanion.java
parent1de8b6c340cec0b5a327392686c5a4e00f201e98 (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.java28
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);
+ }
}