From 2effe19b23e416d0b1bceea6103c5774808a8cca Mon Sep 17 00:00:00 2001 From: maxwtan <100314265+MaxwellTTan20@users.noreply.github.com> Date: Sun, 15 Mar 2026 13:28:41 -0700 Subject: [PATCH] w0n autos --- .../frc/robot/subsystems/shooter/Shooter.java | 4 +++ src/main/java/frc/robot/util/HubActive.java | 29 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/src/main/java/frc/robot/subsystems/shooter/Shooter.java b/src/main/java/frc/robot/subsystems/shooter/Shooter.java index 65ad9f2..5e751e2 100644 --- a/src/main/java/frc/robot/subsystems/shooter/Shooter.java +++ b/src/main/java/frc/robot/subsystems/shooter/Shooter.java @@ -16,6 +16,7 @@ import edu.wpi.first.wpilibj2.command.InstantCommand; import edu.wpi.first.wpilibj2.command.SubsystemBase; import frc.robot.constants.Constants; import frc.robot.constants.IdConstants; +import frc.robot.util.HubActive; public class Shooter extends SubsystemBase implements ShooterIO { @@ -30,6 +31,7 @@ public class Shooter extends SubsystemBase implements ShooterIO { private final ShooterIOInputsAutoLogged inputs = new ShooterIOInputsAutoLogged(); + double powerModifier = 1.05; // TESTED public Shooter(){ @@ -78,6 +80,8 @@ public class Shooter extends SubsystemBase implements ShooterIO { Logger.recordOutput("Shooter/realVelocity", shooterMotorLeft.getVelocity().getValueAsDouble() * ShooterConstants.SHOOTER_LAUNCH_DIAMETER); Logger.recordOutput("Shooter/targetVelocity", shooterTargetSpeed); + + SmartDashboard.putString("WON AUTO?", (HubActive.wonAuto()) ? "WOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOON" : "lost"); } /** diff --git a/src/main/java/frc/robot/util/HubActive.java b/src/main/java/frc/robot/util/HubActive.java index dd5b762..584cb9c 100644 --- a/src/main/java/frc/robot/util/HubActive.java +++ b/src/main/java/frc/robot/util/HubActive.java @@ -101,6 +101,7 @@ public class HubActive { } } + // Shift was is active for blue if red won auto, or red if blue won auto. boolean shift1Active = switch (alliance.get()) { case Red -> !redInactiveFirst; @@ -146,4 +147,32 @@ public class HubActive { return Optional.of(0.0); } } + static public boolean wonAuto() { + String gameData = DriverStation.getGameSpecificMessage(); + // If we have no game data, we cannot compute, assume hub is active, as its + // likely early in teleop. + if (gameData.isEmpty()) { + return false; + } + boolean redInactiveFirst = false; + switch (gameData.charAt(0)) { + case 'R' -> redInactiveFirst = true; + case 'B' -> redInactiveFirst = false; + default -> { + // If we have invalid game data, assume hub is active. + return false; + } + } + + var alliance = DriverStation.getAlliance().get(); + boolean x; + if (alliance == Alliance.Red) { + x = redInactiveFirst; + } else { + x = !redInactiveFirst; + } + return x; + + } + } -- 2.39.5