# SparkMaxEncoderSwerve
declaration: package: swervelib.encoders, class: SparkMaxEncoderSwerve

Package swervelib.encoders

# Class SparkMaxEncoderSwerve

java.lang.Object
swervelib.encoders.SwerveAbsoluteEncoder
swervelib.encoders.SparkMaxEncoderSwerve

public class SparkMaxEncoderSwerve extends SwerveAbsoluteEncoder
SparkMax absolute encoder, attached through the data port.

## Field Summary

Fields
Modifier and Type
Field
Description
`com.revrobotics.AbsoluteEncoder`
`encoder`
The `AbsoluteEncoder` representing the duty cycle encoder attached to the SparkMax.
`private Alert`
`failureConfiguring`
An `Alert` for if there is a failure configuring the encoder.
`private Alert`
`offsetFailure`
An `Alert` for if there is a failure configuring the encoder offset.

### Fields inherited from class swervelib.encoders.SwerveAbsoluteEncoder

`maximumRetries, readingError`

## Constructor Summary

Constructors
Constructor
Description
`SparkMaxEncoderSwerve(SwerveMotor motor, int conversionFactor)`
Create the `SparkMaxEncoderSwerve` object as a duty cycle from the `CANSparkMax` motor.

## Method Summary

Modifier and Type
Method
Description
`void`
`clearStickyFaults()`
Clear sticky faults on the encoder.
`void`
`configure(boolean inverted)`
Configure the absolute encoder to read from [0, 360) per second.
`private void`
`configureSparkMax(Supplier<com.revrobotics.REVLibError> config)`
Run the configuration until it succeeds or times out.
`void`
`factoryDefault()`
Reset the encoder to factory defaults.
`Object`
`getAbsoluteEncoder()`
Get the instantiated absolute encoder Object.
`double`
`getAbsolutePosition()`
Get the absolute position of the encoder.
`double`
`getVelocity()`
Get the velocity in degrees/sec.
`boolean`
`setAbsoluteEncoderOffset(double offset)`
Sets the Absolute Encoder Offset inside of the SparkMax's Memory.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### encoder

public com.revrobotics.AbsoluteEncoder encoder
The `AbsoluteEncoder` representing the duty cycle encoder attached to the SparkMax.

### failureConfiguring

private Alert failureConfiguring
An `Alert` for if there is a failure configuring the encoder.

### offsetFailure

private Alert offsetFailure
An `Alert` for if there is a failure configuring the encoder offset.

## Constructor Details

### SparkMaxEncoderSwerve

public SparkMaxEncoderSwerve(SwerveMotor motor, int conversionFactor)
Create the `SparkMaxEncoderSwerve` object as a duty cycle from the `CANSparkMax` motor.

Parameters:
  `motor` - Motor to create the encoder from.
  `conversionFactor` - The conversion factor to set if the output is not from 0 to 360.

## Method Details

### configureSparkMax

private void configureSparkMax(Supplier<com.revrobotics.REVLibError> config)
Run the configuration until it succeeds or times out.

Parameters:
  `config` - Lambda supplier returning the error state.

### factoryDefault

public void factoryDefault()
Reset the encoder to factory defaults.

Specified by:
  `factoryDefault` in class `SwerveAbsoluteEncoder`

### clearStickyFaults

public void clearStickyFaults()
Clear sticky faults on the encoder.

Specified by:
  `clearStickyFaults` in class `SwerveAbsoluteEncoder`

### configure

public void configure(boolean inverted)
Configure the absolute encoder to read from [0, 360) per second.

Specified by:
  `configure` in class `SwerveAbsoluteEncoder`
Parameters:
  `inverted` - Whether the encoder is inverted.

### getAbsolutePosition

public double getAbsolutePosition()
Get the absolute position of the encoder.

Specified by:
  `getAbsolutePosition` in class `SwerveAbsoluteEncoder`
Returns:
  Absolute position in degrees from [0, 360).

### getAbsoluteEncoder

public Object getAbsoluteEncoder()
Get the instantiated absolute encoder Object.

Specified by:
  `getAbsoluteEncoder` in class `SwerveAbsoluteEncoder`
Returns:
  Absolute encoder object.

### setAbsoluteEncoderOffset

public boolean setAbsoluteEncoderOffset(double offset)
Sets the Absolute Encoder Offset inside of the SparkMax's Memory.

Specified by:
  `setAbsoluteEncoderOffset` in class `SwerveAbsoluteEncoder`
Parameters:
  `offset` - the offset the Absolute Encoder uses as the zero point.
Returns:
  if setting Absolute Encoder Offset was successful or not.

### getVelocity

public double getVelocity()
Get the velocity in degrees/sec.

Specified by:
  `getVelocity` in class `SwerveAbsoluteEncoder`
Returns:
  velocity in degrees/sec.