Commit | Line | Data |
---|---|---|
376b38ae ME |
1 | package org.usfirst.frc.team3501.robot.commands; |
2 | ||
e47f0862 SG |
3 | import org.usfirst.frc.team3501.robot.Robot; |
4 | ||
376b38ae ME |
5 | import edu.wpi.first.wpilibj.command.Command; |
6 | ||
bc4a46b0 | 7 | public 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 | } |