}));
}
- if (turret != null && drive != null && hood != null && shooter != null && spindexer != null) {
- Command runSpindexer = new RunSpindexer(spindexer, turret, hood);
+ if (turret != null && drive != null && hood != null && shooter != null && spindexer != null && intake != null) {
+ Command runSpindexer = new RunSpindexer(spindexer, turret, hood, intake);
NamedCommands.registerCommand("Auto shoot", new AutoShootCommand(turret, drive, hood, shooter, spindexer));
NamedCommands.registerCommand("Start Spindexer",
new InstantCommand(() -> CommandScheduler.getInstance().schedule(runSpindexer)));
import edu.wpi.first.wpilibj2.command.Command;
import frc.robot.subsystems.Intake.Intake;
-import frc.robot.subsystems.spindexer.Spindexer;
public class ReverseMotors extends Command {
private Intake intake;
- private Spindexer spindexer;
- public ReverseMotors(Intake intake, Spindexer spindexer){
+ public ReverseMotors(Intake intake){
this.intake = intake;
- this.spindexer = spindexer;
addRequirements(intake);
}
import edu.wpi.first.wpilibj.Timer;
import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
import edu.wpi.first.wpilibj2.command.Command;
+import edu.wpi.first.wpilibj2.command.ScheduleCommand;
import frc.robot.constants.Constants;
+import frc.robot.constants.IntakeConstants;
+import frc.robot.subsystems.Intake.Intake;
import frc.robot.subsystems.hood.Hood;
import frc.robot.subsystems.spindexer.Spindexer;
import frc.robot.subsystems.spindexer.SpindexerConstants;
private Spindexer spindexer;
private Turret turret;
private Hood hood;
+ private Intake intake;
private Debouncer jam_debouncer = new Debouncer(SpindexerConstants.JAM_DEBOUNCE_TIME, DebounceType.kRising); // if there is jam I would think this is 0 -> 1
private boolean wasHoodForcedDown = false;
private Timer reverseTimer = new Timer();
+
+ private double storedIntakeSpeed = 0.0;
- public RunSpindexer(Spindexer spindexer, Turret turret, Hood hood) {
+ public RunSpindexer(Spindexer spindexer, Turret turret, Hood hood, Intake intake) {
this.spindexer = spindexer;
this.turret = turret;
this.hood = hood;
+ this.intake = intake;
addRequirements(spindexer);
}
reversing = true;
reverseTimer.reset();
reverseTimer.start();
+ storedIntakeSpeed = intake.getSpeed();
}
if (!reversing) {
spindexer.maxSpindexer();
} else {
spindexer.reverseSpindexer();
+
+ if (intake.getPosition() > IntakeConstants.INTERMEDIATE_EXTENSION + 1.0) {
+ intake.spinReverse();
+ } else {
+ intake.extend();
+ }
+
if (reverseTimer.hasElapsed(SpindexerConstants.REVERSE_DEBOUNCE_TIME)) {
reversing = false;
+ intake.spin(storedIntakeSpeed);
}
}
if (!Constants.DISABLE_SMART_DASHBOARD) {
}
// Spindexer
- if (spindexer != null && turret != null && hood != null) {
+ if (spindexer != null && turret != null && hood != null && intake != null) {
// Toggle spindexer
controller.get(PS5Button.LEFT_TRIGGER).toggleOnTrue(
- new RunSpindexer(spindexer, turret, hood)
+ new RunSpindexer(spindexer, turret, hood, intake)
);
}