From 6968c57fb6804b5346490c818beba824999d6c56 Mon Sep 17 00:00:00 2001 From: MatthewChoulas Date: Wed, 8 Jan 2025 15:39:55 -0500 Subject: [PATCH] update Phoenix6 and fix mechanism units --- .../org/team4099/lib/units/Derivatives.kt | 6 +- .../org/team4099/lib/units/MechanismUnits.kt | 16 +- .../org/team4099/lib/units/base/Frequency.kt | 9 +- .../team4099/lib/units/derived/Controller.kt | 52 +++---- .../team4099/controller/PIDControllerTest.kt | 4 - vendordeps/PathPlanner.json | 10 +- vendordeps/Phoenix6.json | 145 ++++++++++++------ 7 files changed, 150 insertions(+), 92 deletions(-) diff --git a/src/main/kotlin/org/team4099/lib/units/Derivatives.kt b/src/main/kotlin/org/team4099/lib/units/Derivatives.kt index c8b74b0..85f2d95 100644 --- a/src/main/kotlin/org/team4099/lib/units/Derivatives.kt +++ b/src/main/kotlin/org/team4099/lib/units/Derivatives.kt @@ -1,6 +1,10 @@ package org.team4099.lib.units -import org.team4099.lib.units.base.* +import org.team4099.lib.units.base.METERS_PER_FOOT +import org.team4099.lib.units.base.METERS_PER_INCH +import org.team4099.lib.units.base.Meter +import org.team4099.lib.units.base.SECONDS_PER_MINUTE +import org.team4099.lib.units.base.Second import org.team4099.lib.units.derived.Radian import kotlin.math.PI diff --git a/src/main/kotlin/org/team4099/lib/units/MechanismUnits.kt b/src/main/kotlin/org/team4099/lib/units/MechanismUnits.kt index 33ac2cf..ef075bf 100644 --- a/src/main/kotlin/org/team4099/lib/units/MechanismUnits.kt +++ b/src/main/kotlin/org/team4099/lib/units/MechanismUnits.kt @@ -281,8 +281,8 @@ fun ctreAngularMechanismSensor( Timescale.CTRE, 1023.0, compensationVoltage, - { controller.rotorVelocity.value.toDouble() }, - { controller.rotorPosition.value.toDouble() } + { controller.rotorVelocity.valueAsDouble }, + { controller.rotorPosition.valueAsDouble } ) } @@ -299,8 +299,8 @@ fun ctreLinearMechanismSensor( Timescale.CTRE, 1023.0, compensationVoltage, - { controller.rotorVelocity.value.toDouble() }, - { controller.rotorPosition.value.toDouble() } + { controller.rotorVelocity.valueAsDouble }, + { controller.rotorPosition.valueAsDouble } ) } @@ -319,8 +319,8 @@ fun ctreLinearMechanismSensor( Timescale.PHOENIX_PRO, 1.0, compensationVoltage, - { velocitySignal.value }, - { positionSignal.value }, + { velocitySignal.valueAsDouble }, + { positionSignal.valueAsDouble }, ) } @@ -337,8 +337,8 @@ fun ctreAngularMechanismSensor( Timescale.PHOENIX_PRO, 1.0, compensationVoltage, - { velocitySignal.value }, - { positionSignal.value }, + { velocitySignal.valueAsDouble }, + { positionSignal.valueAsDouble }, ) } diff --git a/src/main/kotlin/org/team4099/lib/units/base/Frequency.kt b/src/main/kotlin/org/team4099/lib/units/base/Frequency.kt index beb84b3..59ed02f 100644 --- a/src/main/kotlin/org/team4099/lib/units/base/Frequency.kt +++ b/src/main/kotlin/org/team4099/lib/units/base/Frequency.kt @@ -3,14 +3,15 @@ package org.team4099.lib.units.base import org.team4099.lib.units.UnitKey import org.team4099.lib.units.Value -object Hertz: UnitKey +object Hertz : UnitKey + typealias Frequency = Value inline val Double.hertz: Frequency - get() = Frequency(this) + get() = Frequency(this) inline val Number.hertz: Frequency - get() = toDouble().hertz + get() = toDouble().hertz inline val Frequency.inHertz: Double - get() = value \ No newline at end of file + get() = value diff --git a/src/main/kotlin/org/team4099/lib/units/derived/Controller.kt b/src/main/kotlin/org/team4099/lib/units/derived/Controller.kt index 326bb5a..677f6b5 100644 --- a/src/main/kotlin/org/team4099/lib/units/derived/Controller.kt +++ b/src/main/kotlin/org/team4099/lib/units/derived/Controller.kt @@ -273,15 +273,15 @@ inline val ProportionalGain>.inRadiansPerSecondPerRotat get() = inRadiansPerSecondPerRadian * RADIANS_PER_ROTATION inline val ProportionalGain, Velocity>.inRadiansPerSecondPerMetersPerSecond: - Double - get() = value + Double + get() = value inline val ProportionalGain< - Velocity, Velocity>.inRadiansPerSecondPerRadiansPerSecond: Double + Velocity, Velocity>.inRadiansPerSecondPerRadiansPerSecond: Double get() = value inline val ProportionalGain< - Velocity, Velocity>.inRadiansPerSecondPerRotationPerMinute: Double + Velocity, Velocity>.inRadiansPerSecondPerRotationPerMinute: Double get() = inRadiansPerSecondPerRadiansPerSecond * RADIANS_PER_ROTATION / SECONDS_PER_MINUTE inline val IntegralGain>.inRadiansPerSecondPerMeterSeconds: Double @@ -324,7 +324,7 @@ inline val DerivativeGain>.inRadiansPerSecondPerFootPerS get() = inRadiansPerSecondPerMeterPerSecond * METERS_PER_FOOT inline val DerivativeGain< - Velocity, Velocity>.inRadiansPerSecondPerMetersPerSecondPerSecond: Double + Velocity, Velocity>.inRadiansPerSecondPerMetersPerSecondPerSecond: Double get() = value inline val DerivativeGain>.inRadiansPerSecondPerRadianPerSecond: Double @@ -337,15 +337,15 @@ inline val DerivativeGain>.inRadiansPerSecondPerRotatio get() = inRadiansPerSecondPerRadianPerSecond / SECONDS_PER_MINUTE * RADIANS_PER_ROTATION inline val DerivativeGain< - Velocity, Velocity>.inRadiansPerSecondPerRadiansPerSecondPerSecond: Double + Velocity, Velocity>.inRadiansPerSecondPerRadiansPerSecondPerSecond: Double get() = value inline val DerivativeGain< - Velocity, Velocity>.inRadiansPerSecondPerDegreesPerSecondPerSecond: Double + Velocity, Velocity>.inRadiansPerSecondPerDegreesPerSecondPerSecond: Double get() = inRadiansPerSecondPerRadiansPerSecondPerSecond * RADIANS_PER_DEGREES inline val DerivativeGain< - Velocity, Velocity>.inRadiansPerSecondPerRotationsPerMinutePerSecond: Double + Velocity, Velocity>.inRadiansPerSecondPerRotationsPerMinutePerSecond: Double get() = inRadiansPerSecondPerRadiansPerSecondPerSecond / SECONDS_PER_MINUTE * RADIANS_PER_ROTATION inline val Double.metersPerSecondPerMetersPerSecond @@ -370,15 +370,15 @@ inline val ProportionalGain>.inMetersPerSecondPerRotatio get() = inMetersPerSecondPerRadian * RADIANS_PER_ROTATION inline val ProportionalGain, Velocity>.inMetersPerSecondPerMetersPerSecond: - Double - get() = value + Double + get() = value inline val ProportionalGain, Velocity>.inMetersPerSecondPerRadiansPerSecond: - Double - get() = value + Double + get() = value inline val ProportionalGain< - Velocity, Velocity>.inMetersPerSecondPerRotationPerMinute: Double + Velocity, Velocity>.inMetersPerSecondPerRotationPerMinute: Double get() = inMetersPerSecondPerRadiansPerSecond * RADIANS_PER_ROTATION / SECONDS_PER_MINUTE inline val IntegralGain>.inMetersPerSecondPerMeterSeconds: Double @@ -421,7 +421,7 @@ inline val DerivativeGain>.inMetersPerSecondPerFootPerSec get() = inMetersPerSecondPerMeterPerSecond * METERS_PER_FOOT inline val DerivativeGain< - Velocity, Velocity>.inMetersPerSecondPerMetersPerSecondPerSecond: Double + Velocity, Velocity>.inMetersPerSecondPerMetersPerSecondPerSecond: Double get() = value inline val DerivativeGain>.inMetersPerSecondPerRadianPerSecond: Double @@ -434,15 +434,15 @@ inline val DerivativeGain>.inMetersPerSecondPerRotations get() = inMetersPerSecondPerRadianPerSecond / SECONDS_PER_MINUTE * RADIANS_PER_ROTATION inline val DerivativeGain< - Velocity, Velocity>.inMetersPerSecondPerRadiansPerSecondPerSecond: Double + Velocity, Velocity>.inMetersPerSecondPerRadiansPerSecondPerSecond: Double get() = value inline val DerivativeGain< - Velocity, Velocity>.inMetersPerSecondPerDegreesPerSecondPerSecond: Double + Velocity, Velocity>.inMetersPerSecondPerDegreesPerSecondPerSecond: Double get() = inMetersPerSecondPerRadiansPerSecondPerSecond * RADIANS_PER_DEGREES inline val DerivativeGain< - Velocity, Velocity>.inMetersPerSecondPerRotationsPerMinutePerSecond: Double + Velocity, Velocity>.inMetersPerSecondPerRotationsPerMinutePerSecond: Double get() = inMetersPerSecondPerRadiansPerSecondPerSecond / SECONDS_PER_MINUTE * RADIANS_PER_ROTATION inline val Double.MetersPerMeters @@ -557,15 +557,15 @@ inline val ProportionalGain>.inDegreesPerSecondPerRotat get() = inDegreesPerSecondPerRadian * RADIANS_PER_ROTATION inline val ProportionalGain, Velocity>.inDegreesPerSecondPerMetersPerSecond: - Double - get() = value + Double + get() = value inline val ProportionalGain< - Velocity, Velocity>.inDegreesPerSecondPerRadiansPerSecond: Double + Velocity, Velocity>.inDegreesPerSecondPerRadiansPerSecond: Double get() = value inline val ProportionalGain< - Velocity, Velocity>.inDegreesPerSecondPerRotationPerMinute: Double + Velocity, Velocity>.inDegreesPerSecondPerRotationPerMinute: Double get() = inDegreesPerSecondPerRadiansPerSecond * RADIANS_PER_ROTATION / SECONDS_PER_MINUTE inline val IntegralGain>.inDegreesPerSecondPerMeterSeconds: Double @@ -608,7 +608,7 @@ inline val DerivativeGain>.inDegreesPerSecondPerFootPerS get() = inDegreesPerSecondPerMeterPerSecond * METERS_PER_FOOT inline val DerivativeGain< - Velocity, Velocity>.inDegreesPerSecondPerMetersPerSecondPerSecond: Double + Velocity, Velocity>.inDegreesPerSecondPerMetersPerSecondPerSecond: Double get() = value inline val DerivativeGain>.inDegreesPerSecondPerRadianPerSecond: Double @@ -621,13 +621,13 @@ inline val DerivativeGain>.inDegreesPerSecondPerRotatio get() = inDegreesPerSecondPerRadianPerSecond / SECONDS_PER_MINUTE * RADIANS_PER_ROTATION inline val DerivativeGain< - Velocity, Velocity>.inDegreesPerSecondPerRadiansPerSecondPerSecond: Double + Velocity, Velocity>.inDegreesPerSecondPerRadiansPerSecondPerSecond: Double get() = value inline val DerivativeGain< - Velocity, Velocity>.inDegreesPerSecondPerDegreesPerSecondPerSecond: Double + Velocity, Velocity>.inDegreesPerSecondPerDegreesPerSecondPerSecond: Double get() = inDegreesPerSecondPerRadiansPerSecondPerSecond * RADIANS_PER_DEGREES inline val DerivativeGain< - Velocity, Velocity>.inDegreesPerSecondPerRotationsPerMinutePerSecond: Double - get() = inDegreesPerSecondPerRadiansPerSecondPerSecond / SECONDS_PER_MINUTE * RADIANS_PER_ROTATION \ No newline at end of file + Velocity, Velocity>.inDegreesPerSecondPerRotationsPerMinutePerSecond: Double + get() = inDegreesPerSecondPerRadiansPerSecondPerSecond / SECONDS_PER_MINUTE * RADIANS_PER_ROTATION diff --git a/src/test/kotlin/team4099/controller/PIDControllerTest.kt b/src/test/kotlin/team4099/controller/PIDControllerTest.kt index 5f72ffe..7ecd068 100644 --- a/src/test/kotlin/team4099/controller/PIDControllerTest.kt +++ b/src/test/kotlin/team4099/controller/PIDControllerTest.kt @@ -1,22 +1,18 @@ package com.team4099.controller import org.junit.jupiter.api.Test -import org.team4099.lib.controller.PIDController import org.team4099.lib.controller.ProfiledPIDController import org.team4099.lib.controller.SimpleMotorFeedforward import org.team4099.lib.controller.TrapezoidProfile import org.team4099.lib.units.Acceleration -import org.team4099.lib.units.Fraction import org.team4099.lib.units.LinearMechanismSensor import org.team4099.lib.units.Timescale import org.team4099.lib.units.Value import org.team4099.lib.units.base.Meter -import org.team4099.lib.units.base.Second import org.team4099.lib.units.base.amps import org.team4099.lib.units.base.inches import org.team4099.lib.units.base.meters import org.team4099.lib.units.base.seconds -import org.team4099.lib.units.derived.ProportionalGain import org.team4099.lib.units.derived.degrees import org.team4099.lib.units.derived.inVoltsPerInch import org.team4099.lib.units.derived.inVoltsPerRotation diff --git a/vendordeps/PathPlanner.json b/vendordeps/PathPlanner.json index 3c539df..05dcc5d 100644 --- a/vendordeps/PathPlanner.json +++ b/vendordeps/PathPlanner.json @@ -1,18 +1,18 @@ { - "fileName": "PathplannerLib.json", + "fileName": "PathplannerLib2024.json", "name": "PathplannerLib", - "version": "2024.2.1", + "version": "2024.2.8", "uuid": "1b42324f-17c6-4875-8e77-1c312bc8c786", "frcYear": "2024", "mavenUrls": [ "https://3015rangerrobotics.github.io/pathplannerlib/repo" ], - "jsonUrl": "https://3015rangerrobotics.github.io/pathplannerlib/PathplannerLib.json", + "jsonUrl": "https://3015rangerrobotics.github.io/pathplannerlib/PathplannerLib2024.json", "javaDependencies": [ { "groupId": "com.pathplanner.lib", "artifactId": "PathplannerLib-java", - "version": "2024.2.1" + "version": "2024.2.8" } ], "jniDependencies": [], @@ -20,7 +20,7 @@ { "groupId": "com.pathplanner.lib", "artifactId": "PathplannerLib-cpp", - "version": "2024.2.1", + "version": "2024.2.8", "libName": "PathplannerLib", "headerClassifier": "headers", "sharedLibrary": false, diff --git a/vendordeps/Phoenix6.json b/vendordeps/Phoenix6.json index 2824fbf..7f4bd2e 100644 --- a/vendordeps/Phoenix6.json +++ b/vendordeps/Phoenix6.json @@ -1,69 +1,94 @@ { - "fileName": "Phoenix6.json", + "fileName": "Phoenix6-frc2025-latest.json", "name": "CTRE-Phoenix (v6)", - "version": "23.1.0", - "frcYear": 2023, + "version": "25.1.0", + "frcYear": "2025", "uuid": "e995de00-2c64-4df5-8831-c1441420ff19", "mavenUrls": [ "https://maven.ctr-electronics.com/release/" ], - "jsonUrl": "https://maven.ctr-electronics.com/release/com/ctre/phoenix6/latest/Phoenix6-frc2023-latest.json", + "jsonUrl": "https://maven.ctr-electronics.com/release/com/ctre/phoenix6/latest/Phoenix6-frc2025-latest.json", + "conflictsWith": [ + { + "uuid": "e7900d8d-826f-4dca-a1ff-182f658e98af", + "errorMessage": "Users can not have both the replay and regular Phoenix 6 vendordeps in their robot program.", + "offlineFileName": "Phoenix6-replay-frc2025-latest.json" + } + ], "javaDependencies": [ { "groupId": "com.ctre.phoenix6", "artifactId": "wpiapi-java", - "version": "23.1.0" + "version": "25.1.0" } ], "jniDependencies": [ + { + "groupId": "com.ctre.phoenix6", + "artifactId": "api-cpp", + "version": "25.1.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "linuxathena" + ], + "simMode": "hwsim" + }, { "groupId": "com.ctre.phoenix6", "artifactId": "tools", - "version": "23.1.0", + "version": "25.1.0", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", "linuxathena" ], "simMode": "hwsim" }, { "groupId": "com.ctre.phoenix6.sim", - "artifactId": "tools-sim", - "version": "23.1.0", + "artifactId": "api-cpp-sim", + "version": "25.1.0", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", "osxuniversal" ], "simMode": "swsim" }, { "groupId": "com.ctre.phoenix6.sim", - "artifactId": "simTalonSRX", - "version": "23.1.0", + "artifactId": "tools-sim", + "version": "25.1.0", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", "osxuniversal" ], "simMode": "swsim" }, { "groupId": "com.ctre.phoenix6.sim", - "artifactId": "simTalonFX", - "version": "23.1.0", + "artifactId": "simTalonSRX", + "version": "25.1.0", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", "osxuniversal" ], "simMode": "swsim" @@ -71,12 +96,13 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simVictorSPX", - "version": "23.1.0", + "version": "25.1.0", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", "osxuniversal" ], "simMode": "swsim" @@ -84,12 +110,13 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simPigeonIMU", - "version": "23.1.0", + "version": "25.1.0", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", "osxuniversal" ], "simMode": "swsim" @@ -97,12 +124,13 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simCANCoder", - "version": "23.1.0", + "version": "25.1.0", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", "osxuniversal" ], "simMode": "swsim" @@ -110,12 +138,13 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simProTalonFX", - "version": "23.1.0", + "version": "25.1.0", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", "osxuniversal" ], "simMode": "swsim" @@ -123,12 +152,13 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simProCANcoder", - "version": "23.1.0", + "version": "25.1.0", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", "osxuniversal" ], "simMode": "swsim" @@ -136,12 +166,27 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simProPigeon2", - "version": "23.1.0", + "version": "25.1.0", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simProCANrange", + "version": "25.1.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", "osxuniversal" ], "simMode": "swsim" @@ -151,7 +196,7 @@ { "groupId": "com.ctre.phoenix6", "artifactId": "wpiapi-cpp", - "version": "23.1.0", + "version": "25.1.0", "libName": "CTRE_Phoenix6_WPI", "headerClassifier": "headers", "sharedLibrary": true, @@ -159,6 +204,7 @@ "binaryPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", "linuxathena" ], "simMode": "hwsim" @@ -166,7 +212,7 @@ { "groupId": "com.ctre.phoenix6", "artifactId": "tools", - "version": "23.1.0", + "version": "25.1.0", "libName": "CTRE_PhoenixTools", "headerClassifier": "headers", "sharedLibrary": true, @@ -174,6 +220,7 @@ "binaryPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", "linuxathena" ], "simMode": "hwsim" @@ -181,7 +228,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "wpiapi-cpp-sim", - "version": "23.1.0", + "version": "25.1.0", "libName": "CTRE_Phoenix6_WPISim", "headerClassifier": "headers", "sharedLibrary": true, @@ -189,6 +236,7 @@ "binaryPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", "osxuniversal" ], "simMode": "swsim" @@ -196,7 +244,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "tools-sim", - "version": "23.1.0", + "version": "25.1.0", "libName": "CTRE_PhoenixTools_Sim", "headerClassifier": "headers", "sharedLibrary": true, @@ -204,6 +252,7 @@ "binaryPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", "osxuniversal" ], "simMode": "swsim" @@ -211,7 +260,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simTalonSRX", - "version": "23.1.0", + "version": "25.1.0", "libName": "CTRE_SimTalonSRX", "headerClassifier": "headers", "sharedLibrary": true, @@ -219,21 +268,7 @@ "binaryPlatforms": [ "windowsx86-64", "linuxx86-64", - "osxuniversal" - ], - "simMode": "swsim" - }, - { - "groupId": "com.ctre.phoenix6.sim", - "artifactId": "simTalonFX", - "version": "23.1.0", - "libName": "CTRE_SimTalonFX", - "headerClassifier": "headers", - "sharedLibrary": true, - "skipInvalidPlatforms": true, - "binaryPlatforms": [ - "windowsx86-64", - "linuxx86-64", + "linuxarm64", "osxuniversal" ], "simMode": "swsim" @@ -241,7 +276,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simVictorSPX", - "version": "23.1.0", + "version": "25.1.0", "libName": "CTRE_SimVictorSPX", "headerClassifier": "headers", "sharedLibrary": true, @@ -249,6 +284,7 @@ "binaryPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", "osxuniversal" ], "simMode": "swsim" @@ -256,7 +292,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simPigeonIMU", - "version": "23.1.0", + "version": "25.1.0", "libName": "CTRE_SimPigeonIMU", "headerClassifier": "headers", "sharedLibrary": true, @@ -264,6 +300,7 @@ "binaryPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", "osxuniversal" ], "simMode": "swsim" @@ -271,7 +308,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simCANCoder", - "version": "23.1.0", + "version": "25.1.0", "libName": "CTRE_SimCANCoder", "headerClassifier": "headers", "sharedLibrary": true, @@ -279,6 +316,7 @@ "binaryPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", "osxuniversal" ], "simMode": "swsim" @@ -286,7 +324,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simProTalonFX", - "version": "23.1.0", + "version": "25.1.0", "libName": "CTRE_SimProTalonFX", "headerClassifier": "headers", "sharedLibrary": true, @@ -294,6 +332,7 @@ "binaryPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", "osxuniversal" ], "simMode": "swsim" @@ -301,7 +340,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simProCANcoder", - "version": "23.1.0", + "version": "25.1.0", "libName": "CTRE_SimProCANcoder", "headerClassifier": "headers", "sharedLibrary": true, @@ -309,6 +348,7 @@ "binaryPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", "osxuniversal" ], "simMode": "swsim" @@ -316,7 +356,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simProPigeon2", - "version": "23.1.0", + "version": "25.1.0", "libName": "CTRE_SimProPigeon2", "headerClassifier": "headers", "sharedLibrary": true, @@ -324,6 +364,23 @@ "binaryPlatforms": [ "windowsx86-64", "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simProCANrange", + "version": "25.1.0", + "libName": "CTRE_SimProCANrange", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", "osxuniversal" ], "simMode": "swsim"