From 6b6da1cec13215b1788bd7c37e545846738b53c1 Mon Sep 17 00:00:00 2001 From: Sven Gestegard Robertz <sven.robertz@cs.lth.se> Date: Wed, 26 Nov 2014 10:50:04 +0100 Subject: [PATCH] temporarily unbroke java register: stop sending type defs --- .../lth/control/labcomm/EncoderChannel.java | 21 +++++++++++-------- .../lth/control/labcomm/SampleDispatcher.java | 6 ++++++ lib/python/labcomm/LabComm.py | 2 +- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/lib/java/se/lth/control/labcomm/EncoderChannel.java b/lib/java/se/lth/control/labcomm/EncoderChannel.java index 5949b1a..08f9c87 100644 --- a/lib/java/se/lth/control/labcomm/EncoderChannel.java +++ b/lib/java/se/lth/control/labcomm/EncoderChannel.java @@ -27,16 +27,19 @@ public class EncoderChannel implements Encoder { } public void register(SampleDispatcher dispatcher) throws IOException { - int index = def_registry.add(dispatcher); - begin(Constant.SAMPLE_DEF); - encodePacked32(index); - encodeString(dispatcher.getName()); - byte[] signature = dispatcher.getSignature(); - encodePacked32(signature.length); - for (int i = 0 ; i < signature.length ; i++) { - encodeByte(signature[i]); + if(dispatcher.getTypeDeclTag() == Constant.SAMPLE_DEF) { + int index = def_registry.add(dispatcher); + //begin(Constant.SAMPLE_DEF); + begin(dispatcher.getTypeDeclTag()); + encodePacked32(index); + encodeString(dispatcher.getName()); + byte[] signature = dispatcher.getSignature(); + encodePacked32(signature.length); + for (int i = 0 ; i < signature.length ; i++) { + encodeByte(signature[i]); + } + end(null); } - end(null); } public void registerSampleRef(SampleDispatcher dispatcher) throws IOException { diff --git a/lib/java/se/lth/control/labcomm/SampleDispatcher.java b/lib/java/se/lth/control/labcomm/SampleDispatcher.java index a878828..8870349 100644 --- a/lib/java/se/lth/control/labcomm/SampleDispatcher.java +++ b/lib/java/se/lth/control/labcomm/SampleDispatcher.java @@ -11,5 +11,11 @@ public interface SampleDispatcher <T> { public void decodeAndHandle(Decoder decoder, SampleHandler handler) throws Exception; + /** return the tag SAMPLE_DEF or TYPE_DEF, for use + * by encoder.register. + * TODO: refactor types, moving this to a super-interface + * applicable to both type and sample defs. + */ + public byte getTypeDeclTag(); } diff --git a/lib/python/labcomm/LabComm.py b/lib/python/labcomm/LabComm.py index c45e705..c4b353c 100644 --- a/lib/python/labcomm/LabComm.py +++ b/lib/python/labcomm/LabComm.py @@ -848,7 +848,7 @@ class Decoder(Codec): decl = self.index_to_decl[index].decode_decl(self) value = None elif index < i_USER: - raise exception("Invalid type index %d" % index) + raise Exception("Invalid type index %d" % index) else: decl = self.index_to_decl[index] value = decl.decode(self) -- GitLab