Package com.revrobotics
Class SparkMaxRelativeEncoder
java.lang.Object
com.revrobotics.SparkMaxRelativeEncoder
- All Implemented Interfaces:
CANEncoder
,CANSensor
,MotorFeedbackSensor
,RelativeEncoder
Get an instance of this class by using
CANSparkMax.getEncoder()
or CANSparkMax.getEncoder(Type, int)
.-
Nested Class Summary
-
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
Description copied from interface:RelativeEncoder
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
- Specified by:
getPosition
in interfaceRelativeEncoder
- Returns:
- Number of rotations of the motor
-
getVelocity
Description copied from interface:RelativeEncoder
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
- Specified by:
getVelocity
in interfaceRelativeEncoder
- Returns:
- Number the RPM of the motor
-
setPosition
Description copied from interface:RelativeEncoder
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
- Specified by:
setPosition
in interfaceRelativeEncoder
- Parameters:
position
- Number of rotations of the motor- Returns:
REVLibError.kOk
if successful
-
setPositionConversionFactor
Description copied from interface:RelativeEncoder
Set the conversion factor for position of the encoder. Multiplied by the native output units to give you position.- Specified by:
setPositionConversionFactor
in interfaceCANEncoder
- Specified by:
setPositionConversionFactor
in interfaceRelativeEncoder
- Parameters:
factor
- The conversion factor to multiply the native units by- Returns:
REVLibError.kOk
if successful
-
setVelocityConversionFactor
Description copied from interface:RelativeEncoder
Set the conversion factor for velocity of the encoder. Multiplied by the native output units to give you velocity- Specified by:
setVelocityConversionFactor
in interfaceCANEncoder
- Specified by:
setVelocityConversionFactor
in interfaceRelativeEncoder
- Parameters:
factor
- The conversion factor to multiply the native units by- Returns:
REVLibError.kOk
if successful
-
getPositionConversionFactor
Description copied from interface:RelativeEncoder
Get the conversion factor for position of the encoder. Multiplied by the native output units to give you position- Specified by:
getPositionConversionFactor
in interfaceCANEncoder
- Specified by:
getPositionConversionFactor
in interfaceRelativeEncoder
- Returns:
- The conversion factor for position
-
getVelocityConversionFactor
Description copied from interface:RelativeEncoder
Get the conversion factor for velocity of the encoder. Multiplied by the native output units to give you velocity- Specified by:
getVelocityConversionFactor
in interfaceCANEncoder
- Specified by:
getVelocityConversionFactor
in interfaceRelativeEncoder
- Returns:
- The conversion factor for velocity
-
setAverageDepth
Description copied from interface:RelativeEncoder
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
- Specified by:
setAverageDepth
in interfaceRelativeEncoder
- Parameters:
depth
- The average sampling depth between 1 and 64 (default)- Returns:
REVLibError.kOk
if successful
-
getAverageDepth
Description copied from interface:RelativeEncoder
Get the average sampling depth for a quadrature encoder.- Specified by:
getAverageDepth
in interfaceCANEncoder
- Specified by:
getAverageDepth
in interfaceRelativeEncoder
- Returns:
- The average sampling depth
-
setMeasurementPeriod
Description copied from interface:RelativeEncoder
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
- Specified by:
setMeasurementPeriod
in interfaceRelativeEncoder
- Parameters:
period_us
- Measurement period in milliseconds. This number may be between 1 and 100 (default).- Returns:
REVLibError.kOk
if successful
-
getMeasurementPeriod
Description copied from interface:RelativeEncoder
Get the number of samples for reading from a quadrature encoder.- Specified by:
getMeasurementPeriod
in interfaceCANEncoder
- Specified by:
getMeasurementPeriod
in interfaceRelativeEncoder
- Returns:
- Number of samples
-
getCountsPerRevolution
Description copied from interface:RelativeEncoder
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
- Specified by:
getCountsPerRevolution
in interfaceRelativeEncoder
- 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
- Specified by:
setInverted
in interfaceRelativeEncoder
- Parameters:
inverted
- The phase of the sensor- Returns:
REVLibError.kOk
if successful
-
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
- Specified by:
getInverted
in interfaceRelativeEncoder
- Returns:
- The phase of the sensor
-