def run(self): # This is where the fish lives. while True: # Quit when user does. if self._kill_flag.is_set(): print("HE'S DEAD JIM!") break if not self._stop_flag.wait(1.0): continue num_bytes = self._ser.inWaiting() if num_bytes > 0: self._buffer += self._ser.read(num_bytes) else: continue if (num_bytes + len(self._buffer)) >= 5: packet, self._buffer = afproto.extract_payload(self._buffer) else: continue if packet: payload = struct.unpack("H", packet) else: continue while True: # if not self._data.put([payload[0]], [time.time() - start]): if not self._data.put([time.time() - self._start_time], [payload[0]]): print("stuck in loop") time.sleep(0.0001) else: break
def debug_msgs(s): buff = '' while True: buff += s.read() if buff[-1] == chr(afproto.end_byte) and buff[-2] != chr(afproto.escape_byte): payload, buff = afproto.extract_payload(buff) print payload
def handle_read(self, fd): self.in_buff += self.device.read(10) msg, self.in_buff = afproto.extract_payload(self.in_buff) if msg != None: self.handle_msg(msg)