Package com.revrobotics
Interface RelativeEncoder
-
- All Superinterfaces:
CANEncoder
,CANSensor
,MotorFeedbackSensor
- All Known Implementing Classes:
SparkMaxAlternateEncoder
,SparkMaxRelativeEncoder
public interface RelativeEncoder extends CANEncoder
Get an instance of this interface by usingCANSparkMax.getEncoder()
,CANSparkMax.getEncoder(SparkMaxRelativeEncoder.Type, int)
,CANSparkMax.getAlternateEncoder(int)
, orCANSparkMax.getAlternateEncoder(SparkMaxAlternateEncoder.Type, int)
.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description int
getAverageDepth()
Get the velocity calculation process's sampling depth for a quadrature or hall sensor encoder.int
getCountsPerRevolution()
Get the counts per revolution of the quadrature encoder.boolean
getInverted()
Get the phase of the MotorFeedbackSensor.int
getMeasurementPeriod()
Get the position measurement period used to calculate the velocity of a quadrature or hall sensor encoder.double
getPosition()
Get the position of the motor.double
getPositionConversionFactor()
Get the conversion factor for position of the encoder.double
getVelocity()
Get the velocity of the motor.double
getVelocityConversionFactor()
Get the conversion factor for velocity of the encoder.REVLibError
setAverageDepth(int depth)
Set the sampling depth of the velocity calculation process for a quadrature or hall sensor encoder.REVLibError
setInverted(boolean inverted)
Set the phase of the MotorFeedbackSensor so that it is set to be in phase with the motor itself.REVLibError
setMeasurementPeriod(int period_ms)
Set the position measurement period used to calculate the velocity of a quadrature or hall sensor encoder.REVLibError
setPosition(double position)
Set the position of the encoder.REVLibError
setPositionConversionFactor(double factor)
Set the conversion factor for position of the encoder.REVLibError
setVelocityConversionFactor(double factor)
Set the conversion factor for velocity of the encoder.
-
-
-
Method Detail
-
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
REVLibError setPosition(double position)
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
REVLibError setPositionConversionFactor(double factor)
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
REVLibError setVelocityConversionFactor(double factor)
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
REVLibError setAverageDepth(int depth)
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).- Specified by:
setAverageDepth
in interfaceCANEncoder
- Parameters:
depth
- The velocity calculation process's sampling depth- Returns:
REVLibError.kOk
if successful
-
getAverageDepth
int getAverageDepth()
Get the velocity calculation process's sampling depth for a quadrature or hall sensor encoder.- Specified by:
getAverageDepth
in interfaceCANEncoder
- Returns:
- The velocity calculation averaging process's sampling depth
-
setMeasurementPeriod
REVLibError setMeasurementPeriod(int period_ms)
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.
- Specified by:
setMeasurementPeriod
in interfaceCANEncoder
- Parameters:
period_ms
- Measurement period in milliseconds- Returns:
REVLibError.kOk
if successful
-
getMeasurementPeriod
int getMeasurementPeriod()
Get the position measurement period used to calculate the velocity of a quadrature or hall sensor encoder.- Specified by:
getMeasurementPeriod
in interfaceCANEncoder
- Returns:
- The measurement period in milliseconds
-
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
REVLibError setInverted(boolean inverted)
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
-
-