WPILibC++ 2024.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. More... | |
void | HAL_FreeDMA (HAL_DMAHandle handle) |
Frees a DMA object. More... | |
void | HAL_SetDMAPause (HAL_DMAHandle handle, HAL_Bool pause, int32_t *status) |
Pauses or unpauses a DMA transfer. More... | |
void | HAL_SetDMATimedTrigger (HAL_DMAHandle handle, double periodSeconds, int32_t *status) |
Sets DMA transfers to occur at a specific timed interval. More... | |
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. More... | |
void | HAL_AddDMAEncoder (HAL_DMAHandle handle, HAL_EncoderHandle encoderHandle, int32_t *status) |
Adds position data for an encoder to be collected by DMA. More... | |
void | HAL_AddDMAEncoderPeriod (HAL_DMAHandle handle, HAL_EncoderHandle encoderHandle, int32_t *status) |
Adds timer data for an encoder to be collected by DMA. More... | |
void | HAL_AddDMACounter (HAL_DMAHandle handle, HAL_CounterHandle counterHandle, int32_t *status) |
Adds position data for an counter to be collected by DMA. More... | |
void | HAL_AddDMACounterPeriod (HAL_DMAHandle handle, HAL_CounterHandle counterHandle, int32_t *status) |
Adds timer data for an counter to be collected by DMA. More... | |
void | HAL_AddDMADigitalSource (HAL_DMAHandle handle, HAL_Handle digitalSourceHandle, int32_t *status) |
Adds a digital source to be collected by DMA. More... | |
void | HAL_AddDMAAnalogInput (HAL_DMAHandle handle, HAL_AnalogInputHandle aInHandle, int32_t *status) |
Adds an analog input to be collected by DMA. More... | |
void | HAL_AddDMAAveragedAnalogInput (HAL_DMAHandle handle, HAL_AnalogInputHandle aInHandle, int32_t *status) |
Adds averaged data of an analog input to be collected by DMA. More... | |
void | HAL_AddDMAAnalogAccumulator (HAL_DMAHandle handle, HAL_AnalogInputHandle aInHandle, int32_t *status) |
Adds accumulator data of an analog input to be collected by DMA. More... | |
void | HAL_AddDMADutyCycle (HAL_DMAHandle handle, HAL_DutyCycleHandle dutyCycleHandle, int32_t *status) |
Adds a duty cycle input to be collected by DMA. More... | |
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. More... | |
void | HAL_ClearDMASensors (HAL_DMAHandle handle, int32_t *status) |
Clear all sensors from the DMA collection list. More... | |
void | HAL_ClearDMAExternalTriggers (HAL_DMAHandle handle, int32_t *status) |
Clear all external triggers from the DMA trigger list. More... | |
void | HAL_StartDMA (HAL_DMAHandle handle, int32_t queueDepth, int32_t *status) |
Starts DMA Collection. More... | |
void | HAL_StopDMA (HAL_DMAHandle handle, int32_t *status) |
Stops DMA Collection. More... | |
void * | HAL_GetDMADirectPointer (HAL_DMAHandle handle) |
Gets the direct pointer to the DMA object. More... | |
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. More... | |
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. More... | |
uint64_t | HAL_GetDMASampleTime (const HAL_DMASample *dmaSample, int32_t *status) |
Returns the timestamp of the sample. More... | |
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. More... | |
int32_t | HAL_GetDMASampleCounter (const HAL_DMASample *dmaSample, HAL_CounterHandle counterHandle, int32_t *status) |
Returns the distance data for an counter from the sample. More... | |
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. More... | |
int32_t | HAL_GetDMASampleCounterPeriod (const HAL_DMASample *dmaSample, HAL_CounterHandle counterHandle, int32_t *status) |
Returns the period data for an counter from the sample. More... | |
HAL_Bool | HAL_GetDMASampleDigitalSource (const HAL_DMASample *dmaSample, HAL_Handle dSourceHandle, int32_t *status) |
Returns the state of a digital source from the sample. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. |