create and fill in setHandToAngle command and change variable name for setHandToAngle...
authorShaina Chen <shaina.sierra@gmail.com>
Fri, 12 Feb 2016 03:08:29 +0000 (19:08 -0800)
committerShaina Chen <shaina.sierra@gmail.com>
Fri, 12 Feb 2016 03:08:29 +0000 (19:08 -0800)
src/org/usfirst/frc/team3501/robot/commands/RetractDefenseArm.java
src/org/usfirst/frc/team3501/robot/commands/SetHandToAngle.java [new file with mode: 0755]

index a3cb6d4589e4b1a7824b5c25e5661545f2d56a58..8d530bee8679dae19016d0d0f349fc074e28f5ec 100755 (executable)
@@ -10,6 +10,6 @@ public class RetractDefenseArm extends CommandGroup {
     requires(Robot.defenseArm);
 
     addParallel(new SetArmToAngle(speed, retractPosition));
-    addParallel(new SetHandToLevel(speed, retractPosition));
+    addParallel(new SetHandToAngle(speed, retractPosition));
   }
 }
diff --git a/src/org/usfirst/frc/team3501/robot/commands/SetHandToAngle.java b/src/org/usfirst/frc/team3501/robot/commands/SetHandToAngle.java
new file mode 100755 (executable)
index 0000000..d72db43
--- /dev/null
@@ -0,0 +1,60 @@
+package org.usfirst.frc.team3501.robot.commands;
+
+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(double speed, double targetPosition) {
+    requires(Robot.defenseArm);
+
+    this.speed = speed;
+    this.targetPosition = targetPosition;
+  }
+
+  @Override
+  public void initialize() {
+    currentPosition = Robot.defenseArm.getHandPotAngle();
+
+    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.getHandPotAngle();
+
+    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();
+  }
+
+}