REVLib - C++
rev::RelativeEncoder Class Referenceabstract

#include <RelativeEncoder.h>

Inherits rev::CANEncoder.

Inherited by rev::SparkFlexExternalEncoder, rev::SparkMaxAlternateEncoder, and rev::SparkMaxRelativeEncoder.

Public Member Functions

virtual ~RelativeEncoder ()
 
double GetPosition () const override=0
 
double GetVelocity () const override=0
 
REVLibError SetPosition (double position) override=0
 
REVLibError SetPositionConversionFactor (double factor) override=0
 
REVLibError SetVelocityConversionFactor (double factor) override=0
 
double GetPositionConversionFactor () const override=0
 
double GetVelocityConversionFactor () const override=0
 
REVLibError SetAverageDepth (uint32_t depth) override=0
 
REVLibError SetMeasurementPeriod (uint32_t period_ms) override=0
 
uint32_t GetAverageDepth () const override=0
 
uint32_t GetMeasurementPeriod () const override=0
 
uint32_t GetCountsPerRevolution () const override=0
 
REVLibError SetInverted (bool inverted) override=0
 
bool GetInverted () const override=0
 
- Public Member Functions inherited from rev::CANEncoder
virtual ~CANEncoder ()
 
- Public Member Functions inherited from rev::MotorFeedbackSensor
virtual ~MotorFeedbackSensor ()
 
- Public Member Functions inherited from rev::CANSensor
virtual ~CANSensor ()
 

Friends

class SparkMaxAlternateEncoder
 
class SparkMaxRelativeEncoder
 
class SparkFlexExternalEncoder
 

Additional Inherited Members

- Public Types inherited from rev::CANEncoder
enum class  EncoderType { kNoSensor = 0 , kHallSensor = 1 , kQuadrature = 2 }
 
enum class  AlternateEncoderType { kQuadrature }
 

Constructor & Destructor Documentation

◆ ~RelativeEncoder()

virtual rev::RelativeEncoder::~RelativeEncoder ( )
inlinevirtual

Member Function Documentation

◆ GetPosition()

double rev::RelativeEncoder::GetPosition ( ) const
overridepure virtual

Get the position of the motor. This returns the native units of 'rotations' by default, and can be changed by a scale factor using setPositionConversionFactor().

Returns
Number of rotations of the motor

Implements rev::CANEncoder.

Implemented in rev::SparkFlexExternalEncoder, rev::SparkMaxAlternateEncoder, and rev::SparkMaxRelativeEncoder.

◆ GetVelocity()

double rev::RelativeEncoder::GetVelocity ( ) const
overridepure virtual

Get the velocity of the motor. This returns the native units of 'RPM' by default, and can be changed by a scale factor using setVelocityConversionFactor().

Returns
Number the RPM of the motor

Implements rev::CANEncoder.

Implemented in rev::SparkFlexExternalEncoder, rev::SparkMaxAlternateEncoder, and rev::SparkMaxRelativeEncoder.

◆ SetPosition()

REVLibError rev::RelativeEncoder::SetPosition ( double  position)
overridepure virtual

Set the position of the encoder.

Parameters
positionNumber of rotations of the motor
Returns
REVLibError::kOk if successful

Implements rev::CANEncoder.

Implemented in rev::SparkFlexExternalEncoder, rev::SparkMaxAlternateEncoder, and rev::SparkMaxRelativeEncoder.

◆ SetPositionConversionFactor()

REVLibError rev::RelativeEncoder::SetPositionConversionFactor ( double  factor)
overridepure virtual

Set the conversion factor for position of the encoder. Multiplied by the native output units to give you position

Parameters
factorThe conversion factor to multiply the native units by
Returns
REVLibError::kOk if successful

Implements rev::CANEncoder.

Implemented in rev::SparkFlexExternalEncoder, rev::SparkMaxAlternateEncoder, and rev::SparkMaxRelativeEncoder.

◆ SetVelocityConversionFactor()

REVLibError rev::RelativeEncoder::SetVelocityConversionFactor ( double  factor)
overridepure virtual

Set the conversion factor for velocity of the encoder. Multiplied by the native output units to give you velocity

Parameters
factorThe conversion factor to multiply the native units by
Returns
REVLibError::kOk if successful

Implements rev::CANEncoder.

Implemented in rev::SparkFlexExternalEncoder, rev::SparkMaxAlternateEncoder, and rev::SparkMaxRelativeEncoder.

◆ GetPositionConversionFactor()

double rev::RelativeEncoder::GetPositionConversionFactor ( ) const
overridepure virtual

Get the conversion factor for position of the encoder. Multiplied by the native output units to give you position

Returns
The conversion factor for position

Implements rev::CANEncoder.

Implemented in rev::SparkFlexExternalEncoder, rev::SparkMaxAlternateEncoder, and rev::SparkMaxRelativeEncoder.

◆ GetVelocityConversionFactor()

double rev::RelativeEncoder::GetVelocityConversionFactor ( ) const
overridepure virtual

Get the conversion factor for velocity of the encoder. Multiplied by the native output units to give you velocity

Returns
The conversion factor for velocity

Implements rev::CANEncoder.

Implemented in rev::SparkFlexExternalEncoder, rev::SparkMaxAlternateEncoder, and rev::SparkMaxRelativeEncoder.

◆ SetAverageDepth()

REVLibError rev::RelativeEncoder::SetAverageDepth ( uint32_t  depth)
overridepure virtual

Set the sampling depth of the velocity calculation process for a quadrature or hall sensor encoder. This value sets the number of samples in the average for velocity readings. For a quadrature encoder, this can be any value from 1 to 64 (default). For a hall sensor, it must be either 1, 2, 4, or 8 (default).

Parameters
depthThe velocity calculation process's sampling depth
Returns
REVLibError::kOk if successful

Implements rev::CANEncoder.

Implemented in rev::SparkFlexExternalEncoder, rev::SparkMaxAlternateEncoder, and rev::SparkMaxRelativeEncoder.

◆ SetMeasurementPeriod()

REVLibError rev::RelativeEncoder::SetMeasurementPeriod ( uint32_t  period_ms)
overridepure virtual

Set the position measurement period used to calculate the velocity of a quadrature or hall sensor encoder. For a quadrature encoder, this number may be between 1 and 100 (default). For a hall sensor, this number may be between 8 and 64. The default for a hall sensor is 32ms.

The basic formula to calculate velocity is change in position / change in time. This parameter sets the change in time for measurement.

Parameters
period_msMeasurement period in milliseconds
Returns
REVLibError::kOk if successful

Implements rev::CANEncoder.

Implemented in rev::SparkFlexExternalEncoder, rev::SparkMaxAlternateEncoder, and rev::SparkMaxRelativeEncoder.

◆ GetAverageDepth()

uint32_t rev::RelativeEncoder::GetAverageDepth ( ) const
overridepure virtual

Get the velocity calculation process's sampling depth for a quadrature or hall sensor encoder.

Returns
The velocity calculation averaging process's sampling depth

Implements rev::CANEncoder.

Implemented in rev::SparkFlexExternalEncoder, rev::SparkMaxAlternateEncoder, and rev::SparkMaxRelativeEncoder.

◆ GetMeasurementPeriod()

uint32_t rev::RelativeEncoder::GetMeasurementPeriod ( ) const
overridepure virtual

Get the position measurement period used to calculate the velocity of a quadrature or hall sensor encoder.

Returns
Measurement period in milliseconds

Implements rev::CANEncoder.

Implemented in rev::SparkFlexExternalEncoder, rev::SparkMaxAlternateEncoder, and rev::SparkMaxRelativeEncoder.

◆ GetCountsPerRevolution()

uint32_t rev::RelativeEncoder::GetCountsPerRevolution ( ) const
overridepure virtual

Get the counts per revolution of the quadrature encoder.

For a description on the difference between CPR, PPR, etc. go to https://www.cuidevices.com/blog/what-is-encoder-ppr-cpr-and-lpr

Returns
Counts per revolution

Implements rev::CANEncoder.

Implemented in rev::SparkFlexExternalEncoder, rev::SparkMaxAlternateEncoder, and rev::SparkMaxRelativeEncoder.

◆ SetInverted()

REVLibError rev::RelativeEncoder::SetInverted ( bool  inverted)
overridepure virtual

Set the phase of the MotorFeedbackSensor so that it is set to be in phase with the motor itself. This only works for quadrature encoders. This will throw an error if the user tries to set inverted while the SparkMax is Brushless and using the hall effect sensor.

Parameters
invertedThe phase of the encoder
Returns
REVLibError::kOk if successful

Implements rev::CANEncoder.

Implemented in rev::SparkFlexExternalEncoder, rev::SparkMaxAlternateEncoder, and rev::SparkMaxRelativeEncoder.

◆ GetInverted()

bool rev::RelativeEncoder::GetInverted ( ) const
overridepure virtual

Get the phase of the MotorFeedbackSensor. This will just return false if the user tries to get inverted while the SparkMax is Brushless and using the hall effect sensor.

Returns
The phase of the encoder

Implements rev::CANEncoder.

Implemented in rev::SparkFlexExternalEncoder, rev::SparkMaxAlternateEncoder, and rev::SparkMaxRelativeEncoder.

Friends And Related Function Documentation

◆ SparkMaxAlternateEncoder

friend class SparkMaxAlternateEncoder
friend

◆ SparkMaxRelativeEncoder

friend class SparkMaxRelativeEncoder
friend

◆ SparkFlexExternalEncoder

friend class SparkFlexExternalEncoder
friend

The documentation for this class was generated from the following file: