def parse_queueHandle(stream: BitStreamReader): # pylint: disable=invalid-name """Parse queueHandle from raw bitstream""" # According to the docs queueHandle should be an uint8_t value # just like the other similar messages. But for unknown reason zipgateway # sends this like an ipv6 address (at least version 7.11.01) print("Node failing", stream.remaining(advance=False)) if stream.bytesLeft() == 16: stream.advance(8 * 15) return stream.byte()
def test_uint5_t(streamReader: BitStreamReader): assert uint5_t.deserialize(streamReader) == 0 streamReader.advance(3) assert uint5_t.deserialize(streamReader) == 0 streamReader.advance(3) assert uint5_t.deserialize(streamReader) == 0x19 streamReader.advance(3) assert uint5_t.deserialize(streamReader) == 0x08 streamWriter = BitStreamWriter() uint5_t(20).serialize(streamWriter) assert streamWriter == b"\xa0"