Package com.revrobotics
Interface RelativeEncoder
- All Superinterfaces:
CANEncoder
,CANSensor
,MotorFeedbackSensor
- All Known Implementing Classes:
SparkMaxAlternateEncoder
,SparkMaxRelativeEncoder
Get an instance of this interface by using
CANSparkMax.getEncoder()
, CANSparkMax.getEncoder(SparkMaxRelativeEncoder.Type, int)
, CANSparkMax.getAlternateEncoder(int)
, or CANSparkMax.getAlternateEncoder(SparkMaxAlternateEncoder.Type, int)
.-
Method Summary
Modifier and TypeMethodDescriptionint
Get the average sampling depth for a quadrature encoder.int
Get the counts per revolution of the quadrature encoder.boolean
Get the phase of the MotorFeedbackSensor.int
Get the number of samples for reading from a quadrature encoder.double
Get the position of the motor.double
Get the conversion factor for position of the encoder.double
Get the velocity of the motor.double
Get the conversion factor for velocity of the encoder.setAverageDepth
(int depth) Set the average sampling depth for a quadrature encoder.setInverted
(boolean inverted) Set the phase of the MotorFeedbackSensor so that it is set to be in phase with the motor itself.setMeasurementPeriod
(int period_us) Set the measurement period for velocity measurements of a quadrature encoder.setPosition
(double position) Set the position of the encoder.setPositionConversionFactor
(double factor) Set the conversion factor for position of the encoder.setVelocityConversionFactor
(double factor) Set the conversion factor for velocity of the encoder.
-
Method Details
-
getPosition
double getPosition()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().- Specified by:
getPosition
in interfaceCANEncoder
- Returns:
- Number of rotations of the motor
-
getVelocity
double getVelocity()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().- Specified by:
getVelocity
in interfaceCANEncoder
- Returns:
- Number the RPM of the motor
-
setPosition
Set the position of the encoder. By default the units are 'rotations' and can be changed by a scale factor using setPositionConversionFactor().- Specified by:
setPosition
in interfaceCANEncoder
- Parameters:
position
- Number of rotations of the motor- Returns:
REVLibError.kOk
if successful
-
setPositionConversionFactor
Set the conversion factor for position of the encoder. Multiplied by the native output units to give you position.- Specified by:
setPositionConversionFactor
in interfaceCANEncoder
- Parameters:
factor
- The conversion factor to multiply the native units by- Returns:
REVLibError.kOk
if successful
-
setVelocityConversionFactor
Set the conversion factor for velocity of the encoder. Multiplied by the native output units to give you velocity- Specified by:
setVelocityConversionFactor
in interfaceCANEncoder
- Parameters:
factor
- The conversion factor to multiply the native units by- Returns:
REVLibError.kOk
if successful
-
getPositionConversionFactor
double getPositionConversionFactor()Get the conversion factor for position of the encoder. Multiplied by the native output units to give you position- Specified by:
getPositionConversionFactor
in interfaceCANEncoder
- Returns:
- The conversion factor for position
-
getVelocityConversionFactor
double getVelocityConversionFactor()Get the conversion factor for velocity of the encoder. Multiplied by the native output units to give you velocity- Specified by:
getVelocityConversionFactor
in interfaceCANEncoder
- Returns:
- The conversion factor for velocity
-
setAverageDepth
Set the average sampling depth for a quadrature encoder. This value sets the number of samples in the average for velocity readings. This can be any value from 1 to 64.When the SparkMax controller is in Brushless mode, this will not change any behavior.
- Specified by:
setAverageDepth
in interfaceCANEncoder
- Parameters:
depth
- The average sampling depth between 1 and 64 (default)- Returns:
REVLibError.kOk
if successful
-
getAverageDepth
int getAverageDepth()Get the average sampling depth for a quadrature encoder.- Specified by:
getAverageDepth
in interfaceCANEncoder
- Returns:
- The average sampling depth
-
setMeasurementPeriod
Set the measurement period for velocity measurements of a quadrature encoder. When the SparkMax controller is in Brushless mode, this will not change any behavior.The basic formula to calculate velocity is change in position / change in time. This parameter sets the change in time for measurement.
- Specified by:
setMeasurementPeriod
in interfaceCANEncoder
- Parameters:
period_us
- Measurement period in milliseconds. This number may be between 1 and 100 (default).- Returns:
REVLibError.kOk
if successful
-
getMeasurementPeriod
int getMeasurementPeriod()Get the number of samples for reading from a quadrature encoder.- Specified by:
getMeasurementPeriod
in interfaceCANEncoder
- Returns:
- Number of samples
-
getCountsPerRevolution
int getCountsPerRevolution()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
- Specified by:
getCountsPerRevolution
in interfaceCANEncoder
- Returns:
- Counts per revolution
-
setInverted
Description copied from interface:MotorFeedbackSensor
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 and analog sensors. This will throw an error if the user tries to set the inversion of the hall sensor.- Specified by:
setInverted
in interfaceCANEncoder
- Specified by:
setInverted
in interfaceCANSensor
- Specified by:
setInverted
in interfaceMotorFeedbackSensor
- Parameters:
inverted
- The phase of the sensor- Returns:
REVLibError.kOk
if successful
-
getInverted
boolean getInverted()Description copied from interface:MotorFeedbackSensor
Get the phase of the MotorFeedbackSensor. This will just return false if the user tries to get the inversion of the hall sensor.- Specified by:
getInverted
in interfaceCANEncoder
- Specified by:
getInverted
in interfaceCANSensor
- Specified by:
getInverted
in interfaceMotorFeedbackSensor
- Returns:
- The phase of the sensor
-