Skip to content
This repository was archived by the owner on Jul 20, 2025. It is now read-only.

Commit 13c3e14

Browse files
add checking current state
1 parent 190ab76 commit 13c3e14

File tree

2 files changed

+23
-16
lines changed

2 files changed

+23
-16
lines changed

src/main/java/frc/robot/RobotContainer.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public class RobotContainer {
3131
private final Trigger hasGamePieceTrigger = new Trigger(subStager::getHasGP);
3232
private final Trigger isGPDetectedTrigger = new Trigger(subHopper::getGamePieceHopper);
3333

34+
3435
// Drive
3536
public RobotContainer() {
3637
subDrivetrain.setDefaultCommand(com_Drive);
@@ -46,7 +47,7 @@ private void configureBindings() {
4647
() -> subStateMachine.tryState(RobotState.INTAKE_GROUND)))
4748
.onFalse(Commands.deferredProxy(
4849
() -> subStateMachine.tryState(RobotState.NONE))
49-
.unless(isGPDetectedTrigger));
50+
.onlyIf(subStateMachine::desiredIsCurrent));
5051

5152
// PrepShooter
5253
m_driverController.btn_A
@@ -63,34 +64,33 @@ private void configureBindings() {
6364
.whileTrue(Commands.deferredProxy(
6465
() -> subStateMachine.tryState(RobotState.EJECT_SHOOTER)))
6566
.onFalse(Commands.deferredProxy(
66-
() -> subStateMachine.tryState(RobotState.NONE)));
67+
() -> subStateMachine.tryState(RobotState.NONE)).onlyIf(subStateMachine::desiredIsCurrent));
6768

6869
// EjectIntake
6970
m_driverController.btn_LeftBumper
7071
.whileTrue(Commands.deferredProxy(
7172
() -> subStateMachine.tryState(RobotState.EJECT_INTAKE)))
7273
.onFalse(Commands.deferredProxy(
73-
() -> subStateMachine.tryState(RobotState.NONE)));
74+
() -> subStateMachine.tryState(RobotState.NONE)).onlyIf(subStateMachine::desiredIsCurrent));
7475

7576
// Shoot
7677
m_driverController.btn_RightTrigger
7778
.onTrue(Commands.deferredProxy(
7879
() -> subStateMachine.tryState(RobotState.SHOOT)))
7980
.onFalse(Commands.deferredProxy(
80-
() -> subStateMachine.tryState(RobotState.NONE)));
81-
81+
() -> subStateMachine.tryState(RobotState.NONE)).onlyIf(subStateMachine::desiredIsCurrent) );
8282

8383
// hasGP
84-
85-
hasGamePieceTrigger
86-
.whileTrue(Commands.deferredProxy(
87-
() -> subStateMachine.tryState(RobotState.HAS_GP)));
8884

89-
//StopShooter
85+
hasGamePieceTrigger
86+
.whileTrue(Commands.deferredProxy(
87+
() -> subStateMachine.tryState(RobotState.HAS_GP)));
88+
89+
// StopShooter
9090
m_driverController.btn_X
91-
.onTrue(Commands.deferredProxy(
92-
() -> subStateMachine.tryState(RobotState.STOP_SHOOTER) ));
93-
91+
.onTrue(Commands.deferredProxy(
92+
() -> subStateMachine.tryState(RobotState.STOP_SHOOTER)));
93+
9494
}
9595

9696
public Command getAutonomousCommand() {

src/main/java/frc/robot/subsystems/StateMachine.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
public class StateMachine extends SubsystemBase {
1515
/** Creates a new StateMachine. */
1616
public static RobotState currentState;
17+
public static RobotState globalDesiredState;
1718
Hopper globalHopper;
1819
Intake globalIntake;
1920
Shooter globalShooter;
@@ -29,6 +30,7 @@ public StateMachine(Hopper passedHopper, Intake passedIntake, Shooter passedShoo
2930
globalStager = passedStager;
3031
globalLED = passedLED;
3132
currentState = RobotState.NONE;
33+
globalDesiredState = currentState;
3234
}
3335

3436
public enum RobotState {
@@ -51,7 +53,12 @@ public RobotState getState() {
5153
return currentState;
5254
}
5355

56+
public boolean desiredIsCurrent() {
57+
return globalDesiredState == currentState;
58+
}
59+
5460
public Command tryState(RobotState desiredState) {
61+
globalDesiredState = desiredState;
5562
switch (desiredState) { // check what our desired state is
5663
case EJECT_INTAKE: // if desired state is eject intake
5764
switch (currentState) { // check what our current state is
@@ -104,8 +111,8 @@ public Command tryState(RobotState desiredState) {
104111
case STOP_SHOOTER:
105112
switch (currentState) {
106113
case PREP_SHOOTER:
107-
return new StopShooter(globalStateMachine, globalShooter);
108-
114+
return new StopShooter(globalStateMachine, globalShooter);
115+
109116
}
110117
break;
111118
case NONE:
@@ -118,7 +125,7 @@ public Command tryState(RobotState desiredState) {
118125
return new none(globalStateMachine, globalHopper, globalIntake, globalShooter, globalStager, globalLED);
119126
}
120127
break;
121-
128+
122129
// default:
123130
// return new None(globalHopper, globalIntake, globalShooter, globalStager);
124131
}

0 commit comments

Comments
 (0)