WPILibC++ 2023.4.3-108-ge5452e3
frc::DigitalOutput Class Reference

Class to write to digital outputs. More...

#include <frc/DigitalOutput.h>

Inheritance diagram for frc::DigitalOutput:
frc::DigitalSource wpi::Sendable wpi::SendableHelper< DigitalOutput >

Public Member Functions

 DigitalOutput (int channel)
 Create an instance of a digital output. More...
 
 ~DigitalOutput () override
 
 DigitalOutput (DigitalOutput &&)=default
 
DigitalOutputoperator= (DigitalOutput &&)=default
 
void Set (bool value)
 Set the value of a digital output. More...
 
bool Get () const
 Gets the value being output from the Digital Output. More...
 
HAL_Handle GetPortHandleForRouting () const override
 
AnalogTriggerType GetAnalogTriggerTypeForRouting () const override
 
bool IsAnalogTrigger () const override
 Is source an AnalogTrigger. More...
 
int GetChannel () const override
 
void Pulse (units::second_t pulseLength)
 Output a single pulse on the digital output line. More...
 
bool IsPulsing () const
 Determine if the pulse is still going. More...
 
void SetPWMRate (double rate)
 Change the PWM frequency of the PWM output on a Digital Output line. More...
 
void EnablePPS (double dutyCycle)
 Enable a PWM PPS (Pulse Per Second) Output on this line. More...
 
void EnablePWM (double initialDutyCycle)
 Enable a PWM Output on this line. More...
 
void DisablePWM ()
 Change this line from a PWM output back to a static Digital Output line. More...
 
void UpdateDutyCycle (double dutyCycle)
 Change the duty-cycle that is being generated on the line. More...
 
void SetSimDevice (HAL_SimDeviceHandle device)
 Indicates this output is used by a simulated device. More...
 
void InitSendable (wpi::SendableBuilder &builder) override
 Initializes this Sendable object. More...
 
- Public Member Functions inherited from frc::DigitalSource
 DigitalSource ()=default
 
 DigitalSource (DigitalSource &&)=default
 
DigitalSourceoperator= (DigitalSource &&)=default
 
virtual HAL_Handle GetPortHandleForRouting () const =0
 
virtual AnalogTriggerType GetAnalogTriggerTypeForRouting () const =0
 
virtual bool IsAnalogTrigger () const =0
 
virtual int GetChannel () const =0
 
- Public Member Functions inherited from wpi::Sendable
virtual ~Sendable ()=default
 
virtual void InitSendable (SendableBuilder &builder)=0
 Initializes this Sendable object. More...
 
- Public Member Functions inherited from wpi::SendableHelper< DigitalOutput >
 SendableHelper (const SendableHelper &rhs)=default
 
 SendableHelper (SendableHelper &&rhs)
 
SendableHelperoperator= (const SendableHelper &rhs)=default
 
SendableHelperoperator= (SendableHelper &&rhs)
 

Additional Inherited Members

- Protected Member Functions inherited from wpi::SendableHelper< DigitalOutput >
 SendableHelper ()=default
 
 ~SendableHelper ()
 

Detailed Description

Class to write to digital outputs.

Write values to the digital output channels. Other devices implemented elsewhere will allocate channels automatically so for those devices it shouldn't be done here.

Constructor & Destructor Documentation

◆ DigitalOutput() [1/2]

frc::DigitalOutput::DigitalOutput ( int  channel)
explicit

Create an instance of a digital output.

Create a digital output given a channel.

Parameters
channelThe digital channel 0-9 are on-board, 10-25 are on the MXP port

◆ ~DigitalOutput()

frc::DigitalOutput::~DigitalOutput ( )
override

◆ DigitalOutput() [2/2]

frc::DigitalOutput::DigitalOutput ( DigitalOutput &&  )
default

Member Function Documentation

◆ DisablePWM()

void frc::DigitalOutput::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.

◆ EnablePPS()

void frc::DigitalOutput::EnablePPS ( double  dutyCycle)

Enable a PWM PPS (Pulse Per Second) Output on this line.

Allocate one of the 6 DO PWM generator resources from this module.

Supply the duty-cycle to output.

The resolution of the duty cycle is 8-bit.

Parameters
dutyCycleThe duty-cycle to start generating. [0..1]

◆ EnablePWM()

void frc::DigitalOutput::EnablePWM ( double  initialDutyCycle)

Enable a PWM Output on this line.

Allocate one of the 6 DO PWM generator resources from this module.

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
initialDutyCycleThe duty-cycle to start generating. [0..1]

◆ Get()

bool frc::DigitalOutput::Get ( ) const

Gets the value being output from the Digital Output.

Returns
the state of the digital output.

◆ GetAnalogTriggerTypeForRouting()

AnalogTriggerType frc::DigitalOutput::GetAnalogTriggerTypeForRouting ( ) const
overridevirtual
Returns
The type of analog trigger output to be used. 0 for Digitals

Implements frc::DigitalSource.

◆ GetChannel()

int frc::DigitalOutput::GetChannel ( ) const
overridevirtual
Returns
The GPIO channel number that this object represents.

Implements frc::DigitalSource.

◆ GetPortHandleForRouting()

HAL_Handle frc::DigitalOutput::GetPortHandleForRouting ( ) const
overridevirtual
Returns
The HAL Handle to the specified source.

Implements frc::DigitalSource.

◆ InitSendable()

void frc::DigitalOutput::InitSendable ( wpi::SendableBuilder builder)
overridevirtual

Initializes this Sendable object.

Parameters
buildersendable builder

Implements wpi::Sendable.

◆ IsAnalogTrigger()

bool frc::DigitalOutput::IsAnalogTrigger ( ) const
overridevirtual

Is source an AnalogTrigger.

Implements frc::DigitalSource.

◆ IsPulsing()

bool frc::DigitalOutput::IsPulsing ( ) const

Determine if the pulse is still going.

Determine if a previously started pulse is still going.

◆ operator=()

DigitalOutput & frc::DigitalOutput::operator= ( DigitalOutput &&  )
default

◆ Pulse()

void frc::DigitalOutput::Pulse ( units::second_t  pulseLength)

Output a single pulse on the digital output line.

Send a single pulse on the digital output line where the pulse duration is specified in seconds. Maximum of 65535 microseconds.

Parameters
pulseLengthThe pulse length in seconds

◆ Set()

void frc::DigitalOutput::Set ( bool  value)

Set the value of a digital output.

Set the value of a digital output to either one (true) or zero (false).

Parameters
value1 (true) for high, 0 (false) for disabled

◆ SetPWMRate()

void frc::DigitalOutput::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 digital channels.

Parameters
rateThe frequency to output all digital output PWM signals.

◆ SetSimDevice()

void frc::DigitalOutput::SetSimDevice ( HAL_SimDeviceHandle  device)

Indicates this output is used by a simulated device.

Parameters
devicesimulated device handle

◆ UpdateDutyCycle()

void frc::DigitalOutput::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
dutyCycleThe duty-cycle to change to. [0..1]

The documentation for this class was generated from the following file: