Exemplo n.º 1
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
Exemplo n.º 2
0
#send a command over the serial port
#and print out resposne
import serial
from upb.pim import write_message, read
import upb

ser = serial.Serial('/dev/ttyUSB0', '4800')
msg = upb.UPBGoToLevel(100)
msg.destination_id = 45
print(read(ser).packet)
Exemplo n.º 3
0
 def read_io(self):
     message = read(self.io_fd)
     if message.type == PIMMessage.UPBMESSAGE:
         self._update_model_with_packet(message.packet)