From 6b60aa32fe4a0c1542fb08f0bca178fa21da2ad2 Mon Sep 17 00:00:00 2001 From: Ray Healy Date: Thu, 5 Feb 2026 20:28:36 -0500 Subject: [PATCH 1/4] Add CTRE Phoenix5 lib --- vendordeps/Phoenix5-5.36.0.json | 171 ++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 vendordeps/Phoenix5-5.36.0.json diff --git a/vendordeps/Phoenix5-5.36.0.json b/vendordeps/Phoenix5-5.36.0.json new file mode 100644 index 0000000..9a27e47 --- /dev/null +++ b/vendordeps/Phoenix5-5.36.0.json @@ -0,0 +1,171 @@ +{ + "fileName": "Phoenix5-5.36.0.json", + "name": "CTRE-Phoenix (v5)", + "version": "5.36.0", + "frcYear": "2026", + "uuid": "ab676553-b602-441f-a38d-f1296eff6537", + "mavenUrls": [ + "https://maven.ctr-electronics.com/release/" + ], + "jsonUrl": "https://maven.ctr-electronics.com/release/com/ctre/phoenix/Phoenix5-frc2026-latest.json", + "requires": [ + { + "uuid": "e995de00-2c64-4df5-8831-c1441420ff19", + "errorMessage": "Phoenix 5 requires low-level libraries from Phoenix 6. Please add the Phoenix 6 vendordep before adding Phoenix 5.", + "offlineFileName": "Phoenix6-frc2026-latest.json", + "onlineUrl": "https://maven.ctr-electronics.com/release/com/ctre/phoenix6/latest/Phoenix6-frc2026-latest.json" + } + ], + "conflictsWith": [ + { + "uuid": "e7900d8d-826f-4dca-a1ff-182f658e98af", + "errorMessage": "Users must use the Phoenix 5 replay vendordep when using the Phoenix 6 replay vendordep.", + "offlineFileName": "Phoenix6-replay-frc2026-latest.json" + }, + { + "uuid": "fbc886a4-2cec-40c0-9835-71086a8cc3df", + "errorMessage": "Users cannot have both the replay and regular Phoenix 5 vendordeps in their robot program.", + "offlineFileName": "Phoenix5-replay-frc2026-latest.json" + } + ], + "javaDependencies": [ + { + "groupId": "com.ctre.phoenix", + "artifactId": "api-java", + "version": "5.36.0" + }, + { + "groupId": "com.ctre.phoenix", + "artifactId": "wpiapi-java", + "version": "5.36.0" + } + ], + "jniDependencies": [ + { + "groupId": "com.ctre.phoenix", + "artifactId": "cci", + "version": "5.36.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenix.sim", + "artifactId": "cci-sim", + "version": "5.36.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + } + ], + "cppDependencies": [ + { + "groupId": "com.ctre.phoenix", + "artifactId": "wpiapi-cpp", + "version": "5.36.0", + "libName": "CTRE_Phoenix_WPI", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenix", + "artifactId": "api-cpp", + "version": "5.36.0", + "libName": "CTRE_Phoenix", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenix", + "artifactId": "cci", + "version": "5.36.0", + "libName": "CTRE_PhoenixCCI", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenix.sim", + "artifactId": "wpiapi-cpp-sim", + "version": "5.36.0", + "libName": "CTRE_Phoenix_WPISim", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix.sim", + "artifactId": "api-cpp-sim", + "version": "5.36.0", + "libName": "CTRE_PhoenixSim", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix.sim", + "artifactId": "cci-sim", + "version": "5.36.0", + "libName": "CTRE_PhoenixCCISim", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + } + ] +} \ No newline at end of file From 46e9064cdac3cbd7323e21abd891d647fa322e95 Mon Sep 17 00:00:00 2001 From: vaishu Date: Thu, 5 Feb 2026 20:39:23 -0500 Subject: [PATCH 2/4] helo --- .../frc/robot/subsystems/HopperSubsystem.java | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/main/java/frc/robot/subsystems/HopperSubsystem.java diff --git a/src/main/java/frc/robot/subsystems/HopperSubsystem.java b/src/main/java/frc/robot/subsystems/HopperSubsystem.java new file mode 100644 index 0000000..8705605 --- /dev/null +++ b/src/main/java/frc/robot/subsystems/HopperSubsystem.java @@ -0,0 +1,62 @@ +// 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.subsystems; + +import org.fairportrobotics.frc.posty.TestableSubsystem; +import org.fairportrobotics.frc.posty.test.PostTest; +import static org.fairportrobotics.frc.posty.assertions.Assertions.*; + +import edu.wpi.first.wpilibj2.command.Command; + +public class HopperSubsystem extends TestableSubsystem { + + private Talonsrx + /** Creates a new HopperSubsystem. */ + public HopperSubsystem() {} + + /** + * Example command factory method. + * + * @return a command + */ + public Command exampleMethodCommand() { + // Inline construction of command goes here. + // Subsystem::RunOnce implicitly requires `this` subsystem. + return runOnce( + () -> { + /* one-time action goes here */ + }); + } + + /** + * An example method querying a boolean state of the subsystem (for example, a digital sensor). + * + * @return value of some boolean subsystem state, such as a digital sensor. + */ + public boolean exampleCondition() { + // Query some boolean state, such as a digital sensor. + return false; + } + + @Override + public void periodic() { + // This method will be called once per scheduler run + } + + @Override + public void simulationPeriodic() { + // This method will be called once per scheduler run during simulation + } + + @PostTest(name = "A friendly name", enabled = true) + public void myFailingPostTest(){ + assertThat(true).isFalse(); + } + + @PostTest(enabled = true) + public void myPassingPostTest(){ + assertThat("Hello World").endWith("World"); + } +} From 492b2ba359786dd9ce0a188073584f14aee409c6 Mon Sep 17 00:00:00 2001 From: vaishu Date: Tue, 3 Mar 2026 19:35:00 -0500 Subject: [PATCH 3/4] submodules! --- .../frc/robot/subsystems/HopperSubsystem.java | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/src/main/java/frc/robot/subsystems/HopperSubsystem.java b/src/main/java/frc/robot/subsystems/HopperSubsystem.java index 8705605..a429e98 100644 --- a/src/main/java/frc/robot/subsystems/HopperSubsystem.java +++ b/src/main/java/frc/robot/subsystems/HopperSubsystem.java @@ -6,17 +6,45 @@ package frc.robot.subsystems; import org.fairportrobotics.frc.posty.TestableSubsystem; import org.fairportrobotics.frc.posty.test.PostTest; + +import com.ctre.phoenix6.hardware.TalonFX; + import static org.fairportrobotics.frc.posty.assertions.Assertions.*; import edu.wpi.first.wpilibj2.command.Command; public class HopperSubsystem extends TestableSubsystem { - private Talonsrx + private TalonFX spindexerMotor; + private TalonFX kickerMotor; /** Creates a new HopperSubsystem. */ - public HopperSubsystem() {} + public HopperSubsystem() { + spindexerMotor = new TalonFX(0); + kickerMotor = new TalonFX(1); + } - /** +public void feed(){ + + kickerMotor.set(0.5); +} + +public void reverse(){ + + kickerMotor.set(-0.5); + +} + +public void stop(){ + + kickerMotor.set(0); +} + +public void spin(double speed){ + + spindexerMotor.set(speed); +} + +/** * Example command factory method. * * @return a command From c5c4e091cf50a1eb68f3eb115603903f3447131d Mon Sep 17 00:00:00 2001 From: vaishu Date: Tue, 3 Mar 2026 19:37:37 -0500 Subject: [PATCH 4/4] indentation! --- .../frc/robot/subsystems/HopperSubsystem.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/main/java/frc/robot/subsystems/HopperSubsystem.java b/src/main/java/frc/robot/subsystems/HopperSubsystem.java index a429e98..bd36015 100644 --- a/src/main/java/frc/robot/subsystems/HopperSubsystem.java +++ b/src/main/java/frc/robot/subsystems/HopperSubsystem.java @@ -23,28 +23,28 @@ public class HopperSubsystem extends TestableSubsystem { kickerMotor = new TalonFX(1); } -public void feed(){ + public void feed(){ - kickerMotor.set(0.5); -} + kickerMotor.set(0.5); + } -public void reverse(){ + public void reverse(){ - kickerMotor.set(-0.5); + kickerMotor.set(-0.5); -} + } -public void stop(){ + public void stop(){ - kickerMotor.set(0); -} + kickerMotor.set(0); + } -public void spin(double speed){ + public void spin(double speed){ - spindexerMotor.set(speed); -} + spindexerMotor.set(speed); + } -/** + /** * Example command factory method. * * @return a command