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
#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)
def read_io(self): message = read(self.io_fd) if message.type == PIMMessage.UPBMESSAGE: self._update_model_with_packet(message.packet)