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

Package swervelib.encoders

# Class PWMDutyCycleEncoderSwerve

java.lang.Object
swervelib.encoders.SwerveAbsoluteEncoder
swervelib.encoders.PWMDutyCycleEncoderSwerve

public class PWMDutyCycleEncoderSwerve extends SwerveAbsoluteEncoder
DutyCycle encoders such as "US Digital MA3 with PWM Output, the CTRE Mag Encoder, the Rev Hex Encoder, and the AM Mag Encoder." attached via a PWM lane.

Credits to p2reneker25 for building this.

## Field Summary

Fields
Modifier and Type
Field
Description
`private final edu.wpi.first.wpilibj.DutyCycleEncoder`
`encoder`
Duty Cycle Encoder.
`private Alert`
`inaccurateVelocities`
An `Alert` for if the encoder cannot report accurate velocities.
`private boolean`
`isInverted`
Inversion state.

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

`maximumRetries, readingError`

## Constructor Summary

Constructors
Constructor
Description
`PWMDutyCycleEncoderSwerve(int pin)`
Constructor for the PWM duty cycle encoder.

## Method Summary

Modifier and Type
Method
Description
`void`
`clearStickyFaults()`
Clear sticky faults on the encoder.
`void`
`configure(boolean inverted)`
Configure the inversion state of the encoder.
`void`
`factoryDefault()`
Reset the encoder to factory defaults.
`Object`
`getAbsoluteEncoder()`
Get the 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 offset of the Encoder in the WPILib Encoder Library.

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

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

## Field Details

### encoder

private final edu.wpi.first.wpilibj.DutyCycleEncoder encoder
Duty Cycle Encoder.

### isInverted

private boolean isInverted
Inversion state.

### inaccurateVelocities

private Alert inaccurateVelocities
An `Alert` for if the encoder cannot report accurate velocities.

## Constructor Details

### PWMDutyCycleEncoderSwerve

public PWMDutyCycleEncoderSwerve(int pin)
Constructor for the PWM duty cycle encoder.

Parameters:
  `pin` - PWM lane for the encoder.

## Method Details

### configure

public void configure(boolean inverted)
Configure the inversion state of the encoder.

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 encoder object.

Specified by:
  `getAbsoluteEncoder` in class `SwerveAbsoluteEncoder`
Returns:
  `DutyCycleEncoder` from the class.

### getVelocity

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

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

### 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`

### setAbsoluteEncoderOffset

public boolean setAbsoluteEncoderOffset(double offset)
Sets the offset of the Encoder in the WPILib Encoder Library.

Specified by:
  `setAbsoluteEncoderOffset` in class `SwerveAbsoluteEncoder`
Parameters:
  `offset` - the offset the Absolute Encoder uses as the zero point.
Returns:
  Always true due to no external device commands.