I was finding the shooter command names difficult to follow, since they all worked slightly differently, and didn't do a good job describing what they did. I've renamed (and slightly refactored) these commands in an attempt to have them make more sense.
StartShooter -> StartStopShooterCommand - since it is a command that starts the shooter on init and stops the shooter on end. No isFinished case. This one also got refactored to start/stop the shooter at a given speed as opposed
to a single hard-coded speed.
ReverseShooter -> ReverseStopShooterCommand - same as the above, but runs the shooter in reverse. Subclasses the above command. The "reverse" cannot be configured - it is just a flat -10 ft/s.
AutoStartShooter -> StartShooterInstantCommand - since it's a command that extends InstantCommand and only starts the shooter. Since it's an instant command - no end case or isFinished case.
AutoStopShooter -> StopShooterInstantCommand - same as the above.
QuickStartShooterCommand -> StartShooterUpToSpeedCommand - this one was particularly weird, since it is the OPPOSITE of a quick start command. It's actually a slow start. Starts the shooter and ends when the shooter gets up to speed. As the name suggests - it does not stop the shooter in it's end case.
I was finding the shooter command names difficult to follow, since they all worked slightly differently, and didn't do a good job describing what they did. I've renamed (and slightly refactored) these commands in an attempt to have them make more sense.
StartShooter
->StartStopShooterCommand
- since it is a command that starts the shooter on init and stops the shooter on end. NoisFinished
case. This one also got refactored to start/stop the shooter at a given speed as opposed to a single hard-coded speed.ReverseShooter
->ReverseStopShooterCommand
- same as the above, but runs the shooter in reverse. Subclasses the above command. The "reverse" cannot be configured - it is just a flat -10 ft/s.AutoStartShooter
->StartShooterInstantCommand
- since it's a command that extendsInstantCommand
and only starts the shooter. Since it's an instant command - no end case or isFinished case.AutoStopShooter
->StopShooterInstantCommand
- same as the above.QuickStartShooterCommand
->StartShooterUpToSpeedCommand
- this one was particularly weird, since it is the OPPOSITE of a quick start command. It's actually a slow start. Starts the shooter and ends when the shooter gets up to speed. As the name suggests - it does not stop the shooter in it's end case.