-package org.usfirst.frc.team3501.robot.commands.doublejointeddefensearm;
-
-import org.usfirst.frc.team3501.robot.Robot;
-
-import edu.wpi.first.wpilibj.command.Command;
-
-/***
- * This command moves the defense arm to a input angle position.
- * Requires input of a targetPosition and a speed.
- *
- * @author shaina
- *
- */
-public class SetArmToAngle extends Command {
- private static final double THRESHOLD = 0.1;
- private double speed;
- private double targetPosition;
- private double currentPosition;
- private boolean isDecreasing = false;
-
- public SetArmToAngle(double speed, double targetPosition) {
- requires(Robot.defenseArm);
-
- this.speed = speed;
- this.targetPosition = targetPosition;
- }
-
- @Override
- public void initialize() {
- currentPosition = Robot.defenseArm.getArmPotAngle();
-
- if (currentPosition > targetPosition) {
- Robot.defenseArm.setArmSpeed(-speed);
- isDecreasing = true;
- } else {
- Robot.defenseArm.setArmSpeed(speed);
- isDecreasing = false;
- }
- }
-
- @Override
- public void execute() {
-
- }
-
- @Override
- public boolean isFinished() {
- currentPosition = Robot.defenseArm.getArmPotAngle();
-
- if (isDecreasing == true) {
- return (currentPosition <= targetPosition + THRESHOLD);
- } else {
- return (currentPosition >= targetPosition - THRESHOLD);
- }
- }
-
- @Override
- public void end() {
- Robot.defenseArm.setArmSpeed(0);
- }
-
- @Override
- protected void interrupted() {
- end();
- }
-
-}