def _write(self, data): ''' write data to serial ''' frame = ZnpFrame(data).output() log.debug('TX: %s' % frame.encode('hex')) self.serial.write(frame)
def _write(self, data): """ write data to serial """ frame = ZnpFrame(data).output() log.debug("TX: %s" % frame.encode("hex")) self.serial.write(frame)
def _write(self, data): """ write data to serial """ frame = ZnpFrame(data).output() log.debug('TX: %s' % frame.encode('hex')) self.serial.write(frame)
def _wait_for_frame(self): """ read from the serial port until a valid ZNP frame arrives. It will then return the binary data contained within the frame """ frame = ZnpFrame() while True: if self._callback and not self._thread_continue: raise ThreadQuitException if self.serial.inWaiting() == 0: time.sleep(0.005) # 5ms polling continue byte = self.serial.read() if byte != ZnpFrame.SOF: continue # save all following bytes if len(byte) == 1: # print 'received: SOF' frame.fill(byte) # TODO: how to handle the rx timeout situation if not enough bytes while frame.remaining_bytes() > 0: byte = self.serial.read() if len(byte) == 1: # print 'received: %s' % byte.encode('hex') frame.fill(byte) try: log.debug("RX: %s" % frame.raw_data.encode("hex")) frame.parse() # ignore empty frames if len(frame.data) == 0: log.debug("Empty frame received!") frame = ZnpFrame() continue return frame except ValueError: # bad frame, so restart log.debug("bad frame received!") frame = ZnpFrame()
def _wait_for_frame(self): ''' read from the serial port until a valid ZNP frame arrives. It will then return the binary data contained within the frame ''' frame = ZnpFrame() while True: if self._callback and not self._thread_continue: raise ThreadQuitException if self.serial.inWaiting() == 0: time.sleep(0.005) #5ms polling continue byte = self.serial.read() if byte != ZnpFrame.SOF: continue # save all following bytes if len(byte) == 1: #print 'received: SOF' frame.fill(byte) #TODO: how to handle the rx timeout situation if not enough bytes while frame.remaining_bytes() > 0: byte = self.serial.read() if len(byte) == 1: #print 'received: %s' % byte.encode('hex') frame.fill(byte) try: log.debug('RX: %s' % frame.raw_data.encode('hex')) frame.parse() #ignore empty frames if len(frame.data) == 0: log.debug('Empty frame received!') frame = ZnpFrame() continue return frame except ValueError: #bad frame, so restart log.debug('bad frame received!') frame = ZnpFrame()