diff --git a/src/main/java/frc/robot/intake/IntakeSubsystem.java b/src/main/java/frc/robot/intake/IntakeSubsystem.java index 8a87f35..ebb02a9 100644 --- a/src/main/java/frc/robot/intake/IntakeSubsystem.java +++ b/src/main/java/frc/robot/intake/IntakeSubsystem.java @@ -20,7 +20,7 @@ public class IntakeSubsystem extends LifecycleSubsystem { private final RelativeEncoder encoder; private IntakeState goalState; private HeldGamePiece gamePiece = HeldGamePiece.NOTHING; - + public IntakeSubsystem(CANSparkMax motor) { super(SubsystemPriority.INTAKE); this.motor = motor; @@ -67,7 +67,7 @@ public void enabledPeriodic() { double motorVelocity = velocityFilter.calculate(encoder.getVelocity()); double intakeVoltage = voltageFilter.calculate(motor.getAppliedOutput()) * 12.0; double theoreticalSpeed = intakeVoltage * (5700.0/12.0); //Neo Max is 5700 - double threshold = theoreticalSpeed * 0.5; + double threshold = theoreticalSpeed * 0.5; if (motorVelocity < threshold && goalState == IntakeState.INTAKE_CONE) { gamePiece = HeldGamePiece.CONE; } else if (motorVelocity < threshold && goalState == IntakeState.INTAKE_CUBE) { @@ -77,6 +77,10 @@ public void enabledPeriodic() { } } + public IntakeState getIntakeState(){ + return goalState; + } + public boolean atGoal(IntakeState state) { if (goalState != state) { return false; diff --git a/src/main/java/frc/robot/lights/BlinkPattern.java b/src/main/java/frc/robot/lights/BlinkPattern.java new file mode 100644 index 0000000..55272c0 --- /dev/null +++ b/src/main/java/frc/robot/lights/BlinkPattern.java @@ -0,0 +1,7 @@ +package frc.robot.lights; + +public enum BlinkPattern { + SOLID, + BLINK_SLOW, + BLINK_FAST; +} diff --git a/src/main/java/frc/robot/lights/LightsSubsystem.java b/src/main/java/frc/robot/lights/LightsSubsystem.java new file mode 100644 index 0000000..e413f18 --- /dev/null +++ b/src/main/java/frc/robot/lights/LightsSubsystem.java @@ -0,0 +1,112 @@ +package frc.robot.lights; + + +import com.ctre.phoenix.led.CANdle; + +import edu.wpi.first.wpilibj.DriverStation; +import edu.wpi.first.wpilibj.Timer; +import edu.wpi.first.wpilibj.util.Color; +import edu.wpi.first.wpilibj.util.Color8Bit; +import frc.robot.fms.FmsSubsystem; +import frc.robot.intake.HeldGamePiece; +import frc.robot.intake.IntakeState; +import frc.robot.intake.IntakeSubsystem; +import frc.robot.managers.superstructure.SuperstructureManager; +import frc.robot.util.scheduling.LifecycleSubsystem; +import frc.robot.util.scheduling.SubsystemPriority; + +public class LightsSubsystem extends LifecycleSubsystem{ + + private static final double FAST_BLINK_DURATION = 0.08; + private static final double SLOW_BLINK_DURATION = 0.25; + + + private final CANdle candle; + private final IntakeSubsystem intake; + private final SuperstructureManager superstructure; + + private final Timer blinkTimer = new Timer(); + private Color color = Color.kWhite; + // TODO: Copy paste blink pattern enum from other repo + private BlinkPattern blinkPattern = BlinkPattern.SOLID; + + public LightsSubsystem( + CANdle candle, + IntakeSubsystem intake, + SuperstructureManager superstructure + ) { + super(SubsystemPriority.LIGHTS); + this.candle = candle; + this.intake = intake; + this.superstructure = superstructure; + } + public void enabledPeriodic(){ + HeldGamePiece gamePiece = intake.getGamePiece(); + IntakeState intakeMode = intake.getIntakeState(); + HeldGamePiece superstructureMode = superstructure.getMode(); + + if (DriverStation.isDisabled()) { + if (FmsSubsystem.isRedAlliance()) { + color = Color.kRed; + blinkPattern = BlinkPattern.SOLID; + } else { + color = Color.kBlue; + blinkPattern = BlinkPattern.SOLID; + } + }else if (gamePiece == HeldGamePiece.CUBE) { + if (intakeMode == IntakeState.INTAKE_CUBE) { + color = Color.kPurple; + blinkPattern = BlinkPattern.BLINK_FAST; + } else { + color = Color.kPurple; + blinkPattern = BlinkPattern.SOLID; + } + } else if (gamePiece == HeldGamePiece.CONE) { + if (intakeMode == IntakeState.INTAKE_CONE) { + color = Color.kYellow; + blinkPattern = BlinkPattern.BLINK_FAST; + } else { + color = Color.kYellow; + blinkPattern = BlinkPattern.SOLID; + } + } else if (superstructureMode == HeldGamePiece.CUBE) { + color = Color.kPurple; + blinkPattern = BlinkPattern.BLINK_SLOW; + } else if (superstructureMode == HeldGamePiece.CONE) { + color = Color.kYellow; + blinkPattern = BlinkPattern.BLINK_SLOW; + } else { + color = Color.kWhite; + blinkPattern = BlinkPattern.SOLID; + } + + Color8Bit color8Bit = new Color8Bit(color); + if (blinkPattern == BlinkPattern.SOLID) { + candle.setLEDs(color8Bit.red, color8Bit.green, color8Bit.blue); + } else { + double time = blinkTimer.get(); + double onDuration = 0; + double offDuration = 0; + + if (blinkPattern == BlinkPattern.BLINK_FAST) { + onDuration = FAST_BLINK_DURATION; + offDuration = FAST_BLINK_DURATION * 2; + } else if (blinkPattern == BlinkPattern.BLINK_SLOW) { + onDuration = SLOW_BLINK_DURATION; + offDuration = SLOW_BLINK_DURATION * 2; + } + + if (time >= offDuration) { + blinkTimer.reset(); + candle.setLEDs(0, 0, 0); + } else if (time >= onDuration) { + candle.setLEDs(color8Bit.red, color8Bit.green, color8Bit.blue); + } + } + + + } + + + +} diff --git a/src/main/java/frc/robot/managers/superstructure/SuperstructureManager.java b/src/main/java/frc/robot/managers/superstructure/SuperstructureManager.java index b5ab483..7e30475 100644 --- a/src/main/java/frc/robot/managers/superstructure/SuperstructureManager.java +++ b/src/main/java/frc/robot/managers/superstructure/SuperstructureManager.java @@ -6,6 +6,7 @@ import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.Commands; +import frc.robot.intake.HeldGamePiece; import frc.robot.intake.IntakeSubsystem; import frc.robot.util.scheduling.LifecycleSubsystem; import frc.robot.util.scheduling.SubsystemPriority; @@ -17,6 +18,7 @@ public class SuperstructureManager extends LifecycleSubsystem { private WristSubsystem wrist; private IntakeSubsystem intake; private SuperstructureState goalState; + private HeldGamePiece mode = HeldGamePiece.CUBE; public SuperstructureManager(SuperstructureMotionManager motionManager, IntakeSubsystem intake) { super(SubsystemPriority.SUPERSTRUCTURE_MANAGER); @@ -48,4 +50,12 @@ public Command setStateCommand(SuperstructureState newGoalState) { return Commands.runOnce(() -> setGoal(newGoalState)) .andThen(Commands.waitUntil(() -> atGoal(newGoalState))); } + + public void setMode(HeldGamePiece mode) { + this.mode = mode; + } + + public HeldGamePiece getMode(){ + return mode; + } } diff --git a/src/main/java/frc/robot/util/scheduling/SubsystemPriority.java b/src/main/java/frc/robot/util/scheduling/SubsystemPriority.java index d676032..c33100a 100644 --- a/src/main/java/frc/robot/util/scheduling/SubsystemPriority.java +++ b/src/main/java/frc/robot/util/scheduling/SubsystemPriority.java @@ -21,6 +21,7 @@ public enum SubsystemPriority { LOCALIZATION(9), FMS(0), + LIGHTS(0), RUMBLE_CONTROLLER(0); final int value; diff --git a/vendordeps/Phoenix6.json b/vendordeps/Phoenix6.json deleted file mode 100644 index f6fd334..0000000 --- a/vendordeps/Phoenix6.json +++ /dev/null @@ -1,328 +0,0 @@ -{ - "javaDependencies": [{ - "groupId": "com.ctre.phoenix6", - "artifactId": "wpiapi-java", - "version": "23.2.2" - }], - "fileName": "Phoenix6.json", - "frcYear": 2023, - "jsonUrl": "https://maven.ctr-electronics.com/release/com/ctre/phoenix6/latest/Phoenix6-frc2023-latest.json", - "name": "CTRE-Phoenix (v6)", - "jniDependencies": [ - { - "simMode": "hwsim", - "validPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "linuxathena" - ], - "groupId": "com.ctre.phoenix6", - "artifactId": "tools", - "skipInvalidPlatforms": true, - "isJar": false, - "version": "23.2.2" - }, - { - "simMode": "swsim", - "validPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "groupId": "com.ctre.phoenix6.sim", - "artifactId": "tools-sim", - "skipInvalidPlatforms": true, - "isJar": false, - "version": "23.2.2" - }, - { - "simMode": "swsim", - "validPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "groupId": "com.ctre.phoenix6.sim", - "artifactId": "simTalonSRX", - "skipInvalidPlatforms": true, - "isJar": false, - "version": "23.2.2" - }, - { - "simMode": "swsim", - "validPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "groupId": "com.ctre.phoenix6.sim", - "artifactId": "simTalonFX", - "skipInvalidPlatforms": true, - "isJar": false, - "version": "23.2.2" - }, - { - "simMode": "swsim", - "validPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "groupId": "com.ctre.phoenix6.sim", - "artifactId": "simVictorSPX", - "skipInvalidPlatforms": true, - "isJar": false, - "version": "23.2.2" - }, - { - "simMode": "swsim", - "validPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "groupId": "com.ctre.phoenix6.sim", - "artifactId": "simPigeonIMU", - "skipInvalidPlatforms": true, - "isJar": false, - "version": "23.2.2" - }, - { - "simMode": "swsim", - "validPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "groupId": "com.ctre.phoenix6.sim", - "artifactId": "simCANCoder", - "skipInvalidPlatforms": true, - "isJar": false, - "version": "23.2.2" - }, - { - "simMode": "swsim", - "validPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "groupId": "com.ctre.phoenix6.sim", - "artifactId": "simProTalonFX", - "skipInvalidPlatforms": true, - "isJar": false, - "version": "23.2.2" - }, - { - "simMode": "swsim", - "validPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "groupId": "com.ctre.phoenix6.sim", - "artifactId": "simProCANcoder", - "skipInvalidPlatforms": true, - "isJar": false, - "version": "23.2.2" - }, - { - "simMode": "swsim", - "validPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "groupId": "com.ctre.phoenix6.sim", - "artifactId": "simProPigeon2", - "skipInvalidPlatforms": true, - "isJar": false, - "version": "23.2.2" - } - ], - "mavenUrls": ["https://maven.ctr-electronics.com/release/"], - "cppDependencies": [ - { - "simMode": "hwsim", - "groupId": "com.ctre.phoenix6", - "libName": "CTRE_Phoenix6_WPI", - "artifactId": "wpiapi-cpp", - "skipInvalidPlatforms": true, - "version": "23.2.2", - "headerClassifier": "headers", - "binaryPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "linuxathena" - ], - "sharedLibrary": true - }, - { - "simMode": "hwsim", - "groupId": "com.ctre.phoenix6", - "libName": "CTRE_PhoenixTools", - "artifactId": "tools", - "skipInvalidPlatforms": true, - "version": "23.2.2", - "headerClassifier": "headers", - "binaryPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "linuxathena" - ], - "sharedLibrary": true - }, - { - "simMode": "swsim", - "groupId": "com.ctre.phoenix6.sim", - "libName": "CTRE_Phoenix6_WPISim", - "artifactId": "wpiapi-cpp-sim", - "skipInvalidPlatforms": true, - "version": "23.2.2", - "headerClassifier": "headers", - "binaryPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "sharedLibrary": true - }, - { - "simMode": "swsim", - "groupId": "com.ctre.phoenix6.sim", - "libName": "CTRE_PhoenixTools_Sim", - "artifactId": "tools-sim", - "skipInvalidPlatforms": true, - "version": "23.2.2", - "headerClassifier": "headers", - "binaryPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "sharedLibrary": true - }, - { - "simMode": "swsim", - "groupId": "com.ctre.phoenix6.sim", - "libName": "CTRE_SimTalonSRX", - "artifactId": "simTalonSRX", - "skipInvalidPlatforms": true, - "version": "23.2.2", - "headerClassifier": "headers", - "binaryPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "sharedLibrary": true - }, - { - "simMode": "swsim", - "groupId": "com.ctre.phoenix6.sim", - "libName": "CTRE_SimTalonFX", - "artifactId": "simTalonFX", - "skipInvalidPlatforms": true, - "version": "23.2.2", - "headerClassifier": "headers", - "binaryPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "sharedLibrary": true - }, - { - "simMode": "swsim", - "groupId": "com.ctre.phoenix6.sim", - "libName": "CTRE_SimVictorSPX", - "artifactId": "simVictorSPX", - "skipInvalidPlatforms": true, - "version": "23.2.2", - "headerClassifier": "headers", - "binaryPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "sharedLibrary": true - }, - { - "simMode": "swsim", - "groupId": "com.ctre.phoenix6.sim", - "libName": "CTRE_SimPigeonIMU", - "artifactId": "simPigeonIMU", - "skipInvalidPlatforms": true, - "version": "23.2.2", - "headerClassifier": "headers", - "binaryPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "sharedLibrary": true - }, - { - "simMode": "swsim", - "groupId": "com.ctre.phoenix6.sim", - "libName": "CTRE_SimCANCoder", - "artifactId": "simCANCoder", - "skipInvalidPlatforms": true, - "version": "23.2.2", - "headerClassifier": "headers", - "binaryPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "sharedLibrary": true - }, - { - "simMode": "swsim", - "groupId": "com.ctre.phoenix6.sim", - "libName": "CTRE_SimProTalonFX", - "artifactId": "simProTalonFX", - "skipInvalidPlatforms": true, - "version": "23.2.2", - "headerClassifier": "headers", - "binaryPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "sharedLibrary": true - }, - { - "simMode": "swsim", - "groupId": "com.ctre.phoenix6.sim", - "libName": "CTRE_SimProCANcoder", - "artifactId": "simProCANcoder", - "skipInvalidPlatforms": true, - "version": "23.2.2", - "headerClassifier": "headers", - "binaryPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "sharedLibrary": true - }, - { - "simMode": "swsim", - "groupId": "com.ctre.phoenix6.sim", - "libName": "CTRE_SimProPigeon2", - "artifactId": "simProPigeon2", - "skipInvalidPlatforms": true, - "version": "23.2.2", - "headerClassifier": "headers", - "binaryPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "sharedLibrary": true - } - ], - "version": "23.2.2", - "uuid": "e995de00-2c64-4df5-8831-c1441420ff19" -} diff --git a/vendordeps/PhoenixProAnd5.json b/vendordeps/PhoenixProAnd5.json new file mode 100644 index 0000000..21206b0 --- /dev/null +++ b/vendordeps/PhoenixProAnd5.json @@ -0,0 +1,458 @@ +{ + "fileName": "PhoenixProAnd5.json", + "name": "CTRE-Phoenix (Pro And v5)", + "version": "23.0.12", + "frcYear": 2023, + "uuid": "3fcf3402-e646-4fa6-971e-18afe8173b1a", + "mavenUrls": [ + "https://maven.ctr-electronics.com/release/" + ], + "jsonUrl": "https://maven.ctr-electronics.com/release/com/ctre/phoenixpro/PhoenixProAnd5-frc2023-latest.json", + "javaDependencies": [ + { + "groupId": "com.ctre.phoenix", + "artifactId": "api-java", + "version": "5.30.4" + }, + { + "groupId": "com.ctre.phoenix", + "artifactId": "wpiapi-java", + "version": "5.30.4" + }, + { + "groupId": "com.ctre.phoenixpro", + "artifactId": "wpiapi-java", + "version": "23.0.12" + } + ], + "jniDependencies": [ + { + "groupId": "com.ctre.phoenix", + "artifactId": "cci", + "version": "5.30.4", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenix.sim", + "artifactId": "cci-sim", + "version": "5.30.4", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro", + "artifactId": "tools", + "version": "23.0.12", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "tools-sim", + "version": "23.0.12", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "simTalonSRX", + "version": "23.0.12", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "simTalonFX", + "version": "23.0.12", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "simVictorSPX", + "version": "23.0.12", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "simPigeonIMU", + "version": "23.0.12", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "simCANCoder", + "version": "23.0.12", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "simProTalonFX", + "version": "23.0.12", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "simProCANcoder", + "version": "23.0.12", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "simProPigeon2", + "version": "23.0.12", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + } + ], + "cppDependencies": [ + { + "groupId": "com.ctre.phoenix", + "artifactId": "wpiapi-cpp", + "version": "5.30.4", + "libName": "CTRE_Phoenix_WPI", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenix", + "artifactId": "api-cpp", + "version": "5.30.4", + "libName": "CTRE_Phoenix", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenix", + "artifactId": "cci", + "version": "5.30.4", + "libName": "CTRE_PhoenixCCI", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenixpro", + "artifactId": "tools", + "version": "23.0.12", + "libName": "CTRE_PhoenixTools", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenix.sim", + "artifactId": "wpiapi-cpp-sim", + "version": "5.30.4", + "libName": "CTRE_Phoenix_WPISim", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix.sim", + "artifactId": "api-cpp-sim", + "version": "5.30.4", + "libName": "CTRE_PhoenixSim", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix.sim", + "artifactId": "cci-sim", + "version": "5.30.4", + "libName": "CTRE_PhoenixCCISim", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "tools-sim", + "version": "23.0.12", + "libName": "CTRE_PhoenixTools_Sim", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "simTalonSRX", + "version": "23.0.12", + "libName": "CTRE_SimTalonSRX", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "simTalonFX", + "version": "23.0.12", + "libName": "CTRE_SimTalonFX", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "simVictorSPX", + "version": "23.0.12", + "libName": "CTRE_SimVictorSPX", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "simPigeonIMU", + "version": "23.0.12", + "libName": "CTRE_SimPigeonIMU", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "simCANCoder", + "version": "23.0.12", + "libName": "CTRE_SimCANCoder", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "simProTalonFX", + "version": "23.0.12", + "libName": "CTRE_SimProTalonFX", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "simProCANcoder", + "version": "23.0.12", + "libName": "CTRE_SimProCANcoder", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "simProPigeon2", + "version": "23.0.12", + "libName": "CTRE_SimProPigeon2", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenixpro", + "artifactId": "wpiapi-cpp", + "version": "23.0.12", + "libName": "CTRE_PhoenixPro_WPI", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenixpro.sim", + "artifactId": "wpiapi-cpp-sim", + "version": "23.0.12", + "libName": "CTRE_PhoenixPro_WPISim", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + } + ] +} \ No newline at end of file