diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index 8b2993c..f173420 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -33,6 +33,7 @@ public static class FieldConstants { public static class OperatorConstants { public static final int kDriverControllerPort = 0; public static final int kAuxControllerPort = 1; + public static final int kAltDriverControlPort = 2; } public static class DriveConstants { diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 66fee7d..fa510da 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -53,6 +53,9 @@ public class RobotContainer { private final CommandXboxController m_auxBox = new CommandXboxController(OperatorConstants.kAuxControllerPort); + private final CommandXboxController m_altDriverController = + new CommandXboxController(OperatorConstants.kAltDriverControlPort); + private final Field2d m_autoPreview = new Field2d(); /** The container for the robot. Contains subsystems, OI devices, and commands. */ @@ -135,10 +138,11 @@ private void configureBindings() { m_auxBox.rightStick().onTrue(m_lights.runPurple()); m_auxBox.leftTrigger().onTrue(m_lights.runDefaultColor()); m_auxBox.rightTrigger(). - whileTrue( - Commands.run(() -> m_drivetrain.setPauseMainControl(true))) - .whileFalse( - Commands.run(() -> m_drivetrain.setPauseMainControl(false))); + onTrue( + Commands.run(() -> { + m_drivetrain.togglePauseMainControl(); + m_lights.setPauseMainControl(m_drivetrain.getPauseMainControl()); + })); // new Combo(m_auxBox.getHID()) // .quarterCircleKick() diff --git a/src/main/java/frc/robot/subsystems/Drivetrain.java b/src/main/java/frc/robot/subsystems/Drivetrain.java index 4871949..6fd2b92 100644 --- a/src/main/java/frc/robot/subsystems/Drivetrain.java +++ b/src/main/java/frc/robot/subsystems/Drivetrain.java @@ -289,6 +289,10 @@ public Command cheesyDrive(DoubleSupplier forward, DoubleSupplier rot, Trigger q }); } + public boolean getPauseMainControl() { + return pauseMainControl; + } + public void setSlowMode(boolean slowMode) { this.slowMode = slowMode; } @@ -301,6 +305,10 @@ public void setPauseMainControl(boolean pauseMainControl) { this.pauseMainControl = pauseMainControl; } + public void togglePauseMainControl() { + pauseMainControl = !pauseMainControl; + } + @Override public void periodic() { // This method will be called once per scheduler run diff --git a/src/main/java/frc/robot/subsystems/Lights.java b/src/main/java/frc/robot/subsystems/Lights.java index 1fe7eaf..7a37bad 100644 --- a/src/main/java/frc/robot/subsystems/Lights.java +++ b/src/main/java/frc/robot/subsystems/Lights.java @@ -3,6 +3,7 @@ import edu.wpi.first.wpilibj.AddressableLED; import edu.wpi.first.wpilibj.AddressableLEDBuffer; import edu.wpi.first.wpilibj.DriverStation; +import edu.wpi.first.wpilibj.Timer; import edu.wpi.first.wpilibj.DriverStation.Alliance; import edu.wpi.first.wpilibj.util.Color; import edu.wpi.first.wpilibj2.command.Command; @@ -16,6 +17,8 @@ public class Lights extends SubsystemBase { private AddressableLED m_lightBar; private Color color = new Color(0, 0, 0); + private final Color pausedColor = new Color(255, 125, 0); + private boolean pauseMainControl = false; public Lights() { initBar(); @@ -32,7 +35,11 @@ public Lights() { @Override public void periodic() { - setColor(color); + if(pauseMainControl) { + setColor((int) Timer.getFPGATimestamp() % 2 == 0 ? pausedColor : Color.kBlack); + } else { + setColor(color); + } m_lightBar.setData(m_lightBarBuffer); } @@ -82,4 +89,8 @@ public Command runYellow() { public Command runPurple() { return run(() -> purple()); } + + public void setPauseMainControl(boolean pauseMainControl) { + this.pauseMainControl = pauseMainControl; + } } \ No newline at end of file