Added more encoder support, possible advantagescope support.

This commit is contained in:
thenetworkgrinch
2023-02-21 22:38:14 -06:00
parent 24e0a2d43c
commit 8bfa4a8824
114 changed files with 1455 additions and 399 deletions

View File

@@ -90,12 +90,12 @@ public class SwerveModule
{
absoluteEncoder.factoryDefault();
absoluteEncoder.configure(moduleConfiguration.absoluteEncoderInverted);
angleMotor.configureIntegratedEncoder(
moduleConfiguration.getPositionEncoderConversion(false));
angleMotor.setPosition(absoluteEncoder.getAbsolutePosition() - angleOffset);
}
// Config angle motor/controller
angleMotor.configureIntegratedEncoder(
moduleConfiguration.getPositionEncoderConversion(false));
angleMotor.configurePIDF(moduleConfiguration.anglePIDF);
angleMotor.configurePIDWrapping(-180, 180);
angleMotor.setInverted(moduleConfiguration.angleMotorInverted);
@@ -183,7 +183,7 @@ public class SwerveModule
*/
public void setAngle(double angle)
{
angleMotor.setReference(angle, 1 * configuration.angleKV);
angleMotor.setReference(angle, configuration.angleKV);
lastAngle = angle;
}
@@ -231,19 +231,24 @@ public class SwerveModule
}
/**
* Get the absolute position.
* Get the absolute position. Falls back to relative position on reading failure.
*
* @return Absolute encoder angle in degrees.
*/
public double getAbsolutePosition()
{
double angle = absoluteEncoder.getAbsolutePosition();
if (absoluteEncoder.readingError)
if (absoluteEncoder != null)
{
angle = getRelativePosition();
double angle = absoluteEncoder.getAbsolutePosition();
if (absoluteEncoder.readingError)
{
angle = getRelativePosition();
}
return angle;
}
return angle;
return getRelativePosition();
}
/**