a4e7f23c93ed0c010409184533b0fcccdec19d88
[3501/stronghold-2016] / src / org / usfirst / frc / team3501 / robot / commands / MoveIntakeArmToAngle.java
1 package org.usfirst.frc.team3501.robot.commands;
2
3 import org.usfirst.frc.team3501.robot.Robot;
4
5 import edu.wpi.first.wpilibj.command.Command;
6
7 public class MoveIntakeArmToAngle extends Command {
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;
13
14 public MoveIntakeArmToAngle(double angle, double speed) {
15 requires(Robot.intakeArm);
16 targetAngle = angle;
17 targetSpeed = speed;
18 }
19
20 @Override
21 protected void initialize() {
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 }
29 }
30
31 @Override
32 protected void execute() {
33
34 }
35
36 @Override
37 protected boolean isFinished() {
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
46 }
47
48 @Override
49 protected void end() {
50 Robot.intakeArm.setArmVoltage(NO_MOVEMENT_SPEED);
51 }
52
53 @Override
54 protected void interrupted() {
55 }
56 }