![]() |
WPILibC++ 2025.3.2
|
Classes | |
| struct | HAL_DMASample |
| Buffer for containing all DMA data for a specific sample. More... | |
Enumerations | |
| enum | HAL_DMAReadStatus : int32_t { HAL_DMA_OK = 1 , HAL_DMA_TIMEOUT = 2 , HAL_DMA_ERROR = 3 } |
| The DMA Read Status. More... | |
Functions | |
| HAL_DMAHandle | HAL_InitializeDMA (int32_t *status) |
| Initializes an object for performing DMA transfers. | |
| void | HAL_FreeDMA (HAL_DMAHandle handle) |
| Frees a DMA object. | |
| void | HAL_SetDMAPause (HAL_DMAHandle handle, HAL_Bool pause, int32_t *status) |
| Pauses or unpauses a DMA transfer. | |
| void | HAL_SetDMATimedTrigger (HAL_DMAHandle handle, double periodSeconds, int32_t *status) |
| Sets DMA transfers to occur at a specific timed interval. | |
| void | HAL_SetDMATimedTriggerCycles (HAL_DMAHandle handle, uint32_t cycles, int32_t *status) |
| Sets DMA transfers to occur at a specific timed interval in FPGA cycles. | |
| void | HAL_AddDMAEncoder (HAL_DMAHandle handle, HAL_EncoderHandle encoderHandle, int32_t *status) |
| Adds position data for an encoder to be collected by DMA. | |
| void | HAL_AddDMAEncoderPeriod (HAL_DMAHandle handle, HAL_EncoderHandle encoderHandle, int32_t *status) |
| Adds timer data for an encoder to be collected by DMA. | |
| void | HAL_AddDMACounter (HAL_DMAHandle handle, HAL_CounterHandle counterHandle, int32_t *status) |
| Adds position data for an counter to be collected by DMA. | |
| void | HAL_AddDMACounterPeriod (HAL_DMAHandle handle, HAL_CounterHandle counterHandle, int32_t *status) |
| Adds timer data for an counter to be collected by DMA. | |
| void | HAL_AddDMADigitalSource (HAL_DMAHandle handle, HAL_Handle digitalSourceHandle, int32_t *status) |
| Adds a digital source to be collected by DMA. | |
| void | HAL_AddDMAAnalogInput (HAL_DMAHandle handle, HAL_AnalogInputHandle aInHandle, int32_t *status) |
| Adds an analog input to be collected by DMA. | |
| void | HAL_AddDMAAveragedAnalogInput (HAL_DMAHandle handle, HAL_AnalogInputHandle aInHandle, int32_t *status) |
| Adds averaged data of an analog input to be collected by DMA. | |
| void | HAL_AddDMAAnalogAccumulator (HAL_DMAHandle handle, HAL_AnalogInputHandle aInHandle, int32_t *status) |
| Adds accumulator data of an analog input to be collected by DMA. | |
| void | HAL_AddDMADutyCycle (HAL_DMAHandle handle, HAL_DutyCycleHandle dutyCycleHandle, int32_t *status) |
| Adds a duty cycle input to be collected by DMA. | |
| int32_t | HAL_SetDMAExternalTrigger (HAL_DMAHandle handle, HAL_Handle digitalSourceHandle, HAL_AnalogTriggerType analogTriggerType, HAL_Bool rising, HAL_Bool falling, int32_t *status) |
| Sets DMA transfers to occur on an external trigger. | |
| void | HAL_ClearDMASensors (HAL_DMAHandle handle, int32_t *status) |
| Clear all sensors from the DMA collection list. | |
| void | HAL_ClearDMAExternalTriggers (HAL_DMAHandle handle, int32_t *status) |
| Clear all external triggers from the DMA trigger list. | |
| void | HAL_StartDMA (HAL_DMAHandle handle, int32_t queueDepth, int32_t *status) |
| Starts DMA Collection. | |
| void | HAL_StopDMA (HAL_DMAHandle handle, int32_t *status) |
| Stops DMA Collection. | |
| void * | HAL_GetDMADirectPointer (HAL_DMAHandle handle) |
| Gets the direct pointer to the DMA object. | |
| enum HAL_DMAReadStatus | HAL_ReadDMADirect (void *dmaPointer, HAL_DMASample *dmaSample, double timeoutSeconds, int32_t *remainingOut, int32_t *status) |
| Reads a DMA sample using a direct DMA pointer. | |
| enum HAL_DMAReadStatus | HAL_ReadDMA (HAL_DMAHandle handle, HAL_DMASample *dmaSample, double timeoutSeconds, int32_t *remainingOut, int32_t *status) |
| Reads a DMA sample from the queue. | |
| uint64_t | HAL_GetDMASampleTime (const HAL_DMASample *dmaSample, int32_t *status) |
| Returns the timestamp of the sample. | |
| int32_t | HAL_GetDMASampleEncoderRaw (const HAL_DMASample *dmaSample, HAL_EncoderHandle encoderHandle, int32_t *status) |
| Returns the raw distance data for an encoder from the sample. | |
| int32_t | HAL_GetDMASampleCounter (const HAL_DMASample *dmaSample, HAL_CounterHandle counterHandle, int32_t *status) |
| Returns the distance data for an counter from the sample. | |
| int32_t | HAL_GetDMASampleEncoderPeriodRaw (const HAL_DMASample *dmaSample, HAL_EncoderHandle encoderHandle, int32_t *status) |
| Returns the raw period data for an encoder from the sample. | |
| int32_t | HAL_GetDMASampleCounterPeriod (const HAL_DMASample *dmaSample, HAL_CounterHandle counterHandle, int32_t *status) |
| Returns the period data for an counter from the sample. | |
| HAL_Bool | HAL_GetDMASampleDigitalSource (const HAL_DMASample *dmaSample, HAL_Handle dSourceHandle, int32_t *status) |
| Returns the state of a digital source from the sample. | |
| int32_t | HAL_GetDMASampleAnalogInputRaw (const HAL_DMASample *dmaSample, HAL_AnalogInputHandle aInHandle, int32_t *status) |
| Returns the raw analog data for an analog input from the sample. | |
| int32_t | HAL_GetDMASampleAveragedAnalogInputRaw (const HAL_DMASample *dmaSample, HAL_AnalogInputHandle aInHandle, int32_t *status) |
| Returns the raw averaged analog data for an analog input from the sample. | |
| void | HAL_GetDMASampleAnalogAccumulator (const HAL_DMASample *dmaSample, HAL_AnalogInputHandle aInHandle, int64_t *count, int64_t *value, int32_t *status) |
| Returns the analog accumulator data for an analog input from the sample. | |
| int32_t | HAL_GetDMASampleDutyCycleOutputRaw (const HAL_DMASample *dmaSample, HAL_DutyCycleHandle dutyCycleHandle, int32_t *status) |
| Returns the raw duty cycle input ratio data from the sample. | |
| enum HAL_DMAReadStatus : int32_t |
| void HAL_AddDMAAnalogAccumulator | ( | HAL_DMAHandle | handle, |
| HAL_AnalogInputHandle | aInHandle, | ||
| int32_t * | status ) |
Adds accumulator data of an analog input to be collected by DMA.
This can only be called if DMA is not started.
| [in] | handle | the dma handle |
| [in] | aInHandle | the analog input to add |
| [out] | status | Error status variable. 0 on success. |
| void HAL_AddDMAAnalogInput | ( | HAL_DMAHandle | handle, |
| HAL_AnalogInputHandle | aInHandle, | ||
| int32_t * | status ) |
Adds an analog input to be collected by DMA.
This can only be called if DMA is not started.
| [in] | handle | the dma handle |
| [in] | aInHandle | the analog input to add |
| [out] | status | Error status variable. 0 on success. |
| void HAL_AddDMAAveragedAnalogInput | ( | HAL_DMAHandle | handle, |
| HAL_AnalogInputHandle | aInHandle, | ||
| int32_t * | status ) |
Adds averaged data of an analog input to be collected by DMA.
This can only be called if DMA is not started.
| [in] | handle | the dma handle |
| [in] | aInHandle | the analog input to add |
| [out] | status | Error status variable. 0 on success. |
| void HAL_AddDMACounter | ( | HAL_DMAHandle | handle, |
| HAL_CounterHandle | counterHandle, | ||
| int32_t * | status ) |
Adds position data for an counter to be collected by DMA.
This can only be called if DMA is not started.
| [in] | handle | the dma handle |
| [in] | counterHandle | the counter to add |
| [out] | status | Error status variable. 0 on success. |
| void HAL_AddDMACounterPeriod | ( | HAL_DMAHandle | handle, |
| HAL_CounterHandle | counterHandle, | ||
| int32_t * | status ) |
Adds timer data for an counter to be collected by DMA.
This can only be called if DMA is not started.
| [in] | handle | the dma handle |
| [in] | counterHandle | the counter to add |
| [out] | status | Error status variable. 0 on success. |
| void HAL_AddDMADigitalSource | ( | HAL_DMAHandle | handle, |
| HAL_Handle | digitalSourceHandle, | ||
| int32_t * | status ) |
Adds a digital source to be collected by DMA.
This can only be called if DMA is not started.
| [in] | handle | the dma handle |
| [in] | digitalSourceHandle | the digital source to add |
| [out] | status | Error status variable. 0 on success. |
| void HAL_AddDMADutyCycle | ( | HAL_DMAHandle | handle, |
| HAL_DutyCycleHandle | dutyCycleHandle, | ||
| int32_t * | status ) |
Adds a duty cycle input to be collected by DMA.
This can only be called if DMA is not started.
| [in] | handle | the dma handle |
| [in] | dutyCycleHandle | the duty cycle input to add |
| [out] | status | Error status variable. 0 on success. |
| void HAL_AddDMAEncoder | ( | HAL_DMAHandle | handle, |
| HAL_EncoderHandle | encoderHandle, | ||
| int32_t * | status ) |
Adds position data for an encoder to be collected by DMA.
This can only be called if DMA is not started.
| [in] | handle | the dma handle |
| [in] | encoderHandle | the encoder to add |
| [out] | status | Error status variable. 0 on success. |
| void HAL_AddDMAEncoderPeriod | ( | HAL_DMAHandle | handle, |
| HAL_EncoderHandle | encoderHandle, | ||
| int32_t * | status ) |
Adds timer data for an encoder to be collected by DMA.
This can only be called if DMA is not started.
| [in] | handle | the dma handle |
| [in] | encoderHandle | the encoder to add |
| [out] | status | Error status variable. 0 on success. |
| void HAL_ClearDMAExternalTriggers | ( | HAL_DMAHandle | handle, |
| int32_t * | status ) |
Clear all external triggers from the DMA trigger list.
This can only be called if DMA is not started.
| [in] | handle | the dma handle |
| [out] | status | Error status variable. 0 on success. |
| void HAL_ClearDMASensors | ( | HAL_DMAHandle | handle, |
| int32_t * | status ) |
Clear all sensors from the DMA collection list.
This can only be called if DMA is not started.
| [in] | handle | the dma handle |
| [out] | status | Error status variable. 0 on success. |
| void HAL_FreeDMA | ( | HAL_DMAHandle | handle | ) |
Frees a DMA object.
| handle | the dma handle |
| void * HAL_GetDMADirectPointer | ( | HAL_DMAHandle | handle | ) |
Gets the direct pointer to the DMA object.
This is only to be used if absolute maximum performance is required. This will only be valid until the handle is freed.
| handle | the dma handle |
| void HAL_GetDMASampleAnalogAccumulator | ( | const HAL_DMASample * | dmaSample, |
| HAL_AnalogInputHandle | aInHandle, | ||
| int64_t * | count, | ||
| int64_t * | value, | ||
| int32_t * | status ) |
Returns the analog accumulator data for an analog input from the sample.
| [in] | dmaSample | the sample to read from |
| [in] | aInHandle | the analog input handle |
| [in] | count | the accumulator count |
| [in] | value | the accumulator value |
| [out] | status | Error status variable. 0 on success. |
| int32_t HAL_GetDMASampleAnalogInputRaw | ( | const HAL_DMASample * | dmaSample, |
| HAL_AnalogInputHandle | aInHandle, | ||
| int32_t * | status ) |
Returns the raw analog data for an analog input from the sample.
This can be scaled with HAL_GetAnalogValueToVolts to match GetVoltage().
| [in] | dmaSample | the sample to read from |
| [in] | aInHandle | the analog input handle |
| [out] | status | Error status variable. 0 on success. |
| int32_t HAL_GetDMASampleAveragedAnalogInputRaw | ( | const HAL_DMASample * | dmaSample, |
| HAL_AnalogInputHandle | aInHandle, | ||
| int32_t * | status ) |
Returns the raw averaged analog data for an analog input from the sample.
This can be scaled with HAL_GetAnalogValueToVolts to match GetAveragedVoltage().
| [in] | dmaSample | the sample to read from |
| [in] | aInHandle | the analog input handle |
| [out] | status | Error status variable. 0 on success. |
| int32_t HAL_GetDMASampleCounter | ( | const HAL_DMASample * | dmaSample, |
| HAL_CounterHandle | counterHandle, | ||
| int32_t * | status ) |
Returns the distance data for an counter from the sample.
| [in] | dmaSample | the sample to read from |
| [in] | counterHandle | the counter handle |
| [out] | status | Error status variable. 0 on success. |
| int32_t HAL_GetDMASampleCounterPeriod | ( | const HAL_DMASample * | dmaSample, |
| HAL_CounterHandle | counterHandle, | ||
| int32_t * | status ) |
Returns the period data for an counter from the sample.
| [in] | dmaSample | the sample to read from |
| [in] | counterHandle | the counter handle |
| [out] | status | Error status variable. 0 on success. |
| HAL_Bool HAL_GetDMASampleDigitalSource | ( | const HAL_DMASample * | dmaSample, |
| HAL_Handle | dSourceHandle, | ||
| int32_t * | status ) |
Returns the state of a digital source from the sample.
| [in] | dmaSample | the sample to read from |
| [in] | dSourceHandle | the digital source handle |
| [out] | status | Error status variable. 0 on success. |
| int32_t HAL_GetDMASampleDutyCycleOutputRaw | ( | const HAL_DMASample * | dmaSample, |
| HAL_DutyCycleHandle | dutyCycleHandle, | ||
| int32_t * | status ) |
Returns the raw duty cycle input ratio data from the sample.
Use HAL_GetDutyCycleOutputScaleFactor to scale this to a percentage.
| [in] | dmaSample | the sample to read from |
| [in] | dutyCycleHandle | the duty cycle handle |
| [out] | status | Error status variable. 0 on success. |
| int32_t HAL_GetDMASampleEncoderPeriodRaw | ( | const HAL_DMASample * | dmaSample, |
| HAL_EncoderHandle | encoderHandle, | ||
| int32_t * | status ) |
Returns the raw period data for an encoder from the sample.
This can be scaled with DistancePerPulse and DecodingScaleFactor to match the result of GetRate()
| [in] | dmaSample | the sample to read from |
| [in] | encoderHandle | the encoder handle |
| [out] | status | Error status variable. 0 on success. |
| int32_t HAL_GetDMASampleEncoderRaw | ( | const HAL_DMASample * | dmaSample, |
| HAL_EncoderHandle | encoderHandle, | ||
| int32_t * | status ) |
Returns the raw distance data for an encoder from the sample.
This can be scaled with DistancePerPulse and DecodingScaleFactor to match the result of GetDistance()
| [in] | dmaSample | the sample to read from |
| [in] | encoderHandle | the encoder handle |
| [out] | status | Error status variable. 0 on success. |
| uint64_t HAL_GetDMASampleTime | ( | const HAL_DMASample * | dmaSample, |
| int32_t * | status ) |
Returns the timestamp of the sample.
This is in the same time domain as HAL_GetFPGATime().
| [in] | dmaSample | the sample to read from |
| [out] | status | Error status variable. 0 on success. |
| HAL_DMAHandle HAL_InitializeDMA | ( | int32_t * | status | ) |
Initializes an object for performing DMA transfers.
| [out] | status | Error status variable. 0 on success. |
| enum HAL_DMAReadStatus HAL_ReadDMA | ( | HAL_DMAHandle | handle, |
| HAL_DMASample * | dmaSample, | ||
| double | timeoutSeconds, | ||
| int32_t * | remainingOut, | ||
| int32_t * | status ) |
Reads a DMA sample from the queue.
| [in] | handle | the dma handle |
| [in] | dmaSample | the sample object to place data into |
| [in] | timeoutSeconds | the time to wait for data to be queued before timing out |
| [in] | remainingOut | the number of samples remaining in the queue |
| [out] | status | Error status variable. 0 on success. |
| enum HAL_DMAReadStatus HAL_ReadDMADirect | ( | void * | dmaPointer, |
| HAL_DMASample * | dmaSample, | ||
| double | timeoutSeconds, | ||
| int32_t * | remainingOut, | ||
| int32_t * | status ) |
Reads a DMA sample using a direct DMA pointer.
See HAL_ReadDMA for full documentation.
| [in] | dmaPointer | direct DMA pointer |
| [in] | dmaSample | the sample object to place data into |
| [in] | timeoutSeconds | the time to wait for data to be queued before timing out |
| [in] | remainingOut | the number of samples remaining in the queue |
| [out] | status | Error status variable. 0 on success. |
| int32_t HAL_SetDMAExternalTrigger | ( | HAL_DMAHandle | handle, |
| HAL_Handle | digitalSourceHandle, | ||
| HAL_AnalogTriggerType | analogTriggerType, | ||
| HAL_Bool | rising, | ||
| HAL_Bool | falling, | ||
| int32_t * | status ) |
Sets DMA transfers to occur on an external trigger.
This will remove any timed trigger set. Only timed or external is supported.
Up to 8 external triggers are currently supported.
This can only be called if DMA is not started.
| [in] | handle | the dma handle |
| [in] | digitalSourceHandle | the digital source handle (either a HAL_AnalogTriggerHandle or a HAL_DigitalHandle) |
| [in] | analogTriggerType | the analog trigger type if the source is an analog trigger |
| [in] | rising | true to trigger on rising edge |
| [in] | falling | true to trigger on falling edge |
| [out] | status | Error status variable. 0 on success. |
| void HAL_SetDMAPause | ( | HAL_DMAHandle | handle, |
| HAL_Bool | pause, | ||
| int32_t * | status ) |
Pauses or unpauses a DMA transfer.
This can only be called while DMA is running.
| [in] | handle | the dma handle |
| [in] | pause | true to pause transfers, false to resume. |
| [out] | status | Error status variable. 0 on success. |
| void HAL_SetDMATimedTrigger | ( | HAL_DMAHandle | handle, |
| double | periodSeconds, | ||
| int32_t * | status ) |
Sets DMA transfers to occur at a specific timed interval.
This will remove any external triggers. Only timed or external is supported.
Only 1 timed period is supported.
This can only be called if DMA is not started.
| [in] | handle | the dma handle |
| [in] | periodSeconds | the period to trigger in seconds |
| [out] | status | Error status variable. 0 on success. |
| void HAL_SetDMATimedTriggerCycles | ( | HAL_DMAHandle | handle, |
| uint32_t | cycles, | ||
| int32_t * | status ) |
Sets DMA transfers to occur at a specific timed interval in FPGA cycles.
This will remove any external triggers. Only timed or external is supported.
Only 1 timed period is supported
The FPGA currently runs at 40 MHz, but this can change. HAL_GetSystemClockTicksPerMicrosecond can be used to get a computable value for this.
This can only be called if DMA is not started.
| [in] | handle | the dma handle |
| [in] | cycles | the period to trigger in FPGA cycles |
| [out] | status | Error status variable. 0 on success. |
| void HAL_StartDMA | ( | HAL_DMAHandle | handle, |
| int32_t | queueDepth, | ||
| int32_t * | status ) |
Starts DMA Collection.
| [in] | handle | the dma handle |
| [in] | queueDepth | the number of objects to be able to queue |
| [out] | status | Error status variable. 0 on success. |
| void HAL_StopDMA | ( | HAL_DMAHandle | handle, |
| int32_t * | status ) |
Stops DMA Collection.
| [in] | handle | the dma handle |
| [out] | status | Error status variable. 0 on success. |