/** * Copyright (c) 2010-2016 by the respective copyright holders. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package org.openhab.binding.knx.config; import org.openhab.core.types.Type; import tuwien.auto.calimero.datapoint.Datapoint; import tuwien.auto.calimero.process.ProcessEvent; /** * This interface must be implemented by classes that provide a type mapping * between openHAB and KNX. * When a command or status update is sent to an item on the openHAB event bus, * it must be clear, in which format it must be sent to KNX and vice versa. * * @author Kai Kreuzer * @since 0.3.0 * */ public interface KNXTypeMapper { /** * maps an openHAB command/state to a string value which correspond to its datapoint in KNX * * @param type a command or state * @param dpt the corresponding datapoint type * @return datapoint value as a string */ public String toDPTValue(Type type, String dpt); /** * maps a datapoint value to an openHAB command or state * * @param datapoint the source datapoint * @param data the datapoint value as an ASDU byte array (see <code>{@link ProcessEvent}.getASDU()</code>) * @return a command or state of openHAB */ public Type toType(Datapoint datapoint, byte[] data); }