From bd3afea8bc6a97381f9ccf240b51cef284703559 Mon Sep 17 00:00:00 2001 From: Griffin Date: Sun, 16 Feb 2025 13:17:20 -0500 Subject: [PATCH 1/2] created seperate commands and methods for coral and alage to command --- ...eCommand.java => AcquireAlgaeCommand.java} | 8 ++-- .../robot/commands/AcquireCoralCommand.java | 29 +++++++++++++ .../robot/commands/DisposeAlgaeCommand.java | 42 +++++++++++++++++++ ...eCommand.java => DisposeCoralCommand.java} | 15 +++---- .../robot/constants/AcquisitionConstants.java | 6 ++- .../frc/robot/subsystems/Acquisition.java | 19 ++++++--- 6 files changed, 98 insertions(+), 21 deletions(-) rename src/main/java/frc/robot/commands/{AcquireCommand.java => AcquireAlgaeCommand.java} (70%) create mode 100644 src/main/java/frc/robot/commands/AcquireCoralCommand.java create mode 100644 src/main/java/frc/robot/commands/DisposeAlgaeCommand.java rename src/main/java/frc/robot/commands/{DisposeCommand.java => DisposeCoralCommand.java} (61%) diff --git a/src/main/java/frc/robot/commands/AcquireCommand.java b/src/main/java/frc/robot/commands/AcquireAlgaeCommand.java similarity index 70% rename from src/main/java/frc/robot/commands/AcquireCommand.java rename to src/main/java/frc/robot/commands/AcquireAlgaeCommand.java index 667d071..71a6763 100644 --- a/src/main/java/frc/robot/commands/AcquireCommand.java +++ b/src/main/java/frc/robot/commands/AcquireAlgaeCommand.java @@ -3,22 +3,22 @@ import edu.wpi.first.wpilibj2.command.Command; import frc.robot.subsystems.Acquisition; -public class AcquireCommand extends Command { +public class AcquireAlgaeCommand extends Command { private Acquisition acquisition = Acquisition.getInstance(); - public AcquireCommand() { + public AcquireAlgaeCommand() { this.addRequirements(acquisition); } @Override public void execute() { - acquisition.acquire(); + acquisition.acquireAlgae(); } @Override public boolean isFinished() { - return acquisition.getAlgaeSwitch() || acquisition.getBottomLaser(); + return false; } @Override diff --git a/src/main/java/frc/robot/commands/AcquireCoralCommand.java b/src/main/java/frc/robot/commands/AcquireCoralCommand.java new file mode 100644 index 0000000..89cf615 --- /dev/null +++ b/src/main/java/frc/robot/commands/AcquireCoralCommand.java @@ -0,0 +1,29 @@ +package frc.robot.commands; + +import edu.wpi.first.wpilibj2.command.Command; +import frc.robot.subsystems.Acquisition; + +public class AcquireCoralCommand extends Command { + + private Acquisition acquisition = Acquisition.getInstance(); + + public AcquireCoralCommand() { + this.addRequirements(acquisition); + } + + @Override + public void execute() { + acquisition.acquireCoral(); + } + + @Override + public boolean isFinished() { + return acquisition.getBottomLaser(); + } + + @Override + public void end(boolean interrupted) { + acquisition.stopAcquisition(); + } + +} diff --git a/src/main/java/frc/robot/commands/DisposeAlgaeCommand.java b/src/main/java/frc/robot/commands/DisposeAlgaeCommand.java new file mode 100644 index 0000000..4bb1b12 --- /dev/null +++ b/src/main/java/frc/robot/commands/DisposeAlgaeCommand.java @@ -0,0 +1,42 @@ +package frc.robot.commands; + +import edu.wpi.first.wpilibj.Timer; +import edu.wpi.first.wpilibj2.command.Command; +import frc.robot.subsystems.Acquisition; + +public class DisposeAlgaeCommand extends Command { + private Acquisition acquisition = Acquisition.getInstance(); + private double secondsToDispose; + private Timer timer = new Timer(); + + public DisposeAlgaeCommand() { + this(0.0); + } + + public DisposeAlgaeCommand(double secondsToDispose) { + this.secondsToDispose = secondsToDispose; + super.addRequirements(acquisition); + } + + @Override + public void execute() { + timer.restart(); + acquisition.disposeAlgae(); + } + + @Override + public boolean isFinished() { + // if algae limit switch is not pressed and set time has passed stop the command + + if (!acquisition.getAlgaeSwitch()) { + return secondsToDispose == 0.0 ? false : timer.get() >= secondsToDispose; + } + + return false; + } + + @Override + public void end(boolean interrupted) { + acquisition.stopAcquisition(); + } +} diff --git a/src/main/java/frc/robot/commands/DisposeCommand.java b/src/main/java/frc/robot/commands/DisposeCoralCommand.java similarity index 61% rename from src/main/java/frc/robot/commands/DisposeCommand.java rename to src/main/java/frc/robot/commands/DisposeCoralCommand.java index 15f89f3..8be9df3 100644 --- a/src/main/java/frc/robot/commands/DisposeCommand.java +++ b/src/main/java/frc/robot/commands/DisposeCoralCommand.java @@ -4,16 +4,16 @@ import edu.wpi.first.wpilibj2.command.Command; import frc.robot.subsystems.Acquisition; -public class DisposeCommand extends Command { +public class DisposeCoralCommand extends Command { private Acquisition acquisition = Acquisition.getInstance(); private double secondsToDispose; private Timer timer = new Timer(); - public DisposeCommand() { + public DisposeCoralCommand() { this(0.0); } - public DisposeCommand(double secondsToDispose) { + public DisposeCoralCommand(double secondsToDispose) { this.secondsToDispose = secondsToDispose; super.addRequirements(acquisition); } @@ -21,18 +21,15 @@ public DisposeCommand(double secondsToDispose) { @Override public void execute() { timer.restart(); - acquisition.dispose(); + acquisition.disposeCoral(); } @Override public boolean isFinished() { - // if neither acquisition laser returns true, move on to checking the algae - // switch. command is finished if all three sensors return false. + // if neither acquisition laser returns true command is finished if (!(acquisition.getTopLaser() || acquisition.getBottomLaser())) { - if (!acquisition.getAlgaeSwitch()) { - return secondsToDispose == 0.0 ? false : timer.get() >= secondsToDispose; - } + return secondsToDispose == 0.0 ? false : timer.get() >= secondsToDispose; } return false; diff --git a/src/main/java/frc/robot/constants/AcquisitionConstants.java b/src/main/java/frc/robot/constants/AcquisitionConstants.java index bcfecba..2c80728 100644 --- a/src/main/java/frc/robot/constants/AcquisitionConstants.java +++ b/src/main/java/frc/robot/constants/AcquisitionConstants.java @@ -4,6 +4,8 @@ public class AcquisitionConstants { public static final int kTopLaserPort = 0; public static final int kBottomLaserPort = 10; public static final int kAcquisitionMotorPort = 9; - public static final double kAcquireSpeed = 1.0; - public static final double kDisposeSpeed = -1.0; + public static final double kAcquireCoralSpeed = 1.0; + public static final double kAcquireAlgaeSpeed = 1.0; + public static final double kDisposeCoralSpeed = -1.0; + public static final double kDisposeAlgaeSpeed = -1.0; } diff --git a/src/main/java/frc/robot/subsystems/Acquisition.java b/src/main/java/frc/robot/subsystems/Acquisition.java index 6ef8192..c9dba93 100644 --- a/src/main/java/frc/robot/subsystems/Acquisition.java +++ b/src/main/java/frc/robot/subsystems/Acquisition.java @@ -5,10 +5,9 @@ import com.revrobotics.spark.SparkFlex; import com.revrobotics.spark.SparkLimitSwitch; import com.revrobotics.spark.SparkLowLevel.MotorType; -import com.revrobotics.spark.config.SparkFlexConfig; import com.revrobotics.spark.config.SparkBaseConfig.IdleMode; +import com.revrobotics.spark.config.SparkFlexConfig; -import edu.wpi.first.math.MathUtil; import edu.wpi.first.wpilibj.DigitalInput; import edu.wpi.first.wpilibj2.command.SubsystemBase; import frc.robot.constants.AcquisitionConstants; @@ -39,12 +38,20 @@ public static Acquisition getInstance() { return instance; } - public void acquire() { - this.acquisitionMotor.set(AcquisitionConstants.kAcquireSpeed); + public void acquireCoral() { + this.acquisitionMotor.set(AcquisitionConstants.kAcquireCoralSpeed); + } + + public void acquireAlgae() { + this.acquisitionMotor.set(AcquisitionConstants.kAcquireAlgaeSpeed); + } + + public void disposeCoral() { + this.acquisitionMotor.set(AcquisitionConstants.kDisposeCoralSpeed); } - public void dispose() { - this.acquisitionMotor.set(AcquisitionConstants.kDisposeSpeed); + public void disposeAlgae() { + this.acquisitionMotor.set(AcquisitionConstants.kDisposeAlgaeSpeed); } public void stopAcquisition() { From a05e877837a6175b764d4cf0b844c9005f27cdef Mon Sep 17 00:00:00 2001 From: Griffin Date: Mon, 17 Feb 2025 09:59:05 -0500 Subject: [PATCH 2/2] changed isfinished to look more readable --- src/main/java/frc/robot/commands/DisposeAlgaeCommand.java | 3 +-- src/main/java/frc/robot/commands/DisposeCoralCommand.java | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/frc/robot/commands/DisposeAlgaeCommand.java b/src/main/java/frc/robot/commands/DisposeAlgaeCommand.java index 4bb1b12..19f93a2 100644 --- a/src/main/java/frc/robot/commands/DisposeAlgaeCommand.java +++ b/src/main/java/frc/robot/commands/DisposeAlgaeCommand.java @@ -27,9 +27,8 @@ public void execute() { @Override public boolean isFinished() { // if algae limit switch is not pressed and set time has passed stop the command - if (!acquisition.getAlgaeSwitch()) { - return secondsToDispose == 0.0 ? false : timer.get() >= secondsToDispose; + return secondsToDispose != 0 && timer.get() >= secondsToDispose; } return false; diff --git a/src/main/java/frc/robot/commands/DisposeCoralCommand.java b/src/main/java/frc/robot/commands/DisposeCoralCommand.java index 8be9df3..c2096f9 100644 --- a/src/main/java/frc/robot/commands/DisposeCoralCommand.java +++ b/src/main/java/frc/robot/commands/DisposeCoralCommand.java @@ -29,7 +29,7 @@ public boolean isFinished() { // if neither acquisition laser returns true command is finished if (!(acquisition.getTopLaser() || acquisition.getBottomLaser())) { - return secondsToDispose == 0.0 ? false : timer.get() >= secondsToDispose; + return secondsToDispose != 0.0 && timer.get() >= secondsToDispose; } return false;