/**
* Copyright (c) 2010-2017 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.modbus;
import org.openhab.binding.modbus.internal.ModbusBindingConfig;
import org.openhab.core.binding.BindingProvider;
/**
* This interface is implemented by classes that can map openHAB items to Modbus
* binding types.
*
* Implementing classes should register themselves as a service in order to be
* taken into account.
*
* @author Dmitry Krasnov
* @since 1.1.0
*/
public interface ModbusBindingProvider extends BindingProvider {
/**
* Allowed slave device types "coil" corresponds to discrete output Coils
* (read/write) "discrete" corresponds to discrete input contacts (read
* only) "holding" corresponds to analog output holding registers
* (read/write) "input" corresponds to analog input registers (read only)
*/
static final public String TYPE_COIL = "coil";
static final public String TYPE_DISCRETE = "discrete";
static final public String TYPE_HOLDING = "holding";
static final public String TYPE_INPUT = "input";
static final String[] SLAVE_DATA_TYPES = { TYPE_COIL, TYPE_DISCRETE, TYPE_HOLDING, TYPE_INPUT };
/**
* Value type, primary for "input" type
*/
static final public String VALUE_TYPE_BIT = "bit";
static final public String VALUE_TYPE_INT8 = "int8";
static final public String VALUE_TYPE_UINT8 = "uint8";
static final public String VALUE_TYPE_INT16 = "int16";
static final public String VALUE_TYPE_UINT16 = "uint16";
static final public String VALUE_TYPE_INT32 = "int32";
static final public String VALUE_TYPE_UINT32 = "uint32";
static final public String VALUE_TYPE_FLOAT32 = "float32";
static final public String VALUE_TYPE_INT32_SWAP = "int32_swap";
static final public String VALUE_TYPE_UINT32_SWAP = "uint32_swap";
static final public String VALUE_TYPE_FLOAT32_SWAP = "float32_swap";
static final String[] VALUE_TYPES = { VALUE_TYPE_BIT, VALUE_TYPE_INT8, VALUE_TYPE_UINT8, VALUE_TYPE_INT16,
VALUE_TYPE_UINT16, VALUE_TYPE_INT32, VALUE_TYPE_UINT32, VALUE_TYPE_FLOAT32, VALUE_TYPE_INT32_SWAP,
VALUE_TYPE_UINT32_SWAP, VALUE_TYPE_FLOAT32_SWAP };
/**
* Returns Modbus item configuration
*
* @param itemName item name
* @return Modbus item configuration
*/
ModbusBindingConfig getConfig(String itemName);
}