Search in sources :

Example 1 with GpioPinDigitalOutput

use of com.pi4j.io.gpio.GpioPinDigitalOutput in project openhab1-addons by openhab.

the class MCP23017Binding method bindGpioPin.

private void bindGpioPin(MCP23017BindingProvider provider, String itemName) {
    try {
        int address = provider.getBusAddress(itemName);
        MCP23017GpioProvider mcp = mcpProviders.get(address);
        if (mcp == null) {
            try {
                mcp = new MCP23017GpioProvider(I2CBus.BUS_1, address);
                mcp.setPollingTime(pollingInterval);
            } catch (UnsupportedBusNumberException ex) {
                throw new IllegalArgumentException("Tried to access not available I2C bus");
            }
            mcpProviders.put(address, mcp);
        }
        Pin pin = provider.getPin(itemName);
        PinMode mode = provider.getPinMode(itemName);
        if (mode.equals(PinMode.DIGITAL_OUTPUT)) {
            GpioPinDigitalOutput output = gpio.provisionDigitalOutputPin(mcp, pin, itemName, provider.getDefaultState(itemName));
            gpioPins.put(itemName, output);
            logger.debug("Provisioned digital output for {}", itemName);
        } else if (mode.equals(PinMode.DIGITAL_INPUT)) {
            GpioPinDigitalInput input = gpio.provisionDigitalInputPin(mcp, pin, itemName, PinPullResistance.OFF);
            input.setDebounce(20);
            input.addListener(this);
            gpioPins.put(itemName, input);
            logger.debug("Provisioned digital input for {}", itemName);
        } else {
            throw new IllegalArgumentException("Invalid Pin Mode in config " + mode.name());
        }
    } catch (IOException exception) {
        logger.error("I/O error {}", exception.getMessage());
    }
}
Also used : GpioPinDigitalOutput(com.pi4j.io.gpio.GpioPinDigitalOutput) GpioPinDigitalInput(com.pi4j.io.gpio.GpioPinDigitalInput) GpioPin(com.pi4j.io.gpio.GpioPin) Pin(com.pi4j.io.gpio.Pin) MCP23017GpioProvider(com.pi4j.gpio.extension.mcp.MCP23017GpioProvider) PinMode(com.pi4j.io.gpio.PinMode) IOException(java.io.IOException) UnsupportedBusNumberException(com.pi4j.io.i2c.I2CFactory.UnsupportedBusNumberException)

Aggregations

MCP23017GpioProvider (com.pi4j.gpio.extension.mcp.MCP23017GpioProvider)1 GpioPin (com.pi4j.io.gpio.GpioPin)1 GpioPinDigitalInput (com.pi4j.io.gpio.GpioPinDigitalInput)1 GpioPinDigitalOutput (com.pi4j.io.gpio.GpioPinDigitalOutput)1 Pin (com.pi4j.io.gpio.Pin)1 PinMode (com.pi4j.io.gpio.PinMode)1 UnsupportedBusNumberException (com.pi4j.io.i2c.I2CFactory.UnsupportedBusNumberException)1 IOException (java.io.IOException)1