fix merge conflicts
[3501/stronghold-2016] / src / org / usfirst / frc / team3501 / robot / subsystems / DefenseArm.java
index 6bb409c052bd1cf3f69a79588ffe2c4593ad9fb8..0794b380a3ec01fbf51d05c9ec70ed27577274c1 100755 (executable)
@@ -13,7 +13,8 @@ public class DefenseArm extends Subsystem {
   private CANTalon defenseHand;
   private double hookHeight;
   private double footHeight;
-  private double[] potAngles = { 0, 45, 90 };
+  private double[] potHandAngles;
+  private double[] potArmAngles;
 
   // angles corresponding to pre-determined heights we will need
 
@@ -29,6 +30,8 @@ public class DefenseArm extends Subsystem {
 
     defenseArm = new CANTalon(Constants.DefenseArm.ARM_PORT);
     defenseHand = new CANTalon(Constants.DefenseArm.HAND_PORT);
+    potHandAngles = createHandPotArray();
+    potArmAngles = createArmPotArray();
   }
 
   public double getArmPotAngle() {
@@ -50,11 +53,30 @@ public class DefenseArm extends Subsystem {
    * @return
    *         the angle of the arm corresponding to that arm location
    */
-  public double getLevelValue(int level) {
-    if (level >= potAngles.length)
-      return potAngles[level];
-    else
-      return 0;
+  public double getAngleForHandLocation(int desiredArmLocation) {
+    return potHandAngles[desiredArmLocation];
+  }
+
+  public double getAngleForArmLocation(int desiredArmLocation) {
+    return potArmAngles[desiredArmLocation];
+  }
+
+  public double[] createHandPotArray() {
+    double[] arr = new double[3];
+
+    for (int i = 0; i < 3; i++) {
+      arr[i] = 45 * i;
+    }
+    return arr;
+  }
+
+  public double[] createArmPotArray() {
+    double[] arr = new double[3];
+
+    for (int i = 0; i < 3; i++) {
+      arr[i] = 45 * i;
+    }
+    return arr;
   }
 
   /***
@@ -96,23 +118,25 @@ public class DefenseArm extends Subsystem {
   }
 
   // TODO: figure out if measurements are all in inches
-  public double getArmHorizontalDist() {
-    double arm = Constants.DefenseArm.ARM_LENGTH * Math.cos(getArmPotAngle());
-    double hand = Constants.DefenseArm.HAND_LENGTH
+  public double getArmHorizontalDisplacement() {
+    double armHorizontalDisplacement = Constants.DefenseArm.ARM_LENGTH
+        * Math.cos(getArmPotAngle());
+    double handHorizontalDisplacement = Constants.DefenseArm.HAND_LENGTH
         * Math.cos(getHandPotAngle());
-    return (arm + hand);
+    return (armHorizontalDisplacement + handHorizontalDisplacement);
   }
 
-  public double getArmHeight() {
+  public double getArmVerticalDisplacement() {
     double armMounted = Constants.DefenseArm.ARM_MOUNTED_HEIGHT;
-    double arm = Constants.DefenseArm.ARM_LENGTH * Math.sin(getArmPotAngle());
-    double hand = Constants.DefenseArm.HAND_LENGTH
+    double armVerticalDisplacement = Constants.DefenseArm.ARM_LENGTH
+        * Math.sin(getArmPotAngle());
+    double handVerticalDisplacement = Constants.DefenseArm.HAND_LENGTH
         * Math.sin(getHandPotAngle());
-    return (armMounted + arm + hand);
+    return (armMounted + armVerticalDisplacement + handVerticalDisplacement);
   }
 
   public boolean isOutsideRange() {
-    if (getArmHorizontalDist() < 15)
+    if (getArmHorizontalDisplacement() < 15)
       return false;
     return true;
   }