diff --git a/build.gradle b/build.gradle index 9e3060c..aa128cd 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id "org.rivierarobotics.frcgrantle" version "0.1.8" + id "org.rivierarobotics.frcgrantle" version "0.1.10" } grantle.with { packageBase = 'org.rivierarobotics.robot' diff --git a/src/org/rivierarobotics/commands/DisableAllSubsystems.java b/src/org/rivierarobotics/commands/DisableAllSubsystems.java new file mode 100644 index 0000000..20e8521 --- /dev/null +++ b/src/org/rivierarobotics/commands/DisableAllSubsystems.java @@ -0,0 +1,41 @@ +package org.rivierarobotics.commands; + +import org.rivierarobotics.robot.Robot; +import org.rivierarobotics.subsystems.Arm; +import org.rivierarobotics.subsystems.Clamp; +import org.rivierarobotics.subsystems.DriveTrain; +import org.rivierarobotics.subsystems.Floppies; + +import edu.wpi.first.wpilibj.command.Command; + +public class DisableAllSubsystems extends Command { + + private final DriveTrain dt = Robot.runningRobot.driveTrain; + private final Arm arm = Robot.runningRobot.arm; + private final Clamp clamp = Robot.runningRobot.clamp; + private final Floppies floppies = Robot.runningRobot.floppies; + private final boolean open = clamp.isOpen(); + + public DisableAllSubsystems() { + requires(dt); + requires(arm); + requires(clamp); + requires(floppies); + setInterruptible(false); + } + + @Override + protected void execute() { + dt.setPowerLeftRight(0, 0); + arm.setPower(0); + clamp.setOpen(open); + clamp.setPuncher(false); + floppies.setPower(0, 0); + } + + @Override + protected boolean isFinished() { + return false; + } + +} diff --git a/src/org/rivierarobotics/constants/ControlMap.java b/src/org/rivierarobotics/constants/ControlMap.java index 0cdb62c..b3f6a0a 100644 --- a/src/org/rivierarobotics/constants/ControlMap.java +++ b/src/org/rivierarobotics/constants/ControlMap.java @@ -55,4 +55,6 @@ public class ControlMap { public static final int FORCE_COMPRESSOR_ON_BUTTON = 2; public static final int AUTO_PUNCH_BUTTON = 2; + + public static final int DEAD_MAN_BUTTON = 1; } diff --git a/src/org/rivierarobotics/constants/PresentationMode.java b/src/org/rivierarobotics/constants/PresentationMode.java new file mode 100644 index 0000000..399e256 --- /dev/null +++ b/src/org/rivierarobotics/constants/PresentationMode.java @@ -0,0 +1,11 @@ +package org.rivierarobotics.constants; + +import edu.wpi.first.wpilibj.Preferences; + +public class PresentationMode { + + public static boolean inPresentationMode() { + return Preferences.getInstance().getBoolean("presentation-mode", false); + } + +} diff --git a/src/org/rivierarobotics/driverinterface/Driver.java b/src/org/rivierarobotics/driverinterface/Driver.java index b504505..3ef0639 100644 --- a/src/org/rivierarobotics/driverinterface/Driver.java +++ b/src/org/rivierarobotics/driverinterface/Driver.java @@ -4,6 +4,7 @@ import org.rivierarobotics.commands.AutoThrow; import org.rivierarobotics.commands.CollectGrabRaise; import org.rivierarobotics.commands.CompressorControlCommand; +import org.rivierarobotics.commands.DisableAllSubsystems; import org.rivierarobotics.commands.LeaveClimbCommand; import org.rivierarobotics.commands.MagicSpin; import org.rivierarobotics.commands.SetArmAngleGainScheduled; @@ -32,6 +33,8 @@ public class Driver { public Joystick JS_LEFT_BUTTONS; public Joystick JS_RIGHT_BUTTONS; public DriveCalculator DRIVE_CALC; + + private DisableAllSubsystems robotStopper; public Driver() { // Instantiate Sticks @@ -65,6 +68,8 @@ public Driver() { JoystickButton autoCollectButton = new JoystickButton(JS_FLOPPIES, ControlMap.COLLECT_SEQUENCE_BUTTON); JoystickButton autoPunch = new JoystickButton(JS_FLOPPIES, ControlMap.AUTO_PUNCH_BUTTON); + + JoystickButton deadManButton = new JoystickButton(JS_RIGHT_BUTTONS, ControlMap.DEAD_MAN_BUTTON); // Bind Commands @@ -82,6 +87,8 @@ public Driver() { shiftHigh.whenPressed(new ShiftGear(DriveTrain.DriveGear.GEAR_HIGH)); //autoCollectButton.whenPressed(new CollectGrabRaise(true)); + // remove climb for adams school + /* removeArmLimitButton.whenPressed(new RemoveArmLimit(JS_ARM));//engage PTO + disengage arm startWinchingButton.whenPressed(new StartWinching(JS_ARM)); reengageArmButton.whenPressed(new SetArmEngagedAndPTODisengaged(true));//reengage + lower arm, winching at same time @@ -89,7 +96,11 @@ public Driver() { lockWinchButton.whenPressed(new SetArmBrake(true));//lock robot in place after climb unlockWinchButton.whenPressed(new SetArmBrake(false));//for the pits leaveClimbButton.whenPressed(new LeaveClimbCommand());//for crisis mode - + */ autoPunch.whenPressed(new AutoPunch(-0.2)); + + robotStopper = new DisableAllSubsystems(); + deadManButton.whenReleased(robotStopper); + deadManButton.cancelWhenPressed(robotStopper); } }