fill in skeleton for setHandToAngle command
authorShaina Chen <shaina.sierra@gmail.com>
Wed, 10 Feb 2016 04:32:07 +0000 (20:32 -0800)
committerShaina Chen <shaina.sierra@gmail.com>
Wed, 10 Feb 2016 04:32:07 +0000 (20:32 -0800)
src/org/usfirst/frc/team3501/robot/commands/SetHandToAngle.java

index 6a290111fb17e1d4cfaca2ab686dda0b63e63c2e..f7026b47f41c42824590f8420d0b8baf7427b94a 100755 (executable)
@@ -5,13 +5,30 @@ import org.usfirst.frc.team3501.robot.Robot;
 import edu.wpi.first.wpilibj.command.Command;
 
 public class SetHandToAngle extends Command {
+  private static final double THRESHOLD = 0.1;
+  private double speed;
+  private double targetPosition;
+  private double currentPosition;
+  private boolean isDecreasing = false;
 
-  public SetHandToAngle() {
+  public SetHandToAngle(double speed, double targetPosition) {
     requires(Robot.defenseArm);
+
+    this.speed = speed;
+    this.targetPosition = targetPosition;
   }
 
   @Override
   protected void initialize() {
+    currentPosition = Robot.defenseArm.getHandPotAngle();
+
+    if (currentPosition > targetPosition) {
+      Robot.defenseArm.setHandSpeed(-speed);
+      isDecreasing = true;
+    } else {
+      Robot.defenseArm.setHandSpeed(speed);
+      isDecreasing = false;
+    }
 
   }
 
@@ -21,11 +38,18 @@ public class SetHandToAngle extends Command {
 
   @Override
   protected boolean isFinished() {
-    return false;
+    currentPosition = Robot.defenseArm.getHandPotAngle();
+
+    if (isDecreasing == true) {
+      return (currentPosition <= targetPosition + THRESHOLD);
+    } else {
+      return (currentPosition >= targetPosition - THRESHOLD);
+    }
   }
 
   @Override
   protected void end() {
+    Robot.defenseArm.setHandSpeed(0);
   }
 
   @Override