Class DigitalOutput

  • All Implemented Interfaces:
    Sendable, AutoCloseable

    public class DigitalOutput
    extends SendableBase
    Class to write digital outputs. This class will write digital outputs. Other devices that are implemented elsewhere will automatically allocate digital inputs and outputs as required.
    • Constructor Detail

      • DigitalOutput

        public DigitalOutput​(int channel)
        Create an instance of a digital output. Create an instance of a digital output given a channel.
        Parameters:
        channel - the DIO channel to use for the digital output. 0-9 are on-board, 10-25 are on the MXP
    • Method Detail

      • set

        public void set​(boolean value)
        Set the value of a digital output.
        Parameters:
        value - true is on, off is false
      • get

        public boolean get()
        Gets the value being output from the Digital Output.
        Returns:
        the state of the digital output.
      • getChannel

        public int getChannel()
        Get the GPIO channel number that this object represents.
        Returns:
        The GPIO channel number.
      • pulse

        public void pulse​(double pulseLength)
        Generate a single pulse. There can only be a single pulse going at any time.
        Parameters:
        pulseLength - The length of the pulse.
      • isPulsing

        public boolean isPulsing()
        Determine if the pulse is still going. Determine if a previously started pulse is still going.
        Returns:
        true if pulsing
      • setPWMRate

        public void setPWMRate​(double rate)
        Change the PWM frequency of the PWM output on a Digital Output line.

        The valid range is from 0.6 Hz to 19 kHz. The frequency resolution is logarithmic.

        There is only one PWM frequency for all channels.

        Parameters:
        rate - The frequency to output all digital output PWM signals.
      • enablePWM

        public void enablePWM​(double initialDutyCycle)
        Enable a PWM Output on this line.

        Allocate one of the 6 DO PWM generator resources.

        Supply the initial duty-cycle to output so as to avoid a glitch when first starting.

        The resolution of the duty cycle is 8-bit for low frequencies (1kHz or less) but is reduced the higher the frequency of the PWM signal is.

        Parameters:
        initialDutyCycle - The duty-cycle to start generating. [0..1]
      • disablePWM

        public void disablePWM()
        Change this line from a PWM output back to a static Digital Output line.

        Free up one of the 6 DO PWM generator resources that were in use.

      • updateDutyCycle

        public void updateDutyCycle​(double dutyCycle)
        Change the duty-cycle that is being generated on the line.

        The resolution of the duty cycle is 8-bit for low frequencies (1kHz or less) but is reduced the higher the frequency of the PWM signal is.

        Parameters:
        dutyCycle - The duty-cycle to change to. [0..1]
      • initSendable

        public void initSendable​(SendableBuilder builder)
        Description copied from interface: Sendable
        Initializes this Sendable object.
        Parameters:
        builder - sendable builder