Add alerts to PWMDutyCycleEncoder and SparkMax

This commit is contained in:
Alex Sirota
2024-03-24 11:46:53 -07:00
parent 9a2eb4e74f
commit 20a8c990aa
2 changed files with 19 additions and 1 deletions

View File

@@ -26,6 +26,10 @@ public class PWMDutyCycleEncoderSwerve extends SwerveAbsoluteEncoder
* An {@link Alert} for if the encoder cannot report accurate velocities. * An {@link Alert} for if the encoder cannot report accurate velocities.
*/ */
private Alert inaccurateVelocities; private Alert inaccurateVelocities;
/**
* An {@link Alert} for if the encoder is disconnected.
*/
private Alert disconnected;
/** /**
* Constructor for the PWM duty cycle encoder. * Constructor for the PWM duty cycle encoder.
@@ -39,6 +43,10 @@ public class PWMDutyCycleEncoderSwerve extends SwerveAbsoluteEncoder
"Encoders", "Encoders",
"The PWM Duty Cycle encoder may not report accurate velocities!", "The PWM Duty Cycle encoder may not report accurate velocities!",
Alert.AlertType.WARNING_TRACE); Alert.AlertType.WARNING_TRACE);
inaccurateVelocities = new Alert(
"Encoders",
"The swerve encoder on port " + pin + "is disconnected!",
Alert.AlertType.ERROR_TRACE);
} }
@@ -61,6 +69,7 @@ public class PWMDutyCycleEncoderSwerve extends SwerveAbsoluteEncoder
@Override @Override
public double getAbsolutePosition() public double getAbsolutePosition()
{ {
disconnected.set(!encoder.isConnected());
return (isInverted ? -1.0 : 1.0) * encoder.getAbsolutePosition() * 360; return (isInverted ? -1.0 : 1.0) * encoder.getAbsolutePosition() * 360;
} }
@@ -83,6 +92,7 @@ public class PWMDutyCycleEncoderSwerve extends SwerveAbsoluteEncoder
@Override @Override
public double getVelocity() public double getVelocity()
{ {
disconnected.set(!encoder.isConnected());
inaccurateVelocities.set(true); inaccurateVelocities.set(true);
return encoder.get(); return encoder.get();
} }

View File

@@ -52,6 +52,11 @@ public class SparkMaxSwerve extends SwerveMotor
*/ */
private Supplier<Double> position; private Supplier<Double> position;
/**
* An {@link Alert} for if there is an error configuring the motor.
*/
private Alert failureConfiguringAlert;
/** /**
* Initialize the swerve motor. * Initialize the swerve motor.
* *
@@ -74,6 +79,9 @@ public class SparkMaxSwerve extends SwerveMotor
position = encoder::getPosition; position = encoder::getPosition;
// Spin off configurations in a different thread. // Spin off configurations in a different thread.
// configureSparkMax(() -> motor.setCANTimeout(0)); // Commented out because it prevents feedback. // configureSparkMax(() -> motor.setCANTimeout(0)); // Commented out because it prevents feedback.
failureConfiguringAlert = new Alert("Motors",
"Failure configuring motor " + motor.getDeviceId(),
Alert.AlertType.WARNING_TRACE);
} }
/** /**
@@ -101,7 +109,7 @@ public class SparkMaxSwerve extends SwerveMotor
return; return;
} }
} }
DriverStation.reportWarning("Failure configuring motor " + motor.getDeviceId(), true); failureConfiguringAlert.set(true);
} }
/** /**