2026-01-10 16:52:43 -07:00
|
|
|
package frc4388.robot.subsystems.shooter;
|
|
|
|
|
|
|
|
|
|
import static edu.wpi.first.units.Units.Amps;
|
|
|
|
|
import static edu.wpi.first.units.Units.RotationsPerSecond;
|
|
|
|
|
|
|
|
|
|
import org.littletonrobotics.junction.AutoLog;
|
|
|
|
|
|
|
|
|
|
import edu.wpi.first.units.measure.AngularVelocity;
|
|
|
|
|
import edu.wpi.first.units.measure.Current;
|
2026-03-19 14:21:46 -06:00
|
|
|
import frc4388.robot.subsystems.intake.Intake;
|
|
|
|
|
import frc4388.robot.subsystems.led.LED;
|
2026-01-10 16:52:43 -07:00
|
|
|
|
|
|
|
|
public interface ShooterIO {
|
|
|
|
|
@AutoLog
|
|
|
|
|
public class ShooterState {
|
2026-01-13 10:08:44 -07:00
|
|
|
// Angle shooterAngle = Rotations.of(0);
|
|
|
|
|
// Angle shooterTargetAngle = Rotations.of(0);
|
|
|
|
|
// Current angleMotorCurrent = Amps.of(0);
|
2026-01-10 16:52:43 -07:00
|
|
|
|
2026-01-13 10:08:44 -07:00
|
|
|
// Angle shooterPitch = Rotations.of(0);
|
|
|
|
|
// Angle shooterTargetPitch = Rotations.of(0);
|
|
|
|
|
// Current pitchMotorCurrent = Amps.of(0);
|
2026-01-10 16:52:43 -07:00
|
|
|
|
2026-03-19 18:32:02 -06:00
|
|
|
AngularVelocity motor1TargetVelocity = RotationsPerSecond.of(0);
|
2026-01-27 18:13:51 -07:00
|
|
|
AngularVelocity motor2TargetVelocity = RotationsPerSecond.of(0);
|
2026-02-16 18:21:53 -07:00
|
|
|
double indexerTargetOutput = 0;
|
|
|
|
|
|
2026-01-27 19:15:37 -07:00
|
|
|
|
|
|
|
|
AngularVelocity motor1Velocity = RotationsPerSecond.of(0);
|
|
|
|
|
AngularVelocity motor2Velocity = RotationsPerSecond.of(0);
|
2026-02-16 18:21:53 -07:00
|
|
|
double indexerOutput = 0;
|
2026-01-27 19:15:37 -07:00
|
|
|
|
2026-01-27 18:13:51 -07:00
|
|
|
Current motor1Current = Amps.of(0);
|
2026-01-27 19:15:37 -07:00
|
|
|
Current motor2Current = Amps.of(0);
|
|
|
|
|
Current indexerCurrent = Amps.of(0);
|
2026-01-27 18:13:51 -07:00
|
|
|
|
2026-02-09 17:18:54 -08:00
|
|
|
// LinearVelocity motorLinearVelocity = InchesPerSecond.of(0);
|
2026-01-10 16:52:43 -07:00
|
|
|
}
|
|
|
|
|
|
2026-01-13 10:08:44 -07:00
|
|
|
// public default void setShooterAngle(ShooterState state, Angle angle) {}
|
|
|
|
|
// public default void setShooterPitch(ShooterState state, Angle angle) {}
|
2026-02-09 17:18:54 -08:00
|
|
|
public default void setShooterVelocity(ShooterState state, AngularVelocity angularVelocity) {}
|
2026-02-24 13:50:30 -07:00
|
|
|
public default void setShooterCurrentLimitSpeed(
|
|
|
|
|
ShooterState state,
|
2026-02-25 17:34:24 -07:00
|
|
|
double percentOutput
|
|
|
|
|
// Current currentLimit,
|
|
|
|
|
// AngularVelocity targetVelocity
|
2026-02-24 13:50:30 -07:00
|
|
|
) {}
|
2026-02-09 17:18:54 -08:00
|
|
|
// public default void setMotor2Velocity(ShooterState state, AngularVelocity angularVelocity) {}
|
2026-02-16 18:21:53 -07:00
|
|
|
public default void setIndexerOutput(ShooterState state, double percentOutput) {}
|
2026-01-10 16:52:43 -07:00
|
|
|
|
|
|
|
|
public default void updateInputs(ShooterState state) {}
|
2026-02-09 17:18:54 -08:00
|
|
|
|
2026-03-19 14:21:46 -06:00
|
|
|
public default void motorStalled(ShooterState state, Intake m_Intake, LED m_robotLED) {}
|
2026-02-09 17:18:54 -08:00
|
|
|
|
|
|
|
|
public default void updateGains() {}
|
2026-01-10 16:52:43 -07:00
|
|
|
}
|