WPILibC++ 2024.3.2
|
Enumerations | |
enum | HAL_EncoderIndexingType : int32_t { HAL_kResetWhileHigh , HAL_kResetWhileLow , HAL_kResetOnFallingEdge , HAL_kResetOnRisingEdge } |
The type of index pulse for the encoder. More... | |
enum | HAL_EncoderEncodingType : int32_t { HAL_Encoder_k1X , HAL_Encoder_k2X , HAL_Encoder_k4X } |
The encoding scaling of the encoder. More... | |
Functions | |
HAL_EncoderHandle | HAL_InitializeEncoder (HAL_Handle digitalSourceHandleA, HAL_AnalogTriggerType analogTriggerTypeA, HAL_Handle digitalSourceHandleB, HAL_AnalogTriggerType analogTriggerTypeB, HAL_Bool reverseDirection, HAL_EncoderEncodingType encodingType, int32_t *status) |
Initializes an encoder. More... | |
void | HAL_FreeEncoder (HAL_EncoderHandle encoderHandle, int32_t *status) |
Frees an encoder. More... | |
void | HAL_SetEncoderSimDevice (HAL_EncoderHandle handle, HAL_SimDeviceHandle device) |
Indicates the encoder is used by a simulated device. More... | |
int32_t | HAL_GetEncoder (HAL_EncoderHandle encoderHandle, int32_t *status) |
Gets the current counts of the encoder after encoding type scaling. More... | |
int32_t | HAL_GetEncoderRaw (HAL_EncoderHandle encoderHandle, int32_t *status) |
Gets the raw counts of the encoder. More... | |
int32_t | HAL_GetEncoderEncodingScale (HAL_EncoderHandle encoderHandle, int32_t *status) |
Gets the encoder scale value. More... | |
void | HAL_ResetEncoder (HAL_EncoderHandle encoderHandle, int32_t *status) |
Reads the current encoder value. More... | |
double | HAL_GetEncoderPeriod (HAL_EncoderHandle encoderHandle, int32_t *status) |
Gets the Period of the most recent count. More... | |
void | HAL_SetEncoderMaxPeriod (HAL_EncoderHandle encoderHandle, double maxPeriod, int32_t *status) |
Sets the maximum period where the device is still considered "moving". More... | |
HAL_Bool | HAL_GetEncoderStopped (HAL_EncoderHandle encoderHandle, int32_t *status) |
Determines if the clock is stopped. More... | |
HAL_Bool | HAL_GetEncoderDirection (HAL_EncoderHandle encoderHandle, int32_t *status) |
Gets the last direction the encoder value changed. More... | |
double | HAL_GetEncoderDistance (HAL_EncoderHandle encoderHandle, int32_t *status) |
Gets the current distance traveled by the encoder. More... | |
double | HAL_GetEncoderRate (HAL_EncoderHandle encoderHandle, int32_t *status) |
Gets the current rate of the encoder. More... | |
void | HAL_SetEncoderMinRate (HAL_EncoderHandle encoderHandle, double minRate, int32_t *status) |
Sets the minimum rate to be considered moving by the encoder. More... | |
void | HAL_SetEncoderDistancePerPulse (HAL_EncoderHandle encoderHandle, double distancePerPulse, int32_t *status) |
Sets the distance traveled per encoder pulse. More... | |
void | HAL_SetEncoderReverseDirection (HAL_EncoderHandle encoderHandle, HAL_Bool reverseDirection, int32_t *status) |
Sets if to reverse the direction of the encoder. More... | |
void | HAL_SetEncoderSamplesToAverage (HAL_EncoderHandle encoderHandle, int32_t samplesToAverage, int32_t *status) |
Sets the number of encoder samples to average when calculating encoder rate. More... | |
int32_t | HAL_GetEncoderSamplesToAverage (HAL_EncoderHandle encoderHandle, int32_t *status) |
Gets the current samples to average value. More... | |
void | HAL_SetEncoderIndexSource (HAL_EncoderHandle encoderHandle, HAL_Handle digitalSourceHandle, HAL_AnalogTriggerType analogTriggerType, HAL_EncoderIndexingType type, int32_t *status) |
Sets the source for an index pulse on the encoder. More... | |
int32_t | HAL_GetEncoderFPGAIndex (HAL_EncoderHandle encoderHandle, int32_t *status) |
Gets the FPGA index of the encoder. More... | |
double | HAL_GetEncoderDecodingScaleFactor (HAL_EncoderHandle encoderHandle, int32_t *status) |
Gets the decoding scale factor of the encoder. More... | |
double | HAL_GetEncoderDistancePerPulse (HAL_EncoderHandle encoderHandle, int32_t *status) |
Gets the user set distance per pulse of the encoder. More... | |
HAL_EncoderEncodingType | HAL_GetEncoderEncodingType (HAL_EncoderHandle encoderHandle, int32_t *status) |
Gets the encoding type of the encoder. More... | |
enum HAL_EncoderEncodingType : int32_t |
enum HAL_EncoderIndexingType : int32_t |
void HAL_FreeEncoder | ( | HAL_EncoderHandle | encoderHandle, |
int32_t * | status | ||
) |
Frees an encoder.
[in] | encoderHandle | the encoder handle |
[out] | status | Error status variable. 0 on success. |
int32_t HAL_GetEncoder | ( | HAL_EncoderHandle | encoderHandle, |
int32_t * | status | ||
) |
Gets the current counts of the encoder after encoding type scaling.
This is scaled by the value passed during initialization to encodingType.
[in] | encoderHandle | the encoder handle |
[out] | status | Error status variable. 0 on success. |
double HAL_GetEncoderDecodingScaleFactor | ( | HAL_EncoderHandle | encoderHandle, |
int32_t * | status | ||
) |
Gets the decoding scale factor of the encoder.
This is used to perform the scaling from raw to type scaled values.
[in] | encoderHandle | the encoder handle |
[out] | status | Error status variable. 0 on success. |
HAL_Bool HAL_GetEncoderDirection | ( | HAL_EncoderHandle | encoderHandle, |
int32_t * | status | ||
) |
Gets the last direction the encoder value changed.
[in] | encoderHandle | the encoder handle |
[out] | status | Error status variable. 0 on success. |
double HAL_GetEncoderDistance | ( | HAL_EncoderHandle | encoderHandle, |
int32_t * | status | ||
) |
Gets the current distance traveled by the encoder.
This is the encoder count scaled by the distance per pulse set for the encoder.
[in] | encoderHandle | the encoder handle |
[out] | status | Error status variable. 0 on success. |
double HAL_GetEncoderDistancePerPulse | ( | HAL_EncoderHandle | encoderHandle, |
int32_t * | status | ||
) |
Gets the user set distance per pulse of the encoder.
[in] | encoderHandle | the encoder handle |
[out] | status | Error status variable. 0 on success. |
int32_t HAL_GetEncoderEncodingScale | ( | HAL_EncoderHandle | encoderHandle, |
int32_t * | status | ||
) |
Gets the encoder scale value.
This is set by the value passed during initialization to encodingType.
[in] | encoderHandle | the encoder handle |
[out] | status | Error status variable. 0 on success. |
HAL_EncoderEncodingType HAL_GetEncoderEncodingType | ( | HAL_EncoderHandle | encoderHandle, |
int32_t * | status | ||
) |
Gets the encoding type of the encoder.
[in] | encoderHandle | the encoder handle |
[out] | status | Error status variable. 0 on success. |
int32_t HAL_GetEncoderFPGAIndex | ( | HAL_EncoderHandle | encoderHandle, |
int32_t * | status | ||
) |
Gets the FPGA index of the encoder.
[in] | encoderHandle | the encoder handle |
[out] | status | Error status variable. 0 on success. |
double HAL_GetEncoderPeriod | ( | HAL_EncoderHandle | encoderHandle, |
int32_t * | status | ||
) |
Gets the Period of the most recent count.
Returns the time interval of the most recent count. This can be used for velocity calculations to determine shaft speed.
[in] | encoderHandle | the encoder handle |
[out] | status | Error status variable. 0 on success. |
double HAL_GetEncoderRate | ( | HAL_EncoderHandle | encoderHandle, |
int32_t * | status | ||
) |
Gets the current rate of the encoder.
This is the encoder period scaled by the distance per pulse set for the encoder.
[in] | encoderHandle | the encoder handle |
[out] | status | Error status variable. 0 on success. |
int32_t HAL_GetEncoderRaw | ( | HAL_EncoderHandle | encoderHandle, |
int32_t * | status | ||
) |
Gets the raw counts of the encoder.
This is not scaled by any values.
[in] | encoderHandle | the encoder handle |
[out] | status | Error status variable. 0 on success. |
int32_t HAL_GetEncoderSamplesToAverage | ( | HAL_EncoderHandle | encoderHandle, |
int32_t * | status | ||
) |
Gets the current samples to average value.
[in] | encoderHandle | the encoder handle |
[out] | status | Error status variable. 0 on success. |
HAL_Bool HAL_GetEncoderStopped | ( | HAL_EncoderHandle | encoderHandle, |
int32_t * | status | ||
) |
Determines if the clock is stopped.
Determines if the clocked input is stopped based on the MaxPeriod value set using the SetMaxPeriod method. If the clock exceeds the MaxPeriod, then the device (and encoder) are assumed to be stopped and it returns true.
[in] | encoderHandle | the encoder handle |
[out] | status | Error status variable. 0 on success. |
HAL_EncoderHandle HAL_InitializeEncoder | ( | HAL_Handle | digitalSourceHandleA, |
HAL_AnalogTriggerType | analogTriggerTypeA, | ||
HAL_Handle | digitalSourceHandleB, | ||
HAL_AnalogTriggerType | analogTriggerTypeB, | ||
HAL_Bool | reverseDirection, | ||
HAL_EncoderEncodingType | encodingType, | ||
int32_t * | status | ||
) |
Initializes an encoder.
[in] | digitalSourceHandleA | the A source (either a HAL_DigitalHandle or a HAL_AnalogTriggerHandle) |
[in] | analogTriggerTypeA | the analog trigger type of the A source if it is an analog trigger |
[in] | digitalSourceHandleB | the B source (either a HAL_DigitalHandle or a HAL_AnalogTriggerHandle) |
[in] | analogTriggerTypeB | the analog trigger type of the B source if it is an analog trigger |
[in] | reverseDirection | true to reverse the counting direction from standard, otherwise false |
[in] | encodingType | the encoding type |
[out] | status | Error status variable. 0 on success. |
void HAL_ResetEncoder | ( | HAL_EncoderHandle | encoderHandle, |
int32_t * | status | ||
) |
Reads the current encoder value.
Read the value at this instant. It may still be running, so it reflects the current value. Next time it is read, it might have a different value.
[in] | encoderHandle | the encoder handle |
[out] | status | Error status variable. 0 on success. |
void HAL_SetEncoderDistancePerPulse | ( | HAL_EncoderHandle | encoderHandle, |
double | distancePerPulse, | ||
int32_t * | status | ||
) |
Sets the distance traveled per encoder pulse.
This is used as a scaling factor for the rate and distance calls.
[in] | encoderHandle | the encoder handle |
[in] | distancePerPulse | the distance traveled per encoder pulse (units user defined) |
[out] | status | Error status variable. 0 on success. |
void HAL_SetEncoderIndexSource | ( | HAL_EncoderHandle | encoderHandle, |
HAL_Handle | digitalSourceHandle, | ||
HAL_AnalogTriggerType | analogTriggerType, | ||
HAL_EncoderIndexingType | type, | ||
int32_t * | status | ||
) |
Sets the source for an index pulse on the encoder.
The index pulse can be used to cause an encoder to reset based on an external input.
[in] | encoderHandle | the encoder handle |
[in] | digitalSourceHandle | the index source handle (either a HAL_AnalogTriggerHandle or a HAL_DigitalHandle) |
[in] | analogTriggerType | the analog trigger type if the source is an analog trigger |
[in] | type | the index triggering type |
[out] | status | Error status variable. 0 on success. |
void HAL_SetEncoderMaxPeriod | ( | HAL_EncoderHandle | encoderHandle, |
double | maxPeriod, | ||
int32_t * | status | ||
) |
Sets the maximum period where the device is still considered "moving".
Sets the maximum period where the device is considered moving. This value is used to determine the "stopped" state of the encoder using the HAL_GetEncoderStopped method.
[in] | encoderHandle | the encoder handle |
[in] | maxPeriod | the maximum period where the counted device is considered moving in seconds |
[out] | status | Error status variable. 0 on success. |
void HAL_SetEncoderMinRate | ( | HAL_EncoderHandle | encoderHandle, |
double | minRate, | ||
int32_t * | status | ||
) |
Sets the minimum rate to be considered moving by the encoder.
Units need to match what is set by HAL_SetEncoderDistancePerPulse, with time as seconds.
[in] | encoderHandle | the encoder handle |
[in] | minRate | the minimum rate to be considered moving (units are determined by the units passed to HAL_SetEncoderDistancePerPulse, time value is seconds) |
[out] | status | Error status variable. 0 on success. |
void HAL_SetEncoderReverseDirection | ( | HAL_EncoderHandle | encoderHandle, |
HAL_Bool | reverseDirection, | ||
int32_t * | status | ||
) |
Sets if to reverse the direction of the encoder.
Note that this is not a toggle. It is an absolute set.
[in] | encoderHandle | the encoder handle |
[in] | reverseDirection | true to reverse the direction, false to not. |
[out] | status | Error status variable. 0 on success. |
void HAL_SetEncoderSamplesToAverage | ( | HAL_EncoderHandle | encoderHandle, |
int32_t | samplesToAverage, | ||
int32_t * | status | ||
) |
Sets the number of encoder samples to average when calculating encoder rate.
[in] | encoderHandle | the encoder handle |
[in] | samplesToAverage | the number of samples to average |
[out] | status | Error status variable. 0 on success. |
void HAL_SetEncoderSimDevice | ( | HAL_EncoderHandle | handle, |
HAL_SimDeviceHandle | device | ||
) |
Indicates the encoder is used by a simulated device.
handle | the encoder handle |
device | simulated device handle |