def test_is_report(self): reg_report = bytes( [ 0x0A, 0x00, 0xFF, 0xFF, 0x01, 0x90, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x22, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0xFF, ] ) reg_report = binascii.hexlify(reg_report) reg_msg = UPBMessage.create_from_packet(reg_report) self.assertTrue(self.setup.is_report(reg_msg))
def _retrieve_chunk(self, ser, chunk_start, retry, chunk_size = 16): reg_des = registers.RegisterDescription((chunk_start, chunk_size)) message = reg_des.create_get_registers(network_id = self.nid, destination_id = self.uid) tries = 0 while tries < retry: pim.write_message(ser, message) pim_message = True while pim_message is not None: pim_message = pim.read(ser) if pim_message and pim_message.type == pim.PIMMessage.UPBMESSAGE: message = UPBMessage.create_from_packet(pim_message.packet) logging.debug(str(message)) if reg_des.is_report(message): return message.arguments[1:] tries += 1
def _update_model_with_packet(self, packet): message = UPBMessage.create_from_packet(packet) self._update_model_with_message(message)