code: public static RawFrame createTP1(final byte[] data, final int offset) throws KNXFormatException
  	{
  		final int ctrl = data[offset] & 0xff;
  		// parse control field and check if valid
  		if ((ctrl & 0x10) == 0x10) {
  			if ((ctrl & 0x40) == 0x00)
  				return new TP1LData(data, offset);
  			else if (ctrl == 0xF0)
  				return new TP1LPollData(data, offset);
  			throw new KNXFormatException("invalid raw frame control field", ctrl);
  		}
  		return new TP1Ack(data, offset);
  	}
docs: Creates a raw frame out of a byte array for the TP1 communication medium.
  
  @param data byte array containing the TP1 raw frame structure
  @param offset start offset of frame structure in <code>data</code>, 0 &lt;=
  offset &lt; <code>data.length</code>
  @return the created TP1 raw frame
  @throws KNXFormatException on no valid frame structure