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 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 interface CANEncoder
        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 interface CANEncoder
        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 interface CANEncoder
        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 interface CANEncoder
        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 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