Class AbstractDigitalInputDevice

All Implemented Interfaces:
DeviceInterface, DigitalInputDeviceInterface, DeviceEventConsumer<DigitalInputEvent>, AutoCloseable, Consumer<DigitalInputEvent>
Direct Known Subclasses:
DigitalInputDevice, DigitalInputOutputDevice

public abstract class AbstractDigitalInputDevice
extends GpioInputDevice<DigitalInputEvent>
implements DigitalInputDeviceInterface
Abstract base class for low-level GPIO digital input devices.
  • Field Details

    • activeHigh

      protected boolean activeHigh
  • Constructor Details

    • AbstractDigitalInputDevice

      public AbstractDigitalInputDevice​(PinInfo pinInfo, boolean activeHigh)
  • Method Details

    • isActiveHigh

      public boolean isActiveHigh()
      Get active high configuration.
      Returns:
      Returns false if configured as pull-up, true for all other pull up / down options.
    • enableDeviceListener

      protected void enableDeviceListener()
      Specified by:
      enableDeviceListener in class GpioInputDevice<DigitalInputEvent>
    • disableDeviceListener

      protected void disableDeviceListener()
      Specified by:
      disableDeviceListener in class GpioInputDevice<DigitalInputEvent>
    • accept

      public void accept​(DigitalInputEvent event)
      Specified by:
      accept in interface Consumer<DigitalInputEvent>
      Overrides:
      accept in class GpioInputDevice<DigitalInputEvent>
    • whenActivated

      public void whenActivated​(LongConsumer consumer)
      Action to perform when the device state is active.
      Parameters:
      consumer - Callback object to be invoked when activated (long parameter is nanoseconds time).
    • whenDeactivated

      public void whenDeactivated​(LongConsumer consumer)
      Action to perform when the device state is inactive.
      Parameters:
      consumer - Callback object to be invoked when activated (long parameter is nanoseconds time)
    • waitForActive

      public boolean waitForActive() throws InterruptedException
      Wait indefinitely for the device state to go active.
      Returns:
      False if timed out waiting for the specified value, otherwise true.
      Throws:
      InterruptedException - If interrupted while waiting.
    • waitForActive

      public boolean waitForActive​(int timeout) throws InterruptedException
      Wait the specified time period for the device state to go active.
      Parameters:
      timeout - Timeout value if milliseconds, <= 0 is indefinite.
      Returns:
      False if timed out waiting for the specified value, otherwise true.
      Throws:
      InterruptedException - If interrupted while waiting.
    • waitForInactive

      public boolean waitForInactive() throws InterruptedException
      Wait indefinitely for the device state to go inactive.
      Returns:
      False if timed out waiting for the specified value, otherwise true.
      Throws:
      InterruptedException - If interrupted while waiting.
    • waitForInactive

      public boolean waitForInactive​(int timeout) throws InterruptedException
      Wait the specified time period for the device state to go inactive.
      Parameters:
      timeout - Timeout value if milliseconds, <= 0 is indefinite.
      Returns:
      False if timed out waiting for the specified value, otherwise true.
      Throws:
      InterruptedException - If interrupted while waiting.
    • waitForValue

      public boolean waitForValue​(boolean value, int timeout) throws InterruptedException
      Wait the specified time period for the device state to switch to the specified value, not taking into account active high / low logic.
      Parameters:
      value - The desired device state to wait for.
      timeout - Timeout value if milliseconds, <= 0 is indefinite.
      Returns:
      False if timed out waiting for the specified value, otherwise true.
      Throws:
      InterruptedException - If interrupted while waiting.
    • setListener

      protected abstract void setListener()
    • removeListener

      protected abstract void removeListener()