WPILibC++  2019.3.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
DIO Functions

Functions

HAL_DigitalHandle HAL_InitializeDIOPort (HAL_PortHandle portHandle, HAL_Bool input, int32_t *status)
 Creates a new instance of a digital port. More...
 
HAL_Bool HAL_CheckDIOChannel (int32_t channel)
 Checks if a DIO channel is valid. More...
 
void HAL_FreeDIOPort (HAL_DigitalHandle dioPortHandle)
 
HAL_DigitalPWMHandle HAL_AllocateDigitalPWM (int32_t *status)
 Allocates a DO PWM Generator. More...
 
void HAL_FreeDigitalPWM (HAL_DigitalPWMHandle pwmGenerator, int32_t *status)
 Frees the resource associated with a DO PWM generator. More...
 
void HAL_SetDigitalPWMRate (double rate, int32_t *status)
 Changes the frequency of the DO PWM generator. More...
 
void HAL_SetDigitalPWMDutyCycle (HAL_DigitalPWMHandle pwmGenerator, double dutyCycle, int32_t *status)
 Configures the duty-cycle of the PWM generator. More...
 
void HAL_SetDigitalPWMOutputChannel (HAL_DigitalPWMHandle pwmGenerator, int32_t channel, int32_t *status)
 Configures which DO channel the PWM signal is output on. More...
 
void HAL_SetDIO (HAL_DigitalHandle dioPortHandle, HAL_Bool value, int32_t *status)
 Writes a digital value to a DIO channel. More...
 
void HAL_SetDIODirection (HAL_DigitalHandle dioPortHandle, HAL_Bool input, int32_t *status)
 Sets the direction of a DIO channel. More...
 
HAL_Bool HAL_GetDIO (HAL_DigitalHandle dioPortHandle, int32_t *status)
 Reads a digital value from a DIO channel. More...
 
HAL_Bool HAL_GetDIODirection (HAL_DigitalHandle dioPortHandle, int32_t *status)
 Reads the direction of a DIO channel. More...
 
void HAL_Pulse (HAL_DigitalHandle dioPortHandle, double pulseLength, int32_t *status)
 Generates a single digital pulse. More...
 
HAL_Bool HAL_IsPulsing (HAL_DigitalHandle dioPortHandle, int32_t *status)
 Checks a DIO line to see if it is currently generating a pulse. More...
 
HAL_Bool HAL_IsAnyPulsing (int32_t *status)
 Checks if any DIO line is currently generating a pulse. More...
 
void HAL_SetFilterSelect (HAL_DigitalHandle dioPortHandle, int32_t filterIndex, int32_t *status)
 Writes the filter index from the FPGA. More...
 
int32_t HAL_GetFilterSelect (HAL_DigitalHandle dioPortHandle, int32_t *status)
 Reads the filter index from the FPGA. More...
 
void HAL_SetFilterPeriod (int32_t filterIndex, int64_t value, int32_t *status)
 Sets the filter period for the specified filter index. More...
 
int64_t HAL_GetFilterPeriod (int32_t filterIndex, int32_t *status)
 Gets the filter period for the specified filter index. More...
 

Detailed Description

Function Documentation

HAL_DigitalPWMHandle HAL_AllocateDigitalPWM ( int32_t *  status)

Allocates a DO PWM Generator.

Returns
the allocated digital PWM handle
HAL_Bool HAL_CheckDIOChannel ( int32_t  channel)

Checks if a DIO channel is valid.

Parameters
channelthe channel number to check
Returns
true if the channel is correct, otherwise false
void HAL_FreeDigitalPWM ( HAL_DigitalPWMHandle  pwmGenerator,
int32_t *  status 
)

Frees the resource associated with a DO PWM generator.

Parameters
pwmGeneratorthe digital PWM handle
HAL_Bool HAL_GetDIO ( HAL_DigitalHandle  dioPortHandle,
int32_t *  status 
)

Reads a digital value from a DIO channel.

Parameters
dioPortHandlethe digital port handle
Returns
the state of the specified channel
HAL_Bool HAL_GetDIODirection ( HAL_DigitalHandle  dioPortHandle,
int32_t *  status 
)

Reads the direction of a DIO channel.

Parameters
dioPortHandlethe digital port handle
Returns
true for input, false for output
int64_t HAL_GetFilterPeriod ( int32_t  filterIndex,
int32_t *  status 
)

Gets the filter period for the specified filter index.

Gets the filter period in FPGA cycles. Even though there are 2 different filter index domains (MXP vs HDR), ignore that distinction for now since it compilicates the interface. Set status to NiFpga_Status_SoftwareFault if the filter values miss-match.

Parameters
filterIndexthe filter index, 0 - 2
valuethe number of cycles that the signal must not transition to be counted as a transition.
int32_t HAL_GetFilterSelect ( HAL_DigitalHandle  dioPortHandle,
int32_t *  status 
)

Reads the filter index from the FPGA.

Gets the filter index used to filter out short pulses.

Parameters
dioPortHandlethe digital port handle
Returns
filterIndex the filter index (Must be in the range 0 - 3, where 0 means "none" and 1 - 3 means filter # filterIndex - 1)
HAL_DigitalHandle HAL_InitializeDIOPort ( HAL_PortHandle  portHandle,
HAL_Bool  input,
int32_t *  status 
)

Creates a new instance of a digital port.

Parameters
portHandlethe port handle to create from
inputtrue for input, false for output
Returns
the created digital handle
HAL_Bool HAL_IsAnyPulsing ( int32_t *  status)

Checks if any DIO line is currently generating a pulse.

Returns
true if a pulse on some line is in progress
HAL_Bool HAL_IsPulsing ( HAL_DigitalHandle  dioPortHandle,
int32_t *  status 
)

Checks a DIO line to see if it is currently generating a pulse.

Returns
true if a pulse is in progress, otherwise false
void HAL_Pulse ( HAL_DigitalHandle  dioPortHandle,
double  pulseLength,
int32_t *  status 
)

Generates a single digital pulse.

Write a pulse to the specified digital output channel. There can only be a single pulse going at any time.

Parameters
dioPortHandlethe digital port handle
pulseLengththe active length of the pulse (in seconds)
void HAL_SetDigitalPWMDutyCycle ( HAL_DigitalPWMHandle  pwmGenerator,
double  dutyCycle,
int32_t *  status 
)

Configures the duty-cycle of the PWM generator.

Parameters
pwmGeneratorthe digital PWM handle
dutyCyclethe percent duty cycle to output [0..1]
void HAL_SetDigitalPWMOutputChannel ( HAL_DigitalPWMHandle  pwmGenerator,
int32_t  channel,
int32_t *  status 
)

Configures which DO channel the PWM signal is output on.

Parameters
pwmGeneratorthe digital PWM handle
channelthe channel to output on
void HAL_SetDigitalPWMRate ( double  rate,
int32_t *  status 
)

Changes the frequency of the DO PWM generator.

The valid range is from 0.6 Hz to 19 kHz.

The frequency resolution is logarithmic.

Parameters
ratethe frequency to output all digital output PWM signals
void HAL_SetDIO ( HAL_DigitalHandle  dioPortHandle,
HAL_Bool  value,
int32_t *  status 
)

Writes a digital value to a DIO channel.

Parameters
dioPortHandlethe digital port handle
valuethe state to set the digital channel (if it is configured as an output)
void HAL_SetDIODirection ( HAL_DigitalHandle  dioPortHandle,
HAL_Bool  input,
int32_t *  status 
)

Sets the direction of a DIO channel.

Parameters
dioPortHandlethe digital port handle
inputtrue to set input, false for output
void HAL_SetFilterPeriod ( int32_t  filterIndex,
int64_t  value,
int32_t *  status 
)

Sets the filter period for the specified filter index.

Sets the filter period in FPGA cycles. Even though there are 2 different filter index domains (MXP vs HDR), ignore that distinction for now since it compilicates the interface. That can be changed later.

Parameters
filterIndexthe filter index, 0 - 2
valuethe number of cycles that the signal must not transition to be counted as a transition.
void HAL_SetFilterSelect ( HAL_DigitalHandle  dioPortHandle,
int32_t  filterIndex,
int32_t *  status 
)

Writes the filter index from the FPGA.

Set the filter index used to filter out short pulses.

Parameters
dioPortHandlethe digital port handle
filterIndexthe filter index (Must be in the range 0 - 3, where 0 means "none" and 1 - 3 means filter # filterIndex - 1)