code: public byte[] readMemory(Destination dst, int startAddr, int bytes)
  		throws KNXTimeoutException, KNXDisconnectException, KNXRemoteException,
  		KNXLinkClosedException
  	{
  		if (startAddr < 0 || startAddr > 0xFFFF || bytes < 1 || bytes > 63)
  			throw new KNXIllegalArgumentException("argument value out of range");
  		if (dst.isConnectionOriented())
  			tl.connect(dst);
  		else
  			logger.error("doing read memory in connectionless mode, " + dst.toString());
  		final byte[] apdu =	sendWait(dst, priority, DataUnitBuilder.createCompactAPDU(
  			MEMORY_READ, new byte[] { (byte) bytes, (byte) (startAddr >>> 8),
  				(byte) startAddr }), MEMORY_RESPONSE, 2, 65);
  		int no = apdu[1] & 0x3F;
  		if (no == 0)
  			throw new KNXRemoteException("could not read memory from 0x"
  				+ Integer.toHexString(startAddr));
  		final byte[] mem = new byte[no];
  		while (--no >= 0)
  			mem[no] = apdu[4 + no];
  		return mem;
  	}
docs: /* (non-Javadoc)
  @see tuwien.auto.calimero.mgmt.ManagementClient#readMemory
  (tuwien.auto.calimero.mgmt.Destination, int, int)