docs: public byte[] getData(byte[] dst, int offset)
  	{
  		final int end = Math.min(data.length, dst.length - offset);
  		for (int i = 0; i < end; ++i)
  			dst[offset + i] = (byte) data[i];
  		return dst;
  	}
  
  	/* (non-Javadoc)
  	 * @see tuwien.auto.calimero.dptxlator.DPTXlator#getSubTypes()
  	 */
  	public final Map getSubTypes()
  	{
  		return types;
  	}
  
  	/**
  	 * @return the subtypes of the 8 Bit unsigned translator type
  	 * @see DPTXlator#getSubTypesStatic()
  	 */
  	protected static Map getSubTypesStatic()
  	{
  		return types;
  	}
  
  	/**
  	 * Sets a new subtype to use for translating items.
  	 * <p>
  	 * The translator is reset into default state, all currently contained items are
  	 * removed (default value is set).
  	 * 
  	 * @param dptID new subtype ID to set
  	 * @throws KNXFormatException on wrong formatted or not expected (available)
  	 *         <code>dptID</code>
  	 */
  	private void setSubType(String dptID) throws KNXFormatException
  	{
  		setTypeID(types, dptID);
  		data = new short[1];
  	}
  
  	private short fromDPT(short data)
  	{
  		short value = data;
  		if (dpt.equals(DPT_SCALING))
  			value = (short) Math.round(data * 100.0f / 255);
  		else if (dpt.equals(DPT_ANGLE))
  			value = (short) Math.round(data * 360.0f / 255);
  		return value;
  	}
  
  	private String makeString(int index)
  	{
  		return appendUnit(Short.toString(fromDPT(data[index])));
  	}
  
  	protected void toDPT(String value, short[] dst, int index) throws KNXFormatException
  	{
  		try {
  			dst[index] = toDPT(Short.decode(removeUnit(value)).shortValue());
  		}
  		catch (final NumberFormatException e) {
  			throw logThrow(LogLevel.WARN, "wrong value format " + value, null, value);
  		}
  	}
  
  	private short toDPT(int value) throws KNXFormatException
  	{
  		int convert = value;
  		if (dpt.equals(DPT_SCALING))
  			convert = Math.round(value * 255.0f / 100);
  		else if (dpt.equals(DPT_ANGLE))
  			convert = Math.round(value * 255.0f / 360);
  		if (convert < 0 || convert > 255)
  			throw logThrow(LogLevel.WARN, "translation error for " + value,
  				"input value out of range [" + dpt.getLowerValue() + ".."
  					+ dpt.getUpperValue() + "]", Integer.toString(value));
  		return (short) convert;
  	}
  }