import logging from struct import pack, unpack from pylgbst.utilities import str2hex log = logging.getLogger('hub') class Message(object): TYPE = None def __init__(self): self.hub_id = 0x00 # not used according to official doc self.payload = b"" def bytes(self): """ see https://lego.github.io/lego-ble-wireless-protocol-docs/#common-message-header """ msglen = len(self.payload) + 3 assert msglen < 127, "TODO: handle longer messages with 2-byte len" return pack("