Add command MoveIntakeArmToAngle
[3501/stronghold-2016] / src / org / usfirst / frc / team3501 / robot / commands / MoveIntakeArmToLevel.java
CommitLineData
376b38ae
ME
1package org.usfirst.frc.team3501.robot.commands;
2
f81370d3
SG
3import org.usfirst.frc.team3501.robot.Robot;
4
376b38ae
ME
5import edu.wpi.first.wpilibj.command.Command;
6
021350d2
SO
7public class MoveIntakeArmToLevel extends Command {
8
b2d340cc 9 private double currentAngle;
021350d2 10 private double targetAngle;
b2d340cc
SO
11 private double targetSpeed;
12 private double SENSITIVITY_THRESHOLD = 0.1;
376b38ae 13
021350d2 14 public MoveIntakeArmToLevel(double level, double speed) {
f81370d3 15 requires(Robot.intakeArm);
021350d2 16 targetAngle = Robot.intakeArm.getAngleForLevel(targetAngle);
b2d340cc 17 targetSpeed = speed;
021350d2 18
5585bd31 19 }
376b38ae 20
5585bd31
YN
21 @Override
22 protected void initialize() {
b2d340cc
SO
23 currentAngle = Robot.intakeArm.getArmAngle();
24 double difference = targetAngle - currentAngle;
25 if (difference > 0) {
021350d2 26 Robot.intakeArm.setArmSpeed(targetSpeed);
b2d340cc 27 } else {
021350d2 28 Robot.intakeArm.setArmSpeed(-targetSpeed);
b2d340cc 29 }
5585bd31 30 }
376b38ae 31
5585bd31
YN
32 @Override
33 protected void execute() {
f81370d3 34
5585bd31 35 }
376b38ae 36
5585bd31
YN
37 @Override
38 protected boolean isFinished() {
b2d340cc 39 currentAngle = Robot.intakeArm.getArmAngle();
021350d2
SO
40 double difference = Math.abs(targetAngle - currentAngle);
41 return (difference <= SENSITIVITY_THRESHOLD);
5585bd31 42 }
376b38ae 43
5585bd31
YN
44 @Override
45 protected void end() {
021350d2 46 Robot.intakeArm.stop();
5585bd31 47 }
376b38ae 48
5585bd31
YN
49 @Override
50 protected void interrupted() {
51 }
376b38ae 52}