WPILibC++ 2024.3.2
|
Functions | |
HAL_NotifierHandle | HAL_InitializeNotifier (int32_t *status) |
Initializes a notifier. More... | |
HAL_Bool | HAL_SetNotifierThreadPriority (HAL_Bool realTime, int32_t priority, int32_t *status) |
Sets the HAL notifier thread priority. More... | |
void | HAL_SetNotifierName (HAL_NotifierHandle notifierHandle, const char *name, int32_t *status) |
Sets the name of a notifier. More... | |
void | HAL_StopNotifier (HAL_NotifierHandle notifierHandle, int32_t *status) |
Stops a notifier from running. More... | |
void | HAL_CleanNotifier (HAL_NotifierHandle notifierHandle, int32_t *status) |
Cleans a notifier. More... | |
void | HAL_UpdateNotifierAlarm (HAL_NotifierHandle notifierHandle, uint64_t triggerTime, int32_t *status) |
Updates the trigger time for a notifier. More... | |
void | HAL_CancelNotifierAlarm (HAL_NotifierHandle notifierHandle, int32_t *status) |
Cancels the next notifier alarm. More... | |
WPI_NODISCARD uint64_t | HAL_WaitForNotifierAlarm (HAL_NotifierHandle notifierHandle, int32_t *status) |
Waits for the next alarm for the specific notifier. More... | |
void HAL_CancelNotifierAlarm | ( | HAL_NotifierHandle | notifierHandle, |
int32_t * | status | ||
) |
Cancels the next notifier alarm.
This does not cause HAL_WaitForNotifierAlarm to return.
[in] | notifierHandle | the notifier handle |
[out] | status | Error status variable. 0 on success. |
void HAL_CleanNotifier | ( | HAL_NotifierHandle | notifierHandle, |
int32_t * | status | ||
) |
Cleans a notifier.
Note this also stops a notifier if it is already running.
[in] | notifierHandle | the notifier handle |
[out] | status | Error status variable. 0 on success. |
HAL_NotifierHandle HAL_InitializeNotifier | ( | int32_t * | status | ) |
Initializes a notifier.
A notifier is an FPGA controller timer that triggers at requested intervals based on the FPGA time. This can be used to make precise control loops.
[out] | status | Error status variable. 0 on success. |
void HAL_SetNotifierName | ( | HAL_NotifierHandle | notifierHandle, |
const char * | name, | ||
int32_t * | status | ||
) |
Sets the name of a notifier.
[in] | notifierHandle | the notifier handle |
[in] | name | name |
[out] | status | Error status variable. 0 on success. |
Sets the HAL notifier thread priority.
The HAL notifier thread is responsible for managing the FPGA's notifier interrupt and waking up user's Notifiers when it's their time to run. Giving the HAL notifier thread real-time priority helps ensure the user's real-time Notifiers, if any, are notified to run in a timely manner.
[in] | realTime | Set to true to set a real-time priority, false for standard priority. |
[in] | priority | Priority to set the thread to. For real-time, this is 1-99 with 99 being highest. For non-real-time, this is forced to 0. See "man 7 sched" for more details. |
[out] | status | Error status variable. 0 on success. |
void HAL_StopNotifier | ( | HAL_NotifierHandle | notifierHandle, |
int32_t * | status | ||
) |
Stops a notifier from running.
This will cause any call into HAL_WaitForNotifierAlarm to return with time = 0.
[in] | notifierHandle | the notifier handle |
[out] | status | Error status variable. 0 on success. |
void HAL_UpdateNotifierAlarm | ( | HAL_NotifierHandle | notifierHandle, |
uint64_t | triggerTime, | ||
int32_t * | status | ||
) |
Updates the trigger time for a notifier.
Note that this time is an absolute time relative to HAL_GetFPGATime()
[in] | notifierHandle | the notifier handle |
[in] | triggerTime | the updated trigger time |
[out] | status | Error status variable. 0 on success. |
WPI_NODISCARD uint64_t HAL_WaitForNotifierAlarm | ( | HAL_NotifierHandle | notifierHandle, |
int32_t * | status | ||
) |
Waits for the next alarm for the specific notifier.
This is a blocking call until either the time elapses or HAL_StopNotifier gets called. If the latter occurs, this function will return zero and any loops using this function should exit. Failing to do so can lead to use-after-frees.
[in] | notifierHandle | the notifier handle |
[out] | status | Error status variable. 0 on success. |