Commit | Line | Data |
---|---|---|
44c26e0c SG |
1 | package org.usfirst.frc.team3501.robot.commands.climber; |
2 | ||
3 | import org.usfirst.frc.team3501.robot.Constants; | |
4 | import org.usfirst.frc.team3501.robot.Robot; | |
5 | ||
6 | import edu.wpi.first.wpilibj.Timer; | |
7 | import edu.wpi.first.wpilibj.command.Command; | |
8 | ||
9 | /** | |
10 | * This command runs the winch at a specified speed and time in seconds when the | |
11 | * button triggering it is pressed. This command also makes the drive train | |
12 | * motors run because the winch is controlled by the drive train. | |
13 | * | |
14 | * pre-condition: This command is run by a button in OI. The robot must be | |
15 | * attached to the rope. | |
16 | * | |
17 | * post-condition: Winch motor set to a specified speed for a specified time. | |
18 | * | |
19 | * @param motorVal | |
20 | * value range is from -1 to 1 | |
21 | * @param time | |
22 | * in seconds | |
23 | * @author shivanighanta | |
24 | * | |
25 | */ | |
26 | public class MaintainWinchSpeed extends Command { | |
27 | Timer timer; | |
28 | private double time; | |
29 | private double motorVal; | |
30 | ||
31 | /** | |
32 | * See JavaDoc comment in class for details | |
33 | * | |
34 | * @param time | |
35 | * time in seconds to run the winch | |
36 | * @param motorVal | |
37 | * value range is from -1 to 1 | |
38 | */ | |
39 | public MaintainWinchSpeed(double time, double motorVal) { | |
40 | requires(Robot.getDriveTrain()); | |
41 | this.time = time; | |
42 | this.motorVal = motorVal; | |
43 | } | |
44 | ||
45 | @Override | |
46 | protected void initialize() { | |
47 | timer.start(); | |
48 | } | |
49 | ||
50 | @Override | |
51 | protected void execute() { | |
52 | Robot.getDriveTrain().setMotorValues(Constants.Climber.MAINTAIN_MOTOR_VAL, | |
53 | Constants.Climber.MAINTAIN_MOTOR_VAL); | |
54 | ||
55 | } | |
56 | ||
57 | @Override | |
58 | protected boolean isFinished() { | |
59 | return timer.get() >= time; | |
60 | } | |
61 | ||
62 | @Override | |
63 | protected void end() { | |
64 | Robot.getDriveTrain().stop(); | |
65 | } | |
66 | ||
67 | @Override | |
68 | protected void interrupted() { | |
69 | end(); | |
70 | } | |
71 | } |