--- /dev/null
+package org.usfirst.frc3501.RiceCatRobot.commands;
+
+import org.usfirst.frc3501.RiceCatRobot.subsystems.Arm;
+
+import edu.wpi.first.wpilibj.command.Command;
+
+public class MoveArmToLevel extends Command {
+ Arm arm;
+ double slowSpeed = 0.2; //Slow speed to reach a limit switch
+
+ public MoveArmToLevel(double leveldesired) {
+ arm.setArmSpeeds(slowSpeed); //Moves the arm to a certain slow speed
+ }
+
+ protected void initialize() {
+ arm.initializeCounter();
+ }
+
+ protected void execute() {
+ }
+
+ protected boolean isFinished() {
+ return arm.isSwitchHit();
+ }
+
+ protected void end() {
+ arm.stop(); //stops arm once limit switch hit
+ }
+
+ protected void interrupted() {
+ end();
+ }
+}
import org.usfirst.frc3501.RiceCatRobot.RobotMap;
import edu.wpi.first.wpilibj.CANJaguar;
+import edu.wpi.first.wpilibj.Counter;
+import edu.wpi.first.wpilibj.DigitalInput;
import edu.wpi.first.wpilibj.command.Subsystem;
public class Arm extends Subsystem {
private CANJaguar left, right;
+ DigitalInput limitSwitch = new DigitalInput(1);
+ Counter counter = new Counter(limitSwitch);
+
public Arm() {
left = new CANJaguar(RobotMap.ARM_LEFT);
right = new CANJaguar(RobotMap.ARM_RIGHT);
public void initDefaultCommand() {
}
+
+ public boolean isSwitchHit() {
+ return counter.get() > 0;
+ }
+
+ public void initializeCounter() {
+ counter.reset();
+ }
public void fineTuneControl(double d) {
if (Math.abs(d) < 0.05) {