X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosCompanion.java;fp=altoslib%2FAltosCompanion.java;h=abb988304e3d4c7e17f668125ffc93b1cce3ebb8;hp=6f18d93eba01acda5e7e55224eeadc38f97e24da;hb=1b5ea911049a8afae6af475a4a2bf62a6e3aa57b;hpb=1de8b6c340cec0b5a327392686c5a4e00f201e98 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); + } }