Package trclib.sensor

Class TrcAbsoluteEncoder

All Implemented Interfaces:
TrcEncoder

public class TrcAbsoluteEncoder extends TrcWrapValueConverter implements TrcEncoder
This class implements a generic Absolute Encoder that implements the TrcEncoder interface to allow compatibility to other types of encoders. It extends TrcWrapValueConverter that monitors the crossovers of the encoder value and convert it to a continuous value.
  • Field Details

    • sign

      private double sign
    • scale

      private double scale
    • offset

      private double offset
    • zeroOffset

      private double zeroOffset
  • Constructor Details

    • TrcAbsoluteEncoder

      public TrcAbsoluteEncoder(String instanceName, DoubleSupplier valueSupplier, double rangeLow, double rangeHigh)
      Constructor: Creates an instance of the object.
      Parameters:
      instanceName - specifies the instance name.
      valueSupplier - specifies the method to call to get the encoder value.
      rangeLow - specifies the low range of the value.
      rangeHigh - specifies the high range of the value.
  • Method Details

    • reset

      public void reset()
      This method resets the encoder revolution counter.
      Specified by:
      reset in interface TrcEncoder
    • getRawPosition

      public double getRawPosition()
      This method returns the raw value of the encoder without the crossover count.
      Specified by:
      getRawPosition in interface TrcEncoder
      Returns:
      raw encoder value.
    • getScaledPosition

      public double getScaledPosition()
      This method returns the encoder position adjusted by scale and offset.
      Specified by:
      getScaledPosition in interface TrcEncoder
      Returns:
      encoder position adjusted by scale and offset.
    • getRawVelocity

      public double getRawVelocity()
      This method reads the raw encoder velocity in encoder units per second.
      Specified by:
      getRawVelocity in interface TrcEncoder
      Returns:
      raw encoder velocity in encoder units per second.
    • getScaledVelocity

      public double getScaledVelocity()
      This method returns the encoder velocity adjusted by scale.
      Specified by:
      getScaledVelocity in interface TrcEncoder
      Returns:
      encoder velocity adjusted by scale.
    • setInverted

      public void setInverted(boolean inverted)
      This method reverses the direction of the encoder.
      Specified by:
      setInverted in interface TrcEncoder
      Parameters:
      inverted - specifies true to reverse the encoder direction, false otherwise.
    • isInverted

      public boolean isInverted()
      This method checks if the encoder direction is inverted.
      Specified by:
      isInverted in interface TrcEncoder
      Returns:
      true if encoder direction is rerversed, false otherwise.
    • setScaleAndOffset

      public void setScaleAndOffset(double scale, double offset, double zeroOffset)
      This method sets the encoder scale and offset.
      Specified by:
      setScaleAndOffset in interface TrcEncoder
      Parameters:
      scale - specifies the scale value.
      offset - specifies the offset value.
      zeroOffset - specifies the zero offset for absolute encoder.