package org.usfirst.frc.team3501.robot.commands.climber;
import org.usfirst.frc.team3501.robot.Robot;
-
-import com.sun.glass.ui.Timer;
+import org.usfirst.frc.team3501.robot.subsystems.Climber;
import edu.wpi.first.wpilibj.command.Command;
/**
- * Runs the winch for a given time and motor value
+ * This command runs the winch at a specified speed and time in seconds when the
+ * button triggering it is pressed. This command also makes the drive train
+ * motors run because the winch is controlled by the drive train.
+ *
+ * pre-condition: This command is run by a button in OI. The robot must be
+ * attached to the rope.
+ *
+ * post-condition: Winch motor set to a specified speed for a specified time.
*
+ * @param motorVal
+ * value range is from -1 to 1
+ * @param time
+ * in seconds
* @author shivanighanta
*
*/
+
public class RunWinch extends Command {
- Timer timer;
+ Climber climber = Robot.getClimber();
+
private double time;
private double motorVal;
+ /**
+ * See JavaDoc comment in class for details
+ *
+ * @param time
+ * time in seconds to run the winch
+ * @param motorVal
+ * value range is from -1 to 1
+ */
public RunWinch(double time, double motorVal) {
- requires(Robot.getClimber());
+ requires(climber);
this.time = time;
this.motorVal = motorVal;
}
@Override
protected void initialize() {
- timer.start();
- Robot.getClimber().setMotorValue(motorVal);
}
@Override
protected void execute() {
-
+ climber.setMotorValues(motorVal);
}
@Override
protected boolean isFinished() {
- return timer.get() >= time;
+ return timeSinceInitialized() >= time;
}
@Override
protected void end() {
- Robot.getClimber().stop();
+ climber.stop();
}
@Override