From 7cba7b432d13a194f78e581822277d028e2e9ff2 Mon Sep 17 00:00:00 2001 From: Matt Date: Wed, 18 Dec 2024 20:51:02 -0800 Subject: [PATCH] Add camera sim smoketest (#1637) Paranoia test inspired by https://github.com/PhotonVision/photonvision/issues/1635 . --- .../src/test/java/frc/robot/JniLoadTest.java | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/photonlib-java-examples/aimattarget/src/test/java/frc/robot/JniLoadTest.java b/photonlib-java-examples/aimattarget/src/test/java/frc/robot/JniLoadTest.java index 65cd0f385..454aec7db 100644 --- a/photonlib-java-examples/aimattarget/src/test/java/frc/robot/JniLoadTest.java +++ b/photonlib-java-examples/aimattarget/src/test/java/frc/robot/JniLoadTest.java @@ -26,14 +26,38 @@ package frc.robot; import static org.junit.Assert.fail; +import java.util.List; + import org.junit.Test; import org.photonvision.timesync.TimeSyncSingleton; +import edu.wpi.first.math.geometry.Pose3d; +import edu.wpi.first.math.geometry.Rotation2d; + +import org.photonvision.simulation.PhotonCameraSim; +import org.photonvision.simulation.SimCameraProperties; +import org.photonvision.PhotonCamera; + public class JniLoadTest { @Test - public void smoketest() { + public void smoketestTimeSync() { if (!TimeSyncSingleton.load()) { fail("Could not load TimeSync JNI????????"); } } + + @Test + public void smoketestPhotonCameraSim() { + // This will trigger a force load of OpenCV internally - good to smoketest + var camera = new PhotonCamera("Hellowo"); + var cameraProp = new SimCameraProperties(); + cameraProp.setCalibration(320, 240, Rotation2d.fromDegrees(90)); + + var sim = new PhotonCameraSim(camera, cameraProp); + sim.enableDrawWireframe(true); + sim.enableProcessedStream(true); + sim.enableRawStream(true); + + sim.process(0, new Pose3d(), List.of()); + } }