Interface RelativeEncoder

    • 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 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

        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 interface CANEncoder
        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 interface CANEncoder
        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 interface CANEncoder
        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 interface CANEncoder
        Returns:
        The conversion factor for velocity
      • setAverageDepth

        REVLibError setAverageDepth​(int depth)
        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

        int getAverageDepth()
        Get the average sampling depth for a quadrature encoder.
        Specified by:
        getAverageDepth in interface CANEncoder
        Returns:
        The average sampling depth
      • setMeasurementPeriod

        REVLibError setMeasurementPeriod​(int period_ms)
        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_ms - 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 interface CANEncoder
        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 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