@Override public void enableListener() { digitalInputOutputPin.removeAllListeners(); digitalInputOutputPin.addListener(this); }
@Override public void setMode(DeviceMode mode) { digitalInputOutputPin.setMode(mode == DeviceMode.DIGITAL_INPUT ? PinMode.DIGITAL_INPUT : PinMode.DIGITAL_OUTPUT); this.mode = mode; }
@Override public void setValue(boolean value) throws RuntimeIOException { if (mode != DeviceMode.DIGITAL_OUTPUT) { throw new IllegalStateException("Can only set output value for digital output pins"); } digitalInputOutputPin.setState(value); }
pin.addListener(new GpioPinListenerDigital() { @Override public void handleGpioPinDigitalStateChangeEvent(GpioPinDigitalStateChangeEvent event) { pin.setMode(PinMode.DIGITAL_OUTPUT); pin.pulse(1000, true); pin.setMode(PinMode.DIGITAL_INPUT); System.out.println(" --> GPIO PIN - RECONFIGURED AS INPUT PIN");
@Override public GpioPinDigitalMultipurpose provisionDigitalMultipurposePin(GpioProvider provider, Pin pin, String name, PinMode mode, PinPullResistance resistance) { // create new GPIO pin instance GpioPinDigitalMultipurpose gpioPin = provisionDigitalMultipurposePin(provider, pin, name, mode); // set the gpio pull resistor if (resistance != null) { gpioPin.setPullResistance(resistance); } // return new new pin instance return gpioPin; }
@Override public void disableListener() { digitalInputOutputPin.removeAllListeners(); } }
@Override public boolean getValue() throws RuntimeIOException { return digitalInputOutputPin.getState().isHigh(); }
@Override protected void closeDevice() throws RuntimeIOException { Logger.debug("closeDevice()"); digitalInputOutputPin.unexport(); GpioFactory.getInstance().unprovisionPin(digitalInputOutputPin); }
@Override public GpioPinDigitalMultipurpose provisionDigitalMultipurposePin(GpioProvider provider, Pin pin, String name, PinMode mode, PinPullResistance resistance) { // create new GPIO pin instance GpioPinDigitalMultipurpose gpioPin = provisionDigitalMultipurposePin(provider, pin, name, mode); // set the gpio pull resistor if (resistance != null) { gpioPin.setPullResistance(resistance); } // return new new pin instance return gpioPin; }