From 637d3f1ee1d0863ffbd55d028c2ec6cbb37da5fb Mon Sep 17 00:00:00 2001 From: Berdenson <91093973+Berdenson@users.noreply.github.com> Date: Tue, 19 Mar 2024 15:13:14 -0500 Subject: [PATCH 01/12] Made basic StartCamera command --- .../java/frc/robot/commands/StartCamera.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/main/java/frc/robot/commands/StartCamera.java diff --git a/src/main/java/frc/robot/commands/StartCamera.java b/src/main/java/frc/robot/commands/StartCamera.java new file mode 100644 index 00000000..3f2d6969 --- /dev/null +++ b/src/main/java/frc/robot/commands/StartCamera.java @@ -0,0 +1,38 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +package frc.robot.commands; + +import edu.wpi.first.wpilibj2.command.Command; +import frc.robot.subsystems.Camera; + +public class StartCamera extends Command { + Camera camera; + /** Creates a new StartCamera. */ + public StartCamera(Camera camera) { + this.camera = camera; + addRequirements(camera); + // Use addRequirements() here to declare subsystem dependencies. + } + + // Called when the command is initially scheduled. + @Override + public void initialize() { + camera.startCamera(); + } + + // Called every time the scheduler runs while the command is scheduled. + @Override + public void execute() {} + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) {} + + // Returns true when the command should end. + @Override + public boolean isFinished() { + return false; + } +} From 768e602c0232e04ab0c4a3503e8542f4c6ad96e6 Mon Sep 17 00:00:00 2001 From: Berdenson <91093973+Berdenson@users.noreply.github.com> Date: Tue, 19 Mar 2024 15:14:24 -0500 Subject: [PATCH 02/12] removed instant command --- src/main/java/frc/robot/RobotContainer.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 181a2e61..c57dbf8a 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -235,9 +235,6 @@ public class RobotContainer { /** Singleton instance of {@link ZeroGyro} for the whole robot. */ public static ZeroGyro zeroGyro = new ZeroGyro(); - public static InstantCommand startCamera = - new InstantCommand(intakeCamera::startCamera, intakeCamera); - /* * *********************** * * OTHER INSTANCE VARS * From 1e0cdec3bffd320e265a4b924f67af7fe26f1ca7 Mon Sep 17 00:00:00 2001 From: Berdenson <91093973+Berdenson@users.noreply.github.com> Date: Tue, 19 Mar 2024 15:16:41 -0500 Subject: [PATCH 03/12] added startIntakeCamera --- src/main/java/frc/robot/RobotContainer.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index c57dbf8a..eb34044e 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -28,6 +28,7 @@ import frc.robot.commands.EnterXMode; import frc.robot.commands.RunIntake; import frc.robot.commands.RunIntakeReverse; +import frc.robot.commands.StartCamera; import frc.robot.commands.auto.MoveAwayFromAmp; import frc.robot.commands.auto.OnePieceAuto; import frc.robot.commands.auto.TaxiAuto; @@ -219,6 +220,9 @@ public class RobotContainer { /** Singleton instance of {@link ClimbDown} for the whole robot. */ public static ClimbDown climbDown = new ClimbDown(); + /** Singleton instance of {@link StartCamera} for the intake camera for the whole robot. */ + public static StartCamera startIntakeCamera = new StartCamera(intakeCamera); + /* Autos */ /** Singleton instance of {@link MoveAwayFromAmp} for the whole robot. */ public static MoveAwayFromAmp moveAwayFromAmp = new MoveAwayFromAmp(); From ce3a677fbd215b637deb53ed507dd70a0f76eae2 Mon Sep 17 00:00:00 2001 From: Berdenson <91093973+Berdenson@users.noreply.github.com> Date: Tue, 19 Mar 2024 15:18:42 -0500 Subject: [PATCH 04/12] run startIntakeCamera in RobotContainer constructor --- src/main/java/frc/robot/RobotContainer.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index eb34044e..47f69cb7 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -257,6 +257,8 @@ public RobotContainer() { Shuffleboard.getTab("Driver").add("Clear PDP sticky faults", clearPDPStickyFaults); Shuffleboard.getTab("Driver").add("Zero Gyro", zeroGyro); + startIntakeCamera.schedule(); + switch (Constants.Drive.currentDrivePerspective) { case RobotOriented: drive.setDefaultCommand(driveRobotOriented); From 3bce374d678dc8f4a9e7c65b095ef6dbc874d572 Mon Sep 17 00:00:00 2001 From: Berdenson <91093973+Berdenson@users.noreply.github.com> Date: Tue, 19 Mar 2024 15:21:13 -0500 Subject: [PATCH 05/12] Added camera port constant --- src/main/java/frc/robot/Constants.java | 6 ++++++ src/main/java/frc/robot/RobotContainer.java | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index ad138eae..7c271d05 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -229,4 +229,10 @@ public static class Climber { /** Whether or not the climber is inverted. */ public static final boolean CLIMBER_INVERTED = true; } + + /** The constants for the cameras */ + public static class Camera { + /** The camera id for the intake camera. */ + public static final int INTAKE_CAMERA_ID = 0; + } } diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 47f69cb7..2647843e 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -95,7 +95,7 @@ public class RobotContainer { public static PDP pdp = new PDP(); /* TODO: JAVADOC */ - public static Camera intakeCamera = new Camera(0); + public static Camera intakeCamera = new Camera(Constants.Camera.INTAKE_CAMERA_ID); /* * ************ From 8b709887d4f5bc36f0783243cbffbd408d30939d Mon Sep 17 00:00:00 2001 From: Berdenson <91093973+Berdenson@users.noreply.github.com> Date: Tue, 19 Mar 2024 15:23:45 -0500 Subject: [PATCH 06/12] javadoc --- src/main/java/frc/robot/RobotContainer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 2647843e..567cb42a 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -220,7 +220,7 @@ public class RobotContainer { /** Singleton instance of {@link ClimbDown} for the whole robot. */ public static ClimbDown climbDown = new ClimbDown(); - /** Singleton instance of {@link StartCamera} for the intake camera for the whole robot. */ + /** Singleton instance of the intake {@link StartCamera} for the whole robot. */ public static StartCamera startIntakeCamera = new StartCamera(intakeCamera); /* Autos */ From 89bd61999df6a957f1cac38059bf6acedc483af4 Mon Sep 17 00:00:00 2001 From: Berdenson <91093973+Berdenson@users.noreply.github.com> Date: Tue, 19 Mar 2024 15:25:19 -0500 Subject: [PATCH 07/12] javadoc --- src/main/java/frc/robot/commands/StartCamera.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/commands/StartCamera.java b/src/main/java/frc/robot/commands/StartCamera.java index 3f2d6969..a3da4dd8 100644 --- a/src/main/java/frc/robot/commands/StartCamera.java +++ b/src/main/java/frc/robot/commands/StartCamera.java @@ -7,13 +7,13 @@ import edu.wpi.first.wpilibj2.command.Command; import frc.robot.subsystems.Camera; +/** Command that starts up a camera and sends it to shuffleboard. */ public class StartCamera extends Command { Camera camera; /** Creates a new StartCamera. */ public StartCamera(Camera camera) { this.camera = camera; addRequirements(camera); - // Use addRequirements() here to declare subsystem dependencies. } // Called when the command is initially scheduled. From 9af676e1d673f1d460a5b817827b0cf7164c2318 Mon Sep 17 00:00:00 2001 From: Berdenson <91093973+Berdenson@users.noreply.github.com> Date: Tue, 19 Mar 2024 15:25:43 -0500 Subject: [PATCH 08/12] removed unused code --- src/main/java/frc/robot/Robot.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index 51bd543e..16163a80 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -24,8 +24,6 @@ public class Robot extends TimedRobot { @Override public void robotInit() { robotContainer = new RobotContainer(); - - RobotContainer.startCamera.initialize(); } @Override From 31899b3f9aff1c10f42976abd95b5078101571d1 Mon Sep 17 00:00:00 2001 From: Berdenson <91093973+Berdenson@users.noreply.github.com> Date: Tue, 19 Mar 2024 15:27:18 -0500 Subject: [PATCH 09/12] spotless --- src/main/java/frc/robot/RobotContainer.java | 1 - src/main/java/frc/robot/commands/StartCamera.java | 8 ++++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 567cb42a..2c4b4d4f 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -16,7 +16,6 @@ import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard; import edu.wpi.first.wpilibj.smartdashboard.SendableChooser; import edu.wpi.first.wpilibj2.command.Command; -import edu.wpi.first.wpilibj2.command.InstantCommand; import frc.robot.Controllers.ControllerAxis; import frc.robot.Controllers.Keymap; import frc.robot.commands.AimAndFireRoutine; diff --git a/src/main/java/frc/robot/commands/StartCamera.java b/src/main/java/frc/robot/commands/StartCamera.java index a3da4dd8..2c78f140 100644 --- a/src/main/java/frc/robot/commands/StartCamera.java +++ b/src/main/java/frc/robot/commands/StartCamera.java @@ -2,6 +2,13 @@ // Open Source Software; you can modify and/or share it under the terms of // the WPILib BSD license file in the root directory of this project. +/* + * Asimov's Laws: + * The First Law: A robot may not injure a human being or, through inaction, allow a human being to come to harm. + * The Second Law: A robot must obey the orders given it by human beings except where such orders would conflict with the First Law. + * The Third Law: A robot must protect its own existence as long as such protection does not conflict with the First or Second Law. + */ + package frc.robot.commands; import edu.wpi.first.wpilibj2.command.Command; @@ -10,6 +17,7 @@ /** Command that starts up a camera and sends it to shuffleboard. */ public class StartCamera extends Command { Camera camera; + /** Creates a new StartCamera. */ public StartCamera(Camera camera) { this.camera = camera; From 84b985698c9d0c8edd49f6854f77c88a65007201 Mon Sep 17 00:00:00 2001 From: Berdenson <91093973+Berdenson@users.noreply.github.com> Date: Tue, 19 Mar 2024 20:51:18 -0500 Subject: [PATCH 10/12] javadoc --- src/main/java/frc/robot/Constants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index 344ba4a2..3ff7f92c 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -231,7 +231,7 @@ public static class Climber { public static final boolean CLIMBER_INVERTED = true; } - /** The constants for the cameras */ + /** The constants for the USB cameras */ public static class Camera { /** The camera id for the intake camera. */ public static final int INTAKE_CAMERA_ID = 0; From 81c805f6f6f369ca6bba4d68f13bcd0712bdb17d Mon Sep 17 00:00:00 2001 From: Berdenson <91093973+Berdenson@users.noreply.github.com> Date: Tue, 19 Mar 2024 20:51:41 -0500 Subject: [PATCH 11/12] made camera private --- src/main/java/frc/robot/commands/StartCamera.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/commands/StartCamera.java b/src/main/java/frc/robot/commands/StartCamera.java index 2c78f140..3eaa4145 100644 --- a/src/main/java/frc/robot/commands/StartCamera.java +++ b/src/main/java/frc/robot/commands/StartCamera.java @@ -16,7 +16,7 @@ /** Command that starts up a camera and sends it to shuffleboard. */ public class StartCamera extends Command { - Camera camera; + private Camera camera; /** Creates a new StartCamera. */ public StartCamera(Camera camera) { From b852a6793706d68fbae4f82c1e4df022fa1bcfdd Mon Sep 17 00:00:00 2001 From: Berdenson <91093973+Berdenson@users.noreply.github.com> Date: Tue, 19 Mar 2024 20:52:06 -0500 Subject: [PATCH 12/12] command ends properly --- src/main/java/frc/robot/commands/StartCamera.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/commands/StartCamera.java b/src/main/java/frc/robot/commands/StartCamera.java index 3eaa4145..f4240bc0 100644 --- a/src/main/java/frc/robot/commands/StartCamera.java +++ b/src/main/java/frc/robot/commands/StartCamera.java @@ -41,6 +41,6 @@ public void end(boolean interrupted) {} // Returns true when the command should end. @Override public boolean isFinished() { - return false; + return true; } }