code: public static byte[] toEmi(final CEMILData msg)
  	{
  		int mc = msg.getMessageCode();
  		final KNXAddress dst = msg.getDestination();
  		// find out if we need L-Data system broadcast
  		if (msg.isSystemBroadcast())
  			mc = Emi1_LSysBcast_req;
  		if (dst.getRawAddress() == 0) {
  			// APCI domain address.read is always system broadcast
  			if (DataUnitBuilder.getAPDUService(msg.getPayload()) == 0x03e1)
  				mc = Emi1_LSysBcast_req;
  		}
  
  		final Priority p = msg.getPriority();
  		final boolean repeat = msg.isRepetition();
  		final boolean ackRequest = msg.isAckRequested();
  		final boolean posCon = msg.isPositiveConfirmation();
  		final int hopCount = msg.getHopCount();
  		final byte[] nsdu = msg.getPayload();
  		return toEmi(mc, dst, p, repeat, ackRequest, posCon, hopCount, nsdu);
  	}
docs: Returns an EMI1/EMI2-formatted message of the supplied cEMI L-Data message.
  
  @param msg a cEMI L-Data message
  @return byte array containing the link layer message in EMI format
  @throws KNXIllegalArgumentException on unsupported ASDU length