X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosCompanion.java;h=6f18d93eba01acda5e7e55224eeadc38f97e24da;hb=3c4278a29082a2af5911e22e59f8f52549f549e3;hp=57bb21afbccdd666a20a0f836c987eed18574fd1;hpb=5b976a6651f4eb05d30afc08b9e1f27c7e52ae00;p=fw%2Faltos diff --git a/altoslib/AltosCompanion.java b/altoslib/AltosCompanion.java index 57bb21af..6f18d93e 100644 --- a/altoslib/AltosCompanion.java +++ b/altoslib/AltosCompanion.java @@ -15,9 +15,11 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_2; +package org.altusmetrum.altoslib_11; -public class AltosCompanion { +import java.io.*; + +public class AltosCompanion implements AltosHashable { public final static int board_id_telescience = 0x0a; public final static int MAX_CHANNELS = 12; @@ -35,4 +37,30 @@ public class AltosCompanion { channels = MAX_CHANNELS; companion_data = new int[channels]; } + + public AltosHashSet hashSet() { + AltosHashSet h = new AltosHashSet(); + + h.putInt("tick", tick); + h.putInt("board_id", board_id); + h.putInt("update_period", update_period); + h.putInt("channels", channels); + h.putIntArray("companion_data", companion_data); + return h; + } + + public AltosCompanion(AltosHashSet h) { + tick = h.getInt("tick", tick); + board_id = h.getInt("board_id", board_id); + update_period = h.getInt("update_period", update_period); + channels = h.getInt("channels", channels); + companion_data = h.getIntArray("companion_data", new int[channels]); + } + + public static AltosCompanion fromHashSet(AltosHashSet h, AltosCompanion def) { + if (h == null) + return def; + + return new AltosCompanion(h); + } }