Ejemplo n.º 1
0
    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))
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
 def _update_model_with_packet(self, packet):
     message = UPBMessage.create_from_packet(packet)
     self._update_model_with_message(message)