Interface RelativeEncoder

All Superinterfaces:
CANEncoder, CANSensor, MotorFeedbackSensor
All Known Implementing Classes:
SparkMaxAlternateEncoder, SparkMaxRelativeEncoder

public interface RelativeEncoder extends CANEncoder
  • 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 interface CANEncoder
      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 interface CANEncoder
      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 interface CANEncoder
      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 interface CANEncoder
      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 interface CANEncoder
      Parameters:
      factor - The conversion factor to multiply the native units by
      Returns:
      REVLibError.kOk if successful
    • getPositionConversionFactor

      Get the conversion factor for position of the encoder. Multiplied by the native output units to give you position
      Specified by:
      getPositionConversionFactor in interface CANEncoder
      Returns:
      The conversion factor for position
    • getVelocityConversionFactor

      Get the conversion factor for velocity of the encoder. Multiplied by the native output units to give you velocity
      Specified by:
      getVelocityConversionFactor in interface CANEncoder
      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 interface CANEncoder
      Parameters:
      depth - The average sampling depth between 1 and 64 (default)
      Returns:
      REVLibError.kOk if successful
    • getAverageDepth

      Get the average sampling depth for a quadrature encoder.
      Specified by:
      getAverageDepth in interface CANEncoder
      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 interface CANEncoder
      Parameters:
      period_us - Measurement period in milliseconds. This number may be between 1 and 100 (default).
      Returns:
      REVLibError.kOk if successful
    • getMeasurementPeriod

      Get the number of samples for reading from a quadrature encoder.
      Specified by:
      getMeasurementPeriod in interface CANEncoder
      Returns:
      Number of samples
    • 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 interface CANEncoder
      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 interface CANEncoder
      Specified by:
      setInverted in interface CANSensor
      Specified by:
      setInverted in interface MotorFeedbackSensor
      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 interface CANEncoder
      Specified by:
      getInverted in interface CANSensor
      Specified by:
      getInverted in interface MotorFeedbackSensor
      Returns:
      The phase of the sensor