From 0cdd9a74d0f21e92addcb34ce51819c2ee6330e4 Mon Sep 17 00:00:00 2001 From: Matt Date: Sun, 30 Jun 2024 02:08:58 -0400 Subject: [PATCH 1/3] Bump wpilib to 2025.0.0-alpha-1 and break non-FRC JDKs (#1356) Windows users will have to add `"-Dorg.gradle.java.home=C:\Users\Public\wpilib\2024\jdk"` to gradle invocations, ie `./gradlew run "-Dorg.gradle.java.home=C:\Users\Public\wpilib\2024\jdk"`, due to MSVC ABI breakages and other stupidity --- build.gradle | 4 ++-- .../photonvision/common/util/TestUtils.java | 24 +++++++++++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index c28cfe05c2..9d43a514b4 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ import edu.wpi.first.toolchain.* plugins { id "com.diffplug.spotless" version "6.24.0" - id "edu.wpi.first.NativeUtils" version "2024.6.1" apply false + id "edu.wpi.first.NativeUtils" version "2024.7.2" apply false id "edu.wpi.first.wpilib.repositories.WPILibRepositoriesPlugin" version "2020.2" id "edu.wpi.first.GradleRIO" version "2024.3.2" id 'edu.wpi.first.WpilibTools' version '1.3.0' @@ -28,7 +28,7 @@ ext.allOutputsFolder = file("$project.buildDir/outputs") apply from: "versioningHelper.gradle" ext { - wpilibVersion = "2024.3.2-139-gfbfef85" + wpilibVersion = "2025.0.0-alpha-1" wpimathVersion = wpilibVersion openCVversion = "4.8.0-2" joglVersion = "2.4.0" diff --git a/photon-core/src/main/java/org/photonvision/common/util/TestUtils.java b/photon-core/src/main/java/org/photonvision/common/util/TestUtils.java index c906736351..f84775a550 100644 --- a/photon-core/src/main/java/org/photonvision/common/util/TestUtils.java +++ b/photon-core/src/main/java/org/photonvision/common/util/TestUtils.java @@ -22,8 +22,14 @@ import edu.wpi.first.cscore.CameraServerJNI; import edu.wpi.first.cscore.OpenCvLoader; import edu.wpi.first.hal.JNIWrapper; -import edu.wpi.first.math.WPIMathJNI; import edu.wpi.first.math.geometry.Translation2d; +import edu.wpi.first.math.jni.ArmFeedforwardJNI; +import edu.wpi.first.math.jni.DAREJNI; +import edu.wpi.first.math.jni.EigenJNI; +import edu.wpi.first.math.jni.Ellipse2dJNI; +import edu.wpi.first.math.jni.Pose3dJNI; +import edu.wpi.first.math.jni.StateSpaceUtilJNI; +import edu.wpi.first.math.jni.TrajectoryUtilJNI; import edu.wpi.first.math.util.Units; import edu.wpi.first.net.WPINetJNI; import edu.wpi.first.networktables.NetworkTablesJNI; @@ -44,15 +50,29 @@ public class TestUtils { public static boolean loadLibraries() { if (has_loaded) return true; + // None of these work either, wbhich is odd to me. commented out for now + // System.load("C:\\Users\\matth\\.wpilib\\nativecache\\windows\\x86-64\\4ca969397a399d7bcd38c546fd9ac2e1\\wpiutil.dll"); + // System.load("C:\\Users\\matth\\.wpilib\\nativecache\\windows\\x86-64\\4ca969397a399d7bcd38c546fd9ac2e1\\wpiutiljni.dll"); + // System.err.println("Test-load yay"); + NetworkTablesJNI.Helper.setExtractOnStaticLoad(false); WPIUtilJNI.Helper.setExtractOnStaticLoad(false); - WPIMathJNI.Helper.setExtractOnStaticLoad(false); CameraServerJNI.Helper.setExtractOnStaticLoad(false); OpenCvLoader.Helper.setExtractOnStaticLoad(false); JNIWrapper.Helper.setExtractOnStaticLoad(false); WPINetJNI.Helper.setExtractOnStaticLoad(false); AprilTagJNI.Helper.setExtractOnStaticLoad(false); + // wpimathjni is a bit odd, it's all in the wpimathjni shared lib, but the java side stuff has + // been split. + ArmFeedforwardJNI.Helper.setExtractOnStaticLoad(false); + DAREJNI.Helper.setExtractOnStaticLoad(false); + EigenJNI.Helper.setExtractOnStaticLoad(false); + Ellipse2dJNI.Helper.setExtractOnStaticLoad(false); + Pose3dJNI.Helper.setExtractOnStaticLoad(false); + StateSpaceUtilJNI.Helper.setExtractOnStaticLoad(false); + TrajectoryUtilJNI.Helper.setExtractOnStaticLoad(false); + try { CombinedRuntimeLoader.loadLibraries( TestUtils.class, From 94e2cfeabfa691515b3749c8242942b870d41821 Mon Sep 17 00:00:00 2001 From: Chris Gerth Date: Sun, 30 Jun 2024 06:26:48 -0500 Subject: [PATCH 2/3] Update photon-core/src/main/java/org/photonvision/vision/camera/USBCameraSource.java Co-authored-by: Matt --- .../java/org/photonvision/vision/camera/USBCameraSource.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/photon-core/src/main/java/org/photonvision/vision/camera/USBCameraSource.java b/photon-core/src/main/java/org/photonvision/vision/camera/USBCameraSource.java index ce35cb89d2..7cd34f328e 100644 --- a/photon-core/src/main/java/org/photonvision/vision/camera/USBCameraSource.java +++ b/photon-core/src/main/java/org/photonvision/vision/camera/USBCameraSource.java @@ -170,7 +170,7 @@ private Optional findProperty(String... options) { /** * Forgiving "set this property" action. Produces a debug message but skips properties if they - * aren't supported Errors if the property exists but the set fails. + * aren't supported. Errors if the property exists but the set fails. * * @param property * @param value From f076a6f67f6257eb89b087a62b26db2e27d8381b Mon Sep 17 00:00:00 2001 From: Chris Gerth Date: Sun, 30 Jun 2024 06:26:56 -0500 Subject: [PATCH 3/3] Update photon-core/src/main/java/org/photonvision/vision/camera/USBCameraSource.java Co-authored-by: Matt --- .../java/org/photonvision/vision/camera/USBCameraSource.java | 1 + 1 file changed, 1 insertion(+) diff --git a/photon-core/src/main/java/org/photonvision/vision/camera/USBCameraSource.java b/photon-core/src/main/java/org/photonvision/vision/camera/USBCameraSource.java index 7cd34f328e..6e41084433 100644 --- a/photon-core/src/main/java/org/photonvision/vision/camera/USBCameraSource.java +++ b/photon-core/src/main/java/org/photonvision/vision/camera/USBCameraSource.java @@ -194,6 +194,7 @@ private void printCameraProperaties() { cameraProperties = camera.enumerateProperties(); } catch (VideoException e) { logger.error("Failed to list camera properties!", e); + return; } if (cameraProperties != null) {