code: public static ServiceRequest getServiceRequest(final KNXnetIPHeader h, final byte[] data,
  		final int offset) throws KNXFormatException
  	{
  		return new ServiceRequest(h.getServiceType(), data, offset, h.getTotalLength() - h.getStructLength());
  	}
docs: Creates a new service request using the <code>data</code> byte array and
  information from the KNXnet/IP header.
  
  @param h KNXnet/IP header associated with <code>data</code>
  @param data byte array containing the data following the KNXnet/IP header in the
  message structure
  @param offset offset into <code>data</code> pointing at the begin of usable data
  @return the new service request
  @throws KNXFormatException on failure creating request, for example if data buffer
  is too short for the request, on unsupported service type or connection
  header structure