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

Commit acfed3e

Browse files
committed
robot manager fixes
1 parent fe82a78 commit acfed3e

File tree

1 file changed

+56
-68
lines changed

1 file changed

+56
-68
lines changed

src/main/java/frc/robot/robot_manager/RobotManager.java

Lines changed: 56 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -49,102 +49,90 @@ protected void collectInputs() {}
4949

5050
@Override
5151
protected RobotState getNextState(RobotState currentState) {
52-
switch (currentState) {
52+
return switch (currentState) {
5353
case SPEAKER_WAITING,
54-
AMP_WAITING,
55-
FEEDING_WAITING,
56-
PASS_WAITING,
57-
IDLE_NO_GP,
58-
IDLE_WITH_GP,
59-
CLIMBING_1_LINEUP,
60-
CLIMBING_2_HANGING -> {}
61-
case SPEAKER_SCORING -> {
62-
if (!queuer.hasNote()) {
63-
setStateFromRequest(RobotState.IDLE_NO_GP);
64-
}
65-
}
66-
case AMP_SCORING -> {
67-
if (!queuer.hasNote()) {
68-
setStateFromRequest(RobotState.IDLE_NO_GP);
69-
}
70-
}
71-
case FEEDING_SHOOTING -> {
72-
if (!queuer.hasNote()) {
73-
setStateFromRequest(RobotState.IDLE_NO_GP);
74-
}
75-
}
76-
case PASS_SHOOTING -> {
77-
if (!queuer.hasNote()) {
78-
setStateFromRequest(RobotState.IDLE_NO_GP);
79-
}
80-
}
81-
case SPEAKER_PREPARE_TO_SCORE -> {
82-
if (shooter.atGoal() && arm.atGoal()) {
83-
setStateFromRequest(RobotState.SPEAKER_SCORING);
84-
}
85-
}
54+
AMP_WAITING,
55+
FEEDING_WAITING,
56+
PASS_WAITING,
57+
IDLE_NO_GP,
58+
IDLE_WITH_GP,
59+
CLIMBING_1_LINEUP,
60+
CLIMBING_2_HANGING ->
61+
currentState;
62+
case SPEAKER_SCORING, AMP_SCORING, FEEDING_SHOOTING, PASS_SHOOTING ->
63+
!queuer.hasNote() ? RobotState.IDLE_NO_GP : currentState;
8664

87-
case AMP_PREPARE_TO_SCORE -> {
88-
if (shooter.atGoal() && arm.atGoal()) {
89-
setStateFromRequest(RobotState.AMP_SCORING);
90-
}
91-
}
92-
case FEEDING_PREPARE_TO_SHOOT -> {
93-
if (shooter.atGoal() && arm.atGoal()) {
94-
setStateFromRequest(RobotState.FEEDING_SHOOTING);
95-
}
96-
}
97-
case PASS_PREPARE_TO_SHOOT -> {
98-
if (shooter.atGoal() && arm.atGoal()) {
99-
setStateFromRequest(RobotState.PASS_SHOOTING);
100-
}
101-
}
102-
case UNJAM -> {}
103-
case INTAKING -> {
104-
if (intake.hasNote() || queuer.hasNote()) {
105-
setStateFromRequest(RobotState.IDLE_WITH_GP);
106-
}
107-
}
108-
case OUTTAKING -> {
109-
if (!intake.hasNote() && !queuer.hasNote()) {
110-
setStateFromRequest(RobotState.IDLE_NO_GP);
111-
}
112-
}
113-
}
65+
case SPEAKER_PREPARE_TO_SCORE ->
66+
shooter.atGoal() && arm.atGoal() ? RobotState.SPEAKER_SCORING : currentState;
67+
68+
case AMP_PREPARE_TO_SCORE ->
69+
shooter.atGoal() && arm.atGoal() ? RobotState.AMP_SCORING : currentState;
11470

115-
return currentState;
71+
case FEEDING_PREPARE_TO_SHOOT ->
72+
shooter.atGoal() && arm.atGoal() ? RobotState.FEEDING_SHOOTING : currentState;
73+
case PASS_PREPARE_TO_SHOOT ->
74+
shooter.atGoal() && arm.atGoal() ? RobotState.PASS_SHOOTING : currentState;
75+
case UNJAM -> currentState;
76+
case INTAKING -> queuer.hasNote() ? RobotState.IDLE_WITH_GP : currentState;
77+
case OUTTAKING ->
78+
!queuer.hasNote() || !intake.hasNote() ? RobotState.IDLE_NO_GP : currentState;
79+
};
11680
}
11781

11882
@Override
11983
protected void afterTransition(RobotState newState) {
12084
switch (newState) {
121-
case SPEAKER_PREPARE_TO_SCORE, SPEAKER_SCORING, SPEAKER_WAITING -> {
85+
case SPEAKER_PREPARE_TO_SCORE, SPEAKER_WAITING -> {
12286
arm.setState(ArmState.SPEAKER_SHOT);
12387
shooter.setState(ShooterState.SPEAKER_SHOT);
12488
intake.setState(IntakeState.IDLE);
12589
queuer.seState(QueuerState.IDLE_WITH_GP);
12690
}
127-
case AMP_PREPARE_TO_SCORE, AMP_SCORING, AMP_WAITING -> {
91+
case SPEAKER_SCORING -> {
92+
arm.setState(ArmState.SPEAKER_SHOT);
93+
shooter.setState(ShooterState.SPEAKER_SHOT);
94+
intake.setState(IntakeState.IDLE);
95+
queuer.seState(QueuerState.SHOOTING);
96+
}
97+
case AMP_PREPARE_TO_SCORE, AMP_WAITING -> {
12898
arm.setState(ArmState.AMP);
12999
shooter.setState(ShooterState.AMP);
130100
intake.setState(IntakeState.IDLE);
131101
queuer.seState(QueuerState.IDLE_WITH_GP);
132102
}
133-
case FEEDING_PREPARE_TO_SHOOT, FEEDING_SHOOTING, FEEDING_WAITING -> {
103+
case AMP_SCORING -> {
104+
arm.setState(ArmState.AMP);
105+
shooter.setState(ShooterState.AMP);
106+
intake.setState(IntakeState.IDLE);
107+
queuer.seState(QueuerState.SHOOTING);
108+
}
109+
case FEEDING_PREPARE_TO_SHOOT, FEEDING_WAITING -> {
134110
arm.setState(ArmState.FEEDING);
135111
shooter.setState(ShooterState.FEEDING);
136112
intake.setState(IntakeState.IDLE);
137113
queuer.seState(QueuerState.IDLE_WITH_GP);
138114
}
139-
case PASS_PREPARE_TO_SHOOT, PASS_SHOOTING, PASS_WAITING -> {
115+
case FEEDING_SHOOTING -> {
116+
arm.setState(ArmState.FEEDING);
117+
shooter.setState(ShooterState.FEEDING);
118+
intake.setState(IntakeState.IDLE);
119+
queuer.seState(QueuerState.SHOOTING);
120+
}
121+
case PASS_PREPARE_TO_SHOOT, PASS_WAITING -> {
140122
arm.setState(ArmState.PASS);
141123
shooter.setState(ShooterState.PASS);
142124
intake.setState(IntakeState.IDLE);
143125
queuer.seState(QueuerState.IDLE_WITH_GP);
144126
}
127+
case PASS_SHOOTING -> {
128+
arm.setState(ArmState.PASS);
129+
shooter.setState(ShooterState.PASS);
130+
intake.setState(IntakeState.IDLE);
131+
queuer.seState(QueuerState.SHOOTING);
132+
}
145133
case UNJAM -> {
146134
arm.setState(ArmState.AMP);
147-
shooter.setState(ShooterState.DROP);
135+
shooter.setState(ShooterState.PASS);
148136
intake.setState(IntakeState.OUTTAKING);
149137
queuer.seState(QueuerState.OUTTAKING);
150138
}
@@ -167,7 +155,7 @@ protected void afterTransition(RobotState newState) {
167155
queuer.seState(QueuerState.IDLE_NO_GP);
168156
}
169157
case CLIMBING_2_HANGING -> {
170-
arm.setState(ArmState.CLIMBING_1_LINEUP);
158+
arm.setState(ArmState.CLIMBING_2_HANGING);
171159
shooter.setState(ShooterState.IDLE_STOPPED);
172160
intake.setState(IntakeState.IDLE);
173161
queuer.seState(QueuerState.IDLE_NO_GP);
@@ -180,7 +168,7 @@ protected void afterTransition(RobotState newState) {
180168
}
181169
case IDLE_WITH_GP -> {
182170
arm.setState(ArmState.IDLE);
183-
shooter.setState(ShooterState.IDLE_STOPPED);
171+
shooter.setState(ShooterState.IDLE_WARMUP);
184172
intake.setState(IntakeState.IDLE);
185173
queuer.seState(QueuerState.IDLE_WITH_GP);
186174
}

0 commit comments

Comments
 (0)