Class DigitalOutputDevice

java.lang.Object
com.diozero.api.GpioDevice
com.diozero.api.DigitalOutputDevice
All Implemented Interfaces:
OutputDeviceInterface, Closeable, AutoCloseable
Direct Known Subclasses:
Buzzer, LED

public class DigitalOutputDevice
extends GpioDevice
implements OutputDeviceInterface
Provides generic digital (on/off) output control with support for active high and low logic.
  • Field Details

  • Constructor Details

    • DigitalOutputDevice

      public DigitalOutputDevice​(int gpio) throws RuntimeIOException
      Defaults to active high logic, initial value is off.
      Parameters:
      gpio - GPIO to which the output device is connected.
      Throws:
      RuntimeIOException - If an I/O error occurred.
    • DigitalOutputDevice

      public DigitalOutputDevice​(int gpio, boolean activeHigh, boolean initialValue) throws RuntimeIOException
      Parameters:
      gpio - GPIO to which the output device is connected.
      activeHigh - If true then setting the value to true will turn on the connected device.
      initialValue - Initial output value.
      Throws:
      RuntimeIOException - If an I/O error occurred.
    • DigitalOutputDevice

      public DigitalOutputDevice​(GpioDeviceFactoryInterface deviceFactory, int gpio, boolean activeHigh, boolean initialValue) throws RuntimeIOException
      Parameters:
      deviceFactory - Device factory to use to construct the device.
      gpio - GPIO to which the output device is connected.
      activeHigh - If true then setting the value to true will turn on the connected device.
      initialValue - Initial output value.
      Throws:
      RuntimeIOException - If an I/O error occurred.
    • DigitalOutputDevice

      public DigitalOutputDevice​(GpioDeviceFactoryInterface deviceFactory, PinInfo pinInfo, boolean activeHigh, boolean initialValue) throws RuntimeIOException
      Parameters:
      deviceFactory - Device factory to use to construct the device.
      pinInfo - Information about the GPIO pin to which the output device is connected.
      activeHigh - If true then setting the value to true will turn on the connected device.
      initialValue - Initial output value.
      Throws:
      RuntimeIOException - If an I/O error occurred.
  • Method Details

    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
    • on

      public void on() throws RuntimeIOException
      Turn on the device.
      Throws:
      RuntimeIOException - If an I/O error occurred.
    • off

      public void off() throws RuntimeIOException
      Turn off the device.
      Throws:
      RuntimeIOException - If an I/O error occurred.
    • toggle

      public void toggle() throws RuntimeIOException
      Toggle the state of the device.
      Throws:
      RuntimeIOException - If an I/O error occurred.
    • isOn

      public boolean isOn() throws RuntimeIOException
      Get the device on / off status.
      Returns:
      Returns true if the device is currently on.
      Throws:
      RuntimeIOException - If an I/O error occurred.
    • setOn

      public void setOn​(boolean on) throws RuntimeIOException
      Turn the device on or off.
      Parameters:
      on - New on/off value.
      Throws:
      RuntimeIOException - If an I/O error occurred.
    • setValueUnsafe

      public void setValueUnsafe​(boolean value) throws RuntimeIOException
      Unsafe operation that has no synchronisation checks and doesn't compensate for active low logic. Included primarily for performance tests.
      Parameters:
      value - The new value
      Throws:
      RuntimeIOException - If an I/O error occurs
    • setValue

      public void setValue​(float value)
      Set the output value to true if value != 0
      Specified by:
      setValue in interface OutputDeviceInterface
      Parameters:
      value - The new value
    • onOffLoop

      public void onOffLoop​(float onTime, float offTime, int n, boolean background, Action stopAction) throws RuntimeIOException
      Toggle the device on-off.
      Parameters:
      onTime - On time in seconds.
      offTime - Off time in seconds.
      n - Number of iterations. Set to <0 to blink indefinitely.
      background - If true start a background thread to control the blink and return immediately. If false, only return once the blink iterations have finished.
      stopAction - Action to perform when the loop finishes
      Throws:
      RuntimeIOException - If an I/O error occurs