2026-01-27 18:16:23 -08:00
|
|
|
package frc4388.robot.subsystems.intake;
|
|
|
|
|
|
|
|
|
|
import static edu.wpi.first.units.Units.Amps;
|
|
|
|
|
import static edu.wpi.first.units.Units.Rotations;
|
|
|
|
|
import static edu.wpi.first.units.Units.RotationsPerSecond;
|
2026-02-27 20:53:02 -08:00
|
|
|
import static edu.wpi.first.units.Units.RotationsPerSecondPerSecond;
|
2026-01-27 18:16:23 -08:00
|
|
|
|
|
|
|
|
import org.littletonrobotics.junction.AutoLog;
|
|
|
|
|
|
|
|
|
|
import edu.wpi.first.units.measure.Angle;
|
2026-02-27 20:38:24 -08:00
|
|
|
import edu.wpi.first.units.measure.AngularAcceleration;
|
|
|
|
|
import edu.wpi.first.units.measure.AngularVelocity;
|
2026-01-27 18:16:23 -08:00
|
|
|
import edu.wpi.first.units.measure.Current;
|
|
|
|
|
|
|
|
|
|
public interface IntakeIO {
|
|
|
|
|
@AutoLog
|
|
|
|
|
public class IntakeState {
|
2026-03-25 11:15:46 -06:00
|
|
|
double currentBounceTime = 0;
|
|
|
|
|
|
2026-02-14 15:57:33 -07:00
|
|
|
boolean retractedLimit = false;
|
2026-01-27 18:16:23 -08:00
|
|
|
Angle armAngle = Rotations.of(0);
|
|
|
|
|
Angle armTargetAngle = Rotations.of(0);
|
|
|
|
|
Current armMotorCurrent = Amps.of(0);
|
|
|
|
|
|
2026-02-27 20:53:02 -08:00
|
|
|
AngularVelocity armMotorVelocity = RotationsPerSecond.of(0);
|
2026-03-28 09:59:30 -06:00
|
|
|
// AngularAcceleration armMotorAcceleration = RotationsPerSecondPerSecond.of(0);
|
2026-02-27 20:19:01 -08:00
|
|
|
|
2026-01-27 18:16:23 -08:00
|
|
|
// Angle shooterPitch = Rotations.of(0);
|
|
|
|
|
// Angle shooterTargetPitch = Rotations.of(0);
|
|
|
|
|
// Current pitchMotorCurrent = Amps.of(0);
|
|
|
|
|
|
2026-02-17 18:53:26 -08:00
|
|
|
double rollerOutput = 0;
|
|
|
|
|
double rollerTargetOutput = 0;
|
2026-01-27 18:16:23 -08:00
|
|
|
Current rollerMotorCurrent = Amps.of(0);
|
|
|
|
|
|
|
|
|
|
// LinearVelocity feederVelocity = InchesPerSecond.of(0);
|
|
|
|
|
// LinearVelocity feederTargetVelocity = InchesPerSecond.of(0);
|
|
|
|
|
// Current feederMotorCurrent = Amps.of(0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// public default void setShooterAngle(ShooterState state, Angle angle) {}
|
|
|
|
|
// public default void setShooterPitch(ShooterState state, Angle angle) {}
|
|
|
|
|
public default void setArmAngle(IntakeState state, Angle angle) {}
|
2026-02-27 20:53:02 -08:00
|
|
|
public default void testSetArmAngle(IntakeState state, Angle angle){}
|
2026-02-14 10:55:51 -08:00
|
|
|
public default void stopArm() {}
|
2026-02-17 18:53:26 -08:00
|
|
|
public default void setRollerOutput(IntakeState state, double rollerOutput) {}
|
2026-02-16 15:57:24 -07:00
|
|
|
public default void armOutput(double percentOutput) {}
|
2026-01-27 18:16:23 -08:00
|
|
|
public default void updateInputs(IntakeState state) {}
|
2026-02-09 17:18:54 -08:00
|
|
|
public default void updateGains() {}
|
2026-01-27 18:16:23 -08:00
|
|
|
}
|