diff --git a/src/main/java/frc/Main.java b/src/main/java/frc/Main.java index 3d048c9..736481a 100644 --- a/src/main/java/frc/Main.java +++ b/src/main/java/frc/Main.java @@ -6,8 +6,9 @@ import edu.wpi.first.wpilibj.RobotBase; import frc.lib2202.builder.Robot; -import frc.robot2026.RobotSpec_Alpha2026; -import frc.robot2026.RobotSpec_BotOnBoard1; +import frc.robot2026.RobotSpec_ChassisBot; +import frc.robot2026.RobotSpec_BotOnBoard_Zeta; +import frc.robot2026.RobotSpec_BotOnBoard_Delta; import frc.robot2026.RobotSpec_BotOnBoard_Epsilon; public final class Main { @@ -16,9 +17,10 @@ private Main() { //new RobotSpecDefault(); //example only, don't load spec // 2026 sub-tree - new RobotSpec_Alpha2026(); - new RobotSpec_BotOnBoard1(); + new RobotSpec_ChassisBot(); + new RobotSpec_BotOnBoard_Zeta(); new RobotSpec_BotOnBoard_Epsilon(); + new RobotSpec_BotOnBoard_Delta(); } public static void main(String... args) { diff --git a/src/main/java/frc/robot2026/RobotSpec_BotOnBoard_Delta.java b/src/main/java/frc/robot2026/RobotSpec_BotOnBoard_Delta.java new file mode 100644 index 0000000..5a476a0 --- /dev/null +++ b/src/main/java/frc/robot2026/RobotSpec_BotOnBoard_Delta.java @@ -0,0 +1,83 @@ +package frc.robot2026; + +import static edu.wpi.first.units.Units.DegreesPerSecond; +import static edu.wpi.first.units.Units.FeetPerSecond; + +import edu.wpi.first.wpilibj.PowerDistribution; +import edu.wpi.first.wpilibj.PowerDistribution.ModuleType; +import edu.wpi.first.wpilibj.smartdashboard.SendableChooser; +import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; +import edu.wpi.first.wpilibj2.command.Command; +import edu.wpi.first.wpilibj2.command.CommandScheduler; +import frc.lib2202.builder.IRobotSpec; +import frc.lib2202.builder.RobotContainer; +import frc.lib2202.builder.RobotLimits; +import frc.lib2202.builder.SubsystemConfig; +import frc.lib2202.subsystem.hid.HID_Subsystem; +import frc.robot2026.Constants.CAN; + +public class RobotSpec_BotOnBoard_Delta implements IRobotSpec { + + //Bot On Board Delta + // $env:serialnum = "3061025" + final SubsystemConfig ssconfig = new SubsystemConfig("BotOnBoard_Delta", "3061025") + // Add the subsystems or components use by this Bot-on-Board + // Bot-On-Board can always use controlers for test binding + .add(HID_Subsystem.class, "DC", () -> { + return new HID_Subsystem(0.3, 0.9, 0.05); + }) + .add(PowerDistribution.class, "PDP", () -> { + var pdp = new PowerDistribution(CAN.PDP, ModuleType.kRev); + pdp.clearStickyFaults(); + return pdp; + }); + + + // Robot Speed Limits + RobotLimits robotLimits = new RobotLimits(FeetPerSecond.of(15.0), DegreesPerSecond.of(180.0)); + + public RobotSpec_BotOnBoard_Delta() { + // add the specs to the ssconfig + ssconfig.setRobotSpec(this); + } + + // Required method that use the specs above + + @Override + public RobotLimits getRobotLimits() { + return robotLimits; + } + + @Override + public void setBindings() { + HID_Subsystem dc = RobotContainer.getSubsystemOrNull("DC"); + if (dc == null ){ + // BOB doesn't need DC. Return early if DC doesn't exist + System.out.println("Warning: DC doesn't exist not setting bindings"); + return; + } + + // show what cmds are running + SmartDashboard.putData(CommandScheduler.getInstance()); + } + + SendableChooser autoChooser; + + @Override + public void setupRegisteredCommands() { + + } + + @Override + public SendableChooser getChooser() { + return autoChooser; //this is null, unlesse we setup autoChooser + } + + @Override + public void setDefaultCommands() { + + } + + + +} \ No newline at end of file diff --git a/src/main/java/frc/robot2026/RobotSpec_BotOnBoard_Epsilon.java b/src/main/java/frc/robot2026/RobotSpec_BotOnBoard_Epsilon.java index 8dc280b..ced972e 100644 --- a/src/main/java/frc/robot2026/RobotSpec_BotOnBoard_Epsilon.java +++ b/src/main/java/frc/robot2026/RobotSpec_BotOnBoard_Epsilon.java @@ -20,7 +20,7 @@ public class RobotSpec_BotOnBoard_Epsilon implements IRobotSpec { //Bot On Board Epsilon // $env:serialnum = "0326F275" - final SubsystemConfig ssconfig = new SubsystemConfig("BOBEpsilon", "0326F275") + final SubsystemConfig ssconfig = new SubsystemConfig("BotOnBoard_Epsilon", "0326F275") // Add the subsystems or components use by this Bot-on-Board // Bot-On-Board can always use controlers for test binding .add(HID_Subsystem.class, "DC", () -> { diff --git a/src/main/java/frc/robot2026/RobotSpec_BotOnBoard1.java b/src/main/java/frc/robot2026/RobotSpec_BotOnBoard_Zeta.java similarity index 96% rename from src/main/java/frc/robot2026/RobotSpec_BotOnBoard1.java rename to src/main/java/frc/robot2026/RobotSpec_BotOnBoard_Zeta.java index 1f4d6b3..a8a30da 100644 --- a/src/main/java/frc/robot2026/RobotSpec_BotOnBoard1.java +++ b/src/main/java/frc/robot2026/RobotSpec_BotOnBoard_Zeta.java @@ -19,9 +19,9 @@ import frc.robot2026.Constants.CAN; import frc.robot2026.subsystems.Shooter.Shooter; -public class RobotSpec_BotOnBoard1 implements IRobotSpec { +public class RobotSpec_BotOnBoard_Zeta implements IRobotSpec { // $env:serialnum = "0312db1a" - final SubsystemConfig ssconfig = new SubsystemConfig("BotOnBoard", "0312db1a") + final SubsystemConfig ssconfig = new SubsystemConfig("BotOnBoard_Zeta", "0312db1a") // deferred construction via Supplier lambda .add(PowerDistribution.class, "PDP", () -> { var pdp = new PowerDistribution(CAN.PDP, ModuleType.kRev); @@ -62,7 +62,7 @@ public class RobotSpec_BotOnBoard1 implements IRobotSpec { new PIDFController(0.01, 0.0, 0.0, 0.0) // angle ); - public RobotSpec_BotOnBoard1() { + public RobotSpec_BotOnBoard_Zeta() { // finish BetaBot's drivePIDF // add the specs to the ssconfig ssconfig.setRobotSpec(this); diff --git a/src/main/java/frc/robot2026/RobotSpec_Alpha2026.java b/src/main/java/frc/robot2026/RobotSpec_ChassisBot.java similarity index 97% rename from src/main/java/frc/robot2026/RobotSpec_Alpha2026.java rename to src/main/java/frc/robot2026/RobotSpec_ChassisBot.java index 51a0d9d..c6d9dd5 100644 --- a/src/main/java/frc/robot2026/RobotSpec_Alpha2026.java +++ b/src/main/java/frc/robot2026/RobotSpec_ChassisBot.java @@ -39,13 +39,13 @@ import frc.robot2026.subsystems.LimelightV2; import frc.robot2026.subsystems.VisionPoseEstimator; -public class RobotSpec_Alpha2026 implements IRobotSpec { +public class RobotSpec_ChassisBot implements IRobotSpec { // Subsystems and other hardware on 2025 Robot rev Alpha // This should be the chassis bot. // $env:serialnum = "03282B65" - final SubsystemConfig ssconfig = new SubsystemConfig("Alpha2026", "03282B65") + final SubsystemConfig ssconfig = new SubsystemConfig("ChassisBot", "03282B65") // deferred construction via Supplier lambda .add(PowerDistribution.class, "PDP", () -> { var pdp = new PowerDistribution(CAN.PDP, ModuleType.kRev); @@ -101,7 +101,7 @@ public class RobotSpec_Alpha2026 implements IRobotSpec { new PIDFController(0.01, 0.0, 0.0, 0.0) // angle ); - public RobotSpec_Alpha2026() { + public RobotSpec_ChassisBot() { // finish BetaBot's drivePIDF chassisConfig.drivePIDF.setIZone(0.2); // add the specs to the ssconfig