Add ToggleIndexerPiston class
[3501/2017steamworks] / src / org / usfirst / frc / team3501 / robot / commands / driving / ToggleGear.java
CommitLineData
f43a1c52
CZ
1package org.usfirst.frc.team3501.robot.commands.driving;
2
dfb792a1 3import org.usfirst.frc.team3501.robot.Constants;
f43a1c52 4import org.usfirst.frc.team3501.robot.Robot;
dfb792a1 5import org.usfirst.frc.team3501.robot.subsystems.DriveTrain;
f43a1c52 6
0704e870 7import edu.wpi.first.wpilibj.DoubleSolenoid.Value;
f43a1c52
CZ
8import edu.wpi.first.wpilibj.command.Command;
9
10/**
0704e870 11 * This command toggles the gear(low or high).
f43a1c52
CZ
12 *
13 * post-condition: if the drivetrain is running at high gear, it will be made to
14 * run at low gear, and vice versa
15 */
16public class ToggleGear extends Command {
dfb792a1 17 DriveTrain driveTrain = Robot.getDriveTrain();
f43a1c52
CZ
18
19 public ToggleGear() {
dfb792a1 20 requires(driveTrain);
f43a1c52
CZ
21 }
22
f43a1c52
CZ
23 @Override
24 protected void initialize() {
0704e870 25
f43a1c52
CZ
26 }
27
f43a1c52
CZ
28 @Override
29 protected void execute() {
dfb792a1
AD
30 Value leftGearPistonValue = driveTrain.getLeftGearPistonValue();
31 Value rightGearPistonValue = driveTrain.getRightGearPistonValue();
e4082bee 32
dfb792a1 33 if (leftGearPistonValue == Constants.DriveTrain.LOW_GEAR) {
e4082bee
RR
34 driveTrain.setHighGear(driveTrain.getLeftPiston());
35 } else {
36 driveTrain.setLowGear(driveTrain.getLeftPiston());
37 }
38
39 if (rightGearPistonValue == Constants.DriveTrain.LOW_GEAR) {
40 driveTrain.setHighGear(driveTrain.getRightPiston());
0704e870 41 } else {
e4082bee 42 driveTrain.setLowGear(driveTrain.getRightPiston());
0704e870 43 }
f43a1c52
CZ
44 }
45
f43a1c52
CZ
46 @Override
47 protected boolean isFinished() {
dfb792a1 48 return true;
f43a1c52
CZ
49 }
50
f43a1c52
CZ
51 @Override
52 protected void end() {
53 }
54
f43a1c52
CZ
55 @Override
56 protected void interrupted() {
57 }
58}