From 6065a3d70ca940bf93c44faacb948a204976f41b Mon Sep 17 00:00:00 2001 From: "Cameron (3539)" Date: Wed, 1 Jan 2025 14:21:54 -0500 Subject: [PATCH] Fix CSI camera exposure setting (#1665) Adjusts the exposure setting of csi cameras to match that of USB cameras. If you set a manual exposure it will drop out of auto exposure. --- .../vision/camera/csi/LibcameraGpuSettables.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/photon-core/src/main/java/org/photonvision/vision/camera/csi/LibcameraGpuSettables.java b/photon-core/src/main/java/org/photonvision/vision/camera/csi/LibcameraGpuSettables.java index 4b7c30698..da8448847 100644 --- a/photon-core/src/main/java/org/photonvision/vision/camera/csi/LibcameraGpuSettables.java +++ b/photon-core/src/main/java/org/photonvision/vision/camera/csi/LibcameraGpuSettables.java @@ -124,16 +124,19 @@ public class LibcameraGpuSettables extends VisionSourceSettables { @Override public void setAutoExposure(boolean cameraAutoExposure) { + logger.debug("Setting auto exposure to " + cameraAutoExposure); lastAutoExposureActive = cameraAutoExposure; LibCameraJNI.setAutoExposure(r_ptr, cameraAutoExposure); + if (!cameraAutoExposure) { + setExposureRaw(lastManualExposure); + } } @Override public void setExposureRaw(double exposureRaw) { - if (exposureRaw < 0.0 || lastAutoExposureActive) { - // Auto-exposure is active right now, don't set anything. - return; - } + logger.debug("Setting exposure to " + exposureRaw); + + LibCameraJNI.setAutoExposure(r_ptr, false); // Store the exposure for use when we need to recreate the camera. lastManualExposure = exposureRaw;