code: def recv(self, full_frame=False):
  		
  		payloadbuffer = b''
  		tries = 3
  		while tries:
  			tmpbuffer = self.serial_h.read(1)
  			if tmpbuffer != b'\xee':
  				self.loggerio.error('did not receive \\xee as the first byte of the frame')
  				self.loggerio.debug('received \\x' + binascii.b2a_hex(tmpbuffer).decode('utf-8') + ' instead')
  				tries -= 1
  				continue
  			tmpbuffer += self.serial_h.read(5)
  			sequence, length = struct.unpack('>xxxBH', tmpbuffer)
  			payload = self.serial_h.read(length)
  			tmpbuffer += payload
  			chksum = self.serial_h.read(2)
  			if chksum == packet_checksum(tmpbuffer):
  				self.serial_h.write(ACK)
  				data = tmpbuffer + chksum
  				self.loggerio.debug("received frame, length: {0:<3} data: {1}".format(len(data), binascii.b2a_hex(data).decode('utf-8')))
  				payloadbuffer += payload
  				if sequence == 0:
  					if full_frame:
  						payloadbuffer = data
  					if sys.version_info[0] == 2:
  						payloadbuffer = bytearray(payloadbuffer)
  					return payloadbuffer
  				else:
  					tries = 3
  			else:
  				self.serial_h.write(NACK)
  				self.loggerio.warning('crc does not match on received frame')
  				tries -= 1
  		self.loggerio.critical('failed 3 times to correctly receive a frame')
  		raise C1218IOError('failed 3 times to correctly receive a frame')
docs: Receive a C1218Packet, the payload data is returned.
  
  		:param bool full_frame: If set to True, the entire C1218 frame is
  		  returned instead of just the payload.