code: public static CEMI fromEmiBusmon(final byte[] frame) throws KNXFormatException
  	{
  		// check for minimum busmon frame length
  		if (frame.length < 4)
  			throw new KNXFormatException("EMI frame too short");
  		final int mc = frame[0] & 0xff;
  		if (mc != CEMIBusMon.MC_BUSMON_IND && mc != Emi1_LBusmon_ind)
  			throw new KNXFormatException("not a busmonitor frame with msg code 0x" + Integer.toHexString(mc));
  		return CEMIBusMon.newWithStatus(frame[1] & 0xff, (frame[2] & 0xff) << 8 | (frame[3] & 0xff),
  				false, Arrays.copyOfRange(frame, 4, frame.length));
  	}
docs: Creates a new cEMI message out of the supplied EMI 1/2 busmonitor frame. This specialization
  for busmonitor frames only is necessary, because EMI 1 has assigned the same message code for
  L-Data.ind and L-Busmon.ind.
  
  @param frame EMI 1/2 frame
  @return the cEMI message
  @throws KNXFormatException if no (valid) EMI structure was found or unsupported EMI message
  code