From 33364e4e3bda76eaab27ce80f5537f6af67b8bda Mon Sep 17 00:00:00 2001 From: Andrey Pokhilko <apc4@ya.ru> Date: Wed, 14 Aug 2019 13:17:15 +0300 Subject: [PATCH] Fix hanging on button subscribe --- pylgbst/messages.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pylgbst/messages.py b/pylgbst/messages.py index 7236a36..36daf61 100644 --- a/pylgbst/messages.py +++ b/pylgbst/messages.py @@ -18,14 +18,15 @@ class Message(object): see https://lego.github.io/lego-ble-wireless-protocol-docs/#common-message-header """ msglen = len(self.payload) + 3 - assert msglen < 127, "TODO: handle logner messages with 2-byte len" + assert msglen < 127, "TODO: handle longer messages with 2-byte len" return pack("<B", msglen) + pack("<B", self.hub_id) + pack("<B", self.TYPE) + self.payload def __repr__(self): + # assert self.bytes() # to trigger any field changes data = self.__dict__ data = {x: (str2hex(y) if isinstance(y, bytes) else y) for x, y in data.items() - if x not in ('hub_id', 'needs_reply')} + if x not in ('hub_id',)} return self.__class__.__name__ + "(%s)" % data @@ -125,7 +126,7 @@ class MsgHubProperties(DownstreamMsg, UpstreamMsg): self.parameters = parameters def bytes(self): - if self.operation == self.UPD_REQUEST: + if self.operation in (self.UPD_REQUEST, self.UPD_ENABLE): self.needs_reply = True self.payload = pack("<B", self.property) + pack("<B", self.operation) + self.parameters return super(MsgHubProperties, self).bytes()