From: Shivani Ghanta Date: Tue, 31 Jan 2017 03:57:58 +0000 (-0800) Subject: Finish implementing MaintainClimbedPosition X-Git-Url: http://challenge-bot.com/repos/?p=3501%2F2017steamworks;a=commitdiff_plain;h=b8791ca4cfd815fbd063523ac6edc452d4a17602 Finish implementing MaintainClimbedPosition --- diff --git a/src/org/usfirst/frc/team3501/robot/Constants.java b/src/org/usfirst/frc/team3501/robot/Constants.java index 2a81945..d34f79a 100644 --- a/src/org/usfirst/frc/team3501/robot/Constants.java +++ b/src/org/usfirst/frc/team3501/robot/Constants.java @@ -53,13 +53,6 @@ public class Constants { public static final SPI.Port GYRO_PORT = SPI.Port.kOnboardCS0; } - public static class Climber { - // MOTOR CONTROLLERS - public static final int MOTOR_VAL = 1; - public static final int MAINTAIN_MOTOR_VAL = 1; - - } - public static class Intake { public static final int INTAKE_ROLLER_PORT = 0; diff --git a/src/org/usfirst/frc/team3501/robot/commands/climber/MaintainClimbedPosition.java b/src/org/usfirst/frc/team3501/robot/commands/climber/MaintainClimbedPosition.java new file mode 100644 index 0000000..1ddde59 --- /dev/null +++ b/src/org/usfirst/frc/team3501/robot/commands/climber/MaintainClimbedPosition.java @@ -0,0 +1,65 @@ +package org.usfirst.frc.team3501.robot.commands.climber; + +import org.usfirst.frc.team3501.robot.Robot; +import org.usfirst.frc.team3501.robot.subsystems.DriveTrain; + +import edu.wpi.first.wpilibj.command.Command; + +/** + * This command runs the winch at a specified speed and time in seconds when the + * robot has completed the climb and 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 have + * completed climbing. + * + * 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 MaintainClimbedPosition extends Command { + private double time; + + /** + * See JavaDoc comment in class for details + * + * @param time + * time in seconds to run the winch + */ + public MaintainClimbedPosition(double time) { + requires(Robot.getDriveTrain()); + this.time = time; + } + + @Override + protected void initialize() { + } + + @Override + protected void execute() { + Robot.getDriveTrain().setMotorValues(DriveTrain.MAINTAIN_CLIMBED_POSITION, + DriveTrain.MAINTAIN_CLIMBED_POSITION); + + } + + @Override + protected boolean isFinished() { + return timeSinceInitialized() >= time; + } + + @Override + protected void end() { + Robot.getDriveTrain().stop(); + } + + @Override + protected void interrupted() { + end(); + } +} diff --git a/src/org/usfirst/frc/team3501/robot/commands/climber/MaintainWinchSpeed.java b/src/org/usfirst/frc/team3501/robot/commands/climber/MaintainWinchSpeed.java deleted file mode 100644 index 9741eac..0000000 --- a/src/org/usfirst/frc/team3501/robot/commands/climber/MaintainWinchSpeed.java +++ /dev/null @@ -1,72 +0,0 @@ -package org.usfirst.frc.team3501.robot.commands.climber; - -import org.usfirst.frc.team3501.robot.Constants; -import org.usfirst.frc.team3501.robot.Robot; - -import edu.wpi.first.wpilibj.Timer; -import edu.wpi.first.wpilibj.command.Command; - -/** - * 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 MaintainWinchSpeed extends Command { - Timer timer; - 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 MaintainWinchSpeed(double time, double motorVal) { - timer = new Timer(); - requires(Robot.getDriveTrain()); - this.time = time; - this.motorVal = motorVal; - } - - @Override - protected void initialize() { - timer.start(); - } - - @Override - protected void execute() { - Robot.getDriveTrain().setMotorValues(Constants.Climber.MAINTAIN_MOTOR_VAL, - Constants.Climber.MAINTAIN_MOTOR_VAL); - - } - - @Override - protected boolean isFinished() { - return timer.get() >= time; - } - - @Override - protected void end() { - Robot.getDriveTrain().stop(); - } - - @Override - protected void interrupted() { - end(); - } -} diff --git a/src/org/usfirst/frc/team3501/robot/commands/climber/RunWinch.java b/src/org/usfirst/frc/team3501/robot/commands/climber/RunWinch.java index 2428aff..7858384 100644 --- a/src/org/usfirst/frc/team3501/robot/commands/climber/RunWinch.java +++ b/src/org/usfirst/frc/team3501/robot/commands/climber/RunWinch.java @@ -2,7 +2,6 @@ package org.usfirst.frc.team3501.robot.commands.climber; import org.usfirst.frc.team3501.robot.Robot; -import edu.wpi.first.wpilibj.Timer; import edu.wpi.first.wpilibj.command.Command; /** @@ -24,7 +23,6 @@ import edu.wpi.first.wpilibj.command.Command; */ public class RunWinch extends Command { - Timer timer; private double time; private double motorVal; @@ -34,18 +32,16 @@ public class RunWinch extends Command { * @param time * time in seconds to run the winch * @param motorVal - * value range is from -1 to 1 + * value range is frosm -1 to 1 */ public RunWinch(double time, double motorVal) { requires(Robot.getDriveTrain()); - timer = new Timer(); this.time = time; this.motorVal = motorVal; } @Override protected void initialize() { - timer.start(); } @Override @@ -56,7 +52,7 @@ public class RunWinch extends Command { @Override protected boolean isFinished() { - return timer.get() >= time; + return timeSinceInitialized() >= time; } @Override diff --git a/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java b/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java index 29dc712..5c94e53 100644 --- a/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java +++ b/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java @@ -22,8 +22,9 @@ public class DriveTrain extends Subsystem { public static final int ENCODER_PULSES_PER_REVOLUTION = 256; public static final double INCHES_PER_PULSE = WHEEL_DIAMETER * Math.PI / ENCODER_PULSES_PER_REVOLUTION; - + public static final int MAINTAIN_CLIMBED_POSITION = 1; private static DriveTrain driveTrain; + private final CANTalon frontLeft, frontRight, rearLeft, rearRight; private final RobotDrive robotDrive; private final Encoder leftEncoder, rightEncoder;