X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosCompanion.java;h=2db8ea1b3d8b8845197f93e0f04ef3f8c5cf6745;hb=7175774c4f60ed3efd54417f2035b50ea0108c7b;hp=8992b018775f2468913c91c604599fac5a8470d1;hpb=4231d68bae69d9a7d1f52205002db452cd5f986d;p=fw%2Faltos diff --git a/altoslib/AltosCompanion.java b/altoslib/AltosCompanion.java index 8992b018..2db8ea1b 100644 --- a/altoslib/AltosCompanion.java +++ b/altoslib/AltosCompanion.java @@ -15,11 +15,11 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_6; +package org.altusmetrum.altoslib_11; import java.io.*; -public class AltosCompanion implements Serializable { +public class AltosCompanion implements AltosJsonable { public final static int board_id_telescience = 0x0a; public final static int MAX_CHANNELS = 12; @@ -37,4 +37,30 @@ public class AltosCompanion implements Serializable { channels = MAX_CHANNELS; companion_data = new int[channels]; } + + 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(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); + } }