package org.usfirst.frc.team3501.robot.subsystems;\r
\r
+import org.usfirst.frc.team3501.robot.Constants;\r
+\r
+import edu.wpi.first.wpilibj.AnalogPotentiometer;\r
+import edu.wpi.first.wpilibj.CANTalon;\r
import edu.wpi.first.wpilibj.command.Subsystem;\r
\r
public class DefenseArm extends Subsystem {\r
+ // Defense arm related objects\r
+ private AnalogPotentiometer potentiometer;\r
+ private CANTalon defenseArmMotor;\r
+\r
+ // Defense arm specific constants that relate to the degrees per pulse value\r
+ // for the potentiometers\r
+ private final static double PULSES_PER_ROTATION = 1; // in pulses\r
+ private final static double FULL_RANGE = 270.0; // in degrees\r
+ private final static double OFFSET = -135.0; // in degrees\r
+ private Double[] levelsToDegrees = { 0.0, 45.0, 90.0 }; // 3 level array;\r
+\r
+ // angles at 0,45,90\r
+ // degrees\r
+\r
+ public DefenseArm() {\r
+ potentiometer = new AnalogPotentiometer(Constants.DefenseArm.CHANNEL,\r
+ FULL_RANGE, OFFSET);\r
+ defenseArmMotor = new CANTalon(Constants.DefenseArm.PORT);\r
+ }\r
+\r
+ public double getLevel(int desiredArmLocation) {\r
+ return levelsToDegrees[desiredArmLocation];\r
+ }\r
+\r
+ public void moveArmTo(int levelsToDegrees) {\r
+\r
+ }\r
+\r
+ public void moveArmDown(int levelsToDegrees) {\r
+ // to move arm down levels\r
+ if (levelsToDegrees > 0 & levelsToDegrees < 45) {\r
+ levelsToDegrees = 0;\r
+ if (levelsToDegrees > 45 & levelsToDegrees < 90) {\r
+ levelsToDegrees = 45;\r
+\r
+ }\r
+ }\r
+ }\r
+\r
+ public void moveArmUp(int levelsToDegrees) {\r
+ // to move arm up levels\r
+ if (levelsToDegrees < 45 & levelsToDegrees > 0) {\r
+ levelsToDegrees = 45;\r
+ if (levelsToDegrees < 90 & levelsToDegrees > 45) {\r
+ levelsToDegrees = 90;\r
+\r
+ }\r
+\r
+ }\r
+ }\r
+\r
@Override\r
protected void initDefaultCommand() {\r
}\r