From c2528a429a1214ab4cb5a15936bc48883ecffe55 Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 4 Jul 2024 11:32:52 -0700 Subject: [PATCH 1/2] Add See3Cam_24CUG quirks Co-authored-by: Banks Troutman --- .../main/java/org/photonvision/vision/camera/CameraQuirk.java | 4 +++- .../java/org/photonvision/vision/camera/QuirkyCamera.java | 3 +++ .../java/org/photonvision/vision/camera/USBCameraSource.java | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/photon-core/src/main/java/org/photonvision/vision/camera/CameraQuirk.java b/photon-core/src/main/java/org/photonvision/vision/camera/CameraQuirk.java index ab2aca7663..b086c09ece 100644 --- a/photon-core/src/main/java/org/photonvision/vision/camera/CameraQuirk.java +++ b/photon-core/src/main/java/org/photonvision/vision/camera/CameraQuirk.java @@ -44,5 +44,7 @@ public enum CameraQuirk { /* * Camera is an arducam ov9782 which has specific exposure ranges and needs a specific white balance issue */ - ArduOV9782 + ArduOV9782, + /** Camera has odd exposure range, and supports gain control */ + See3Cam_24CUG } diff --git a/photon-core/src/main/java/org/photonvision/vision/camera/QuirkyCamera.java b/photon-core/src/main/java/org/photonvision/vision/camera/QuirkyCamera.java index 076070e6cb..817fab6a11 100644 --- a/photon-core/src/main/java/org/photonvision/vision/camera/QuirkyCamera.java +++ b/photon-core/src/main/java/org/photonvision/vision/camera/QuirkyCamera.java @@ -28,6 +28,9 @@ public class QuirkyCamera { private static final List quirkyCameras = List.of( + // SeeCam, which has an odd exposure range + new QuirkyCamera( + 0x2560, 0xc128, "See3Cam_24CUG", CameraQuirk.Gain, CameraQuirk.See3Cam_24CUG), new QuirkyCamera( 0x9331, 0x5A3, 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 57d38fadc4..1e265596fd 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 @@ -295,6 +295,9 @@ public void setExposure(double exposure) { } else if (getCameraConfiguration().cameraQuirks.hasQuirk(CameraQuirk.ArduOV9782)) { propMin = 1; propMax = 60; + } else if (getCameraConfiguration().cameraQuirks.hasQuirk(CameraQuirk.See3Cam_24CUG)) { + propMin = 0; + propMax = 600; } var exposure_manual_val = MathUtils.map(Math.round(exposure), 0, 100, propMin, propMax); From 402c514f974864abcffbe5c1a71d6465bf95df24 Mon Sep 17 00:00:00 2001 From: Chris Gerth Date: Tue, 24 Sep 2024 00:00:59 -0500 Subject: [PATCH 2/2] fixing quirk comment --- .../java/org/photonvision/vision/camera/CameraQuirk.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/photon-core/src/main/java/org/photonvision/vision/camera/CameraQuirk.java b/photon-core/src/main/java/org/photonvision/vision/camera/CameraQuirk.java index f727289d9c..cd96d1d00a 100644 --- a/photon-core/src/main/java/org/photonvision/vision/camera/CameraQuirk.java +++ b/photon-core/src/main/java/org/photonvision/vision/camera/CameraQuirk.java @@ -45,11 +45,11 @@ public enum CameraQuirk { ArduOV2311Controls, ArduOV9782Controls, /** - * Camera is innomaker USB OV9281 which also has incorrect v4l exposure times Real range is more - * like 0-500 + * Camera is one brand of USB OV9281 which also has incorrect v4l exposure times Real range is + * more like 0-500 */ + InnoOV9281Controls, ArduOV9782, /** Camera has odd exposure range, and supports gain control */ See3Cam_24CUG, - InnoOV9281Controls, }