From 48aa289b4e3fa64f0bd9dffdc9a7913e3c811b72 Mon Sep 17 00:00:00 2001 From: Shikhar Date: Thu, 29 Jan 2026 19:30:50 -0700 Subject: [PATCH] Mira goofy test --- .../java/frc4388/robot/RobotContainer.java | 10 +++++++++- .../robot/constants/BuildConstants.java | 12 +++++------ .../frc4388/robot/constants/Constants.java | 4 +--- .../java/frc4388/robot/subsystems/LED.java | 6 +++++- .../robot/subsystems/vision/Vision.java | 20 +++++++++++++------ .../configurable/ConfigurableString.java | 2 ++ 6 files changed, 37 insertions(+), 17 deletions(-) diff --git a/src/main/java/frc4388/robot/RobotContainer.java b/src/main/java/frc4388/robot/RobotContainer.java index 9d1cf19..a4df644 100644 --- a/src/main/java/frc4388/robot/RobotContainer.java +++ b/src/main/java/frc4388/robot/RobotContainer.java @@ -42,6 +42,7 @@ import frc4388.robot.subsystems.swerve.SwerveDrive; import frc4388.robot.subsystems.vision.Vision; import frc4388.utility.DeferredBlock; import frc4388.utility.compute.TimesNegativeOne; +import frc4388.utility.configurable.ConfigurableString; import frc4388.utility.controller.DeadbandedXboxController; // Autos import frc4388.utility.controller.VirtualController; @@ -62,6 +63,8 @@ public class RobotContainer { /* Subsystems */ public final LED m_robotLED = new LED(); + //Testing of Colors + public final Vision m_vision = new Vision(m_robotMap.rightCamera, m_robotMap.leftCamera); public final SwerveDrive m_robotSwerveDrive = new SwerveDrive(m_robotMap.swerveDrivetrain, m_vision); private Boolean operatorManualMode = false; @@ -90,7 +93,12 @@ public class RobotContainer { private Command autoCommand; private Command RobotShoot = new SequentialCommandGroup( - new InstantCommand(() -> m_robotLED.setMode(LEDPatterns.PARTY_TWINKLES), m_robotLED) + new InstantCommand(() -> System.out.println(m_robotLED.getMode())), + new InstantCommand(() -> m_robotLED.setMode(LEDPatterns.PARTY_TWINKLES), m_robotLED), + new InstantCommand(() -> System.out.println(m_robotLED.getMode())), + new WaitCommand(5), + new InstantCommand(() -> m_robotLED.setMode(LEDPatterns.SOLID_RED), m_robotLED), + new InstantCommand(() -> System.out.println(m_robotLED.getMode())) ); public RobotContainer() { diff --git a/src/main/java/frc4388/robot/constants/BuildConstants.java b/src/main/java/frc4388/robot/constants/BuildConstants.java index 7c55826..650a3a1 100644 --- a/src/main/java/frc4388/robot/constants/BuildConstants.java +++ b/src/main/java/frc4388/robot/constants/BuildConstants.java @@ -7,13 +7,13 @@ public final class BuildConstants { public static final String MAVEN_GROUP = ""; public static final String MAVEN_NAME = "2026KPopRobotHunters"; public static final String VERSION = "unspecified"; - public static final int GIT_REVISION = 23; - public static final String GIT_SHA = "8bda61b9837d7450a2fb4650bf02ffb1f4f06213"; - public static final String GIT_DATE = "2026-01-29 16:59:53 MST"; + public static final int GIT_REVISION = 24; + public static final String GIT_SHA = "5d381731689602f5fac161f1552170003ef30c14"; + public static final String GIT_DATE = "2026-01-29 18:07:19 MST"; public static final String GIT_BRANCH = "Subsystem-Boilerplate"; - public static final String BUILD_DATE = "2026-01-29 17:04:31 MST"; - public static final long BUILD_UNIX_TIME = 1769731471423L; - public static final int DIRTY = 0; + public static final String BUILD_DATE = "2026-01-29 19:27:45 MST"; + public static final long BUILD_UNIX_TIME = 1769740065495L; + public static final int DIRTY = 1; private BuildConstants(){} } diff --git a/src/main/java/frc4388/robot/constants/Constants.java b/src/main/java/frc4388/robot/constants/Constants.java index dd7b8af..490aefd 100644 --- a/src/main/java/frc4388/robot/constants/Constants.java +++ b/src/main/java/frc4388/robot/constants/Constants.java @@ -7,8 +7,6 @@ package frc4388.robot.constants; -import com.ctre.phoenix6.configs.Slot0Configs; - import edu.wpi.first.apriltag.AprilTagFieldLayout; import edu.wpi.first.apriltag.AprilTagFields; import edu.wpi.first.math.Matrix; @@ -21,7 +19,6 @@ import edu.wpi.first.math.numbers.N3; import edu.wpi.first.math.util.Units; import edu.wpi.first.wpilibj.RobotBase; import frc4388.utility.compute.Trim; -import frc4388.utility.status.CanDevice; import frc4388.utility.structs.Gains; import frc4388.utility.structs.LEDPatterns; @@ -91,6 +88,7 @@ public final class Constants { public static final Matrix kSingleTagStdDevs = VecBuilder.fill(0.5, 0.5, 4); public static final Matrix kMultiTagStdDevs = VecBuilder.fill(0.1, 0.1, 1); } + public static final class LEDConstants { public static final int LED_SPARK_ID = 9; diff --git a/src/main/java/frc4388/robot/subsystems/LED.java b/src/main/java/frc4388/robot/subsystems/LED.java index e095b06..9edfb9d 100644 --- a/src/main/java/frc4388/robot/subsystems/LED.java +++ b/src/main/java/frc4388/robot/subsystems/LED.java @@ -30,11 +30,15 @@ public class LED extends SubsystemBase implements Queryable { private static Spark LEDController = new Spark(LEDConstants.LED_SPARK_ID); private LEDPatterns mode = LEDConstants.DEFAULT_PATTERN; -//hello + public void setMode(LEDPatterns pattern){ this.mode = pattern; } + public String getMode(){ + return mode.name(); + } + @Override public void periodic() { update(); diff --git a/src/main/java/frc4388/robot/subsystems/vision/Vision.java b/src/main/java/frc4388/robot/subsystems/vision/Vision.java index fedc22a..9ab223e 100644 --- a/src/main/java/frc4388/robot/subsystems/vision/Vision.java +++ b/src/main/java/frc4388/robot/subsystems/vision/Vision.java @@ -2,15 +2,11 @@ package frc4388.robot.subsystems.vision; import java.util.ArrayList; import java.util.List; -import java.util.Optional; import org.littletonrobotics.junction.AutoLogOutput; import org.littletonrobotics.junction.Logger; import com.ctre.phoenix6.Utils; -import com.ctre.phoenix6.hardware.CANcoder; -import com.ctre.phoenix6.hardware.TalonFX; -import com.ctre.phoenix6.swerve.SwerveDrivetrain; import edu.wpi.first.math.geometry.Pose2d; import edu.wpi.first.wpilibj2.command.SubsystemBase; @@ -18,20 +14,22 @@ import frc4388.robot.subsystems.vision.VisionIO.PoseObservation; import frc4388.utility.status.FaultReporter; import frc4388.utility.status.Queryable; import frc4388.utility.status.Status; +import frc4388.utility.structs.LEDPatterns; -public class Vision extends SubsystemBase implements Queryable { +public class Vision extends SubsystemBase implements Queryable{ VisionIO[] io; VisionStateAutoLogged[] state; public Pose2d lastVisionPose = new Pose2d(); public Pose2d lastPhysOdomPose = new Pose2d(); + public LED m_robotLED; public Vision(VisionIO... devices) { FaultReporter.register(this); io = devices; state = new VisionStateAutoLogged[io.length]; - + m_robotLED = new LED(); for(int i = 0; i < io.length; i++) { state[i] = new VisionStateAutoLogged(); } @@ -44,6 +42,10 @@ public class Vision extends SubsystemBase implements Queryable { Logger.processInputs("Vision/Camera" + i , state[i]); } Logger.recordOutput("Vision/isTagDectected", isTag()); + + if (isTag()){ + m_robotLED.setMode(LEDPatterns.SOLID_GREEN_DARK); + } } public List getPosesToAdd(){ @@ -93,4 +95,10 @@ public class Vision extends SubsystemBase implements Queryable { // throw new UnsupportedOperationException("Unimplemented method 'diagnosticStatus'"); } + // Simple LED helper class for compilation and basic usage; replace with real implementation if available. + private static class LED { + public void setMode(LEDPatterns mode) { + // no-op stub for compilation; integrate with hardware driver as needed + } + } } diff --git a/src/main/java/frc4388/utility/configurable/ConfigurableString.java b/src/main/java/frc4388/utility/configurable/ConfigurableString.java index 34c0290..69b144b 100644 --- a/src/main/java/frc4388/utility/configurable/ConfigurableString.java +++ b/src/main/java/frc4388/utility/configurable/ConfigurableString.java @@ -11,6 +11,7 @@ public class ConfigurableString { * @param name the name of the Smart Dashboard key. * @param defualtValue the initilization value */ + public ConfigurableString(String name, String defualtValue) { this.name = name; this.defualtValue = defualtValue; @@ -20,4 +21,5 @@ public class ConfigurableString { public String get() { return SmartDashboard.getString(name, defualtValue); } + }