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