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