From a8daff3ed4e3220e41dad70ea23e75f9729f082f Mon Sep 17 00:00:00 2001 From: Chris Gerth Date: Tue, 24 Sep 2024 00:02:16 -0500 Subject: [PATCH] Revised 9782 defaults (#1431) revised order to prevent some randomness around init --- .../org/photonvision/vision/camera/QuirkyCamera.java | 6 ++++-- .../camera/USBCameras/ArduOV9782CameraSettables.java | 9 +++++++++ .../camera/USBCameras/GenericUSBCameraSettables.java | 1 - .../USBCameras/LifeCam3kWindowsCameraSettables.java | 1 + .../vision/camera/USBCameras/PsEyeCameraSettables.java | 2 ++ 5 files changed, 16 insertions(+), 3 deletions(-) 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 2eb1982fd..5debd4010 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 @@ -55,6 +55,7 @@ public class QuirkyCamera { "", "Arducam Generic", CameraQuirk.ArduCamCamera, + CameraQuirk.Gain, CameraQuirk.StickyFPS), // Arducam OV2311 new QuirkyCamera( @@ -73,17 +74,18 @@ public class QuirkyCamera { "OV9281", CameraQuirk.ArduCamCamera, CameraQuirk.ArduOV9281Controls), - // Arducam OV + // Arducam OV9782 new QuirkyCamera( 0x0c45, 0x6366, "OV9782", "OV9782", CameraQuirk.ArduCamCamera, + CameraQuirk.Gain, CameraQuirk.ArduOV9782Controls), // Innomaker OV9281 new QuirkyCamera( - 0x0c45, 0x636d, "USB Camera", "USB Camera", CameraQuirk.InnoOV9281Controls)); + 0x0c45, 0x636d, "USB Camera", "Innomaker OV9281", CameraQuirk.InnoOV9281Controls)); public static final QuirkyCamera DefaultCamera = new QuirkyCamera(0, 0, ""); public static final QuirkyCamera ZeroCopyPiCamera = diff --git a/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/ArduOV9782CameraSettables.java b/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/ArduOV9782CameraSettables.java index caf803689..70fdbf9e1 100644 --- a/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/ArduOV9782CameraSettables.java +++ b/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/ArduOV9782CameraSettables.java @@ -26,6 +26,15 @@ public class ArduOV9782CameraSettables extends GenericUSBCameraSettables { whiteBalanceTemperature = 3500; } + @Override + public void setAllCamDefaults() { + softSet("power_line_frequency", 2); // Assume 60Hz USA + softSet("exposure_metering_mode", 0); + softSet("exposure_dynamic_framerate", 0); + softSet("white_balance_automatic", 0); + softSet("white_balance_temperature", whiteBalanceTemperature); + } + @Override protected void setUpExposureProperties() { super.setUpExposureProperties(); diff --git a/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/GenericUSBCameraSettables.java b/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/GenericUSBCameraSettables.java index e83fe11b5..818b567df 100644 --- a/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/GenericUSBCameraSettables.java +++ b/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/GenericUSBCameraSettables.java @@ -100,7 +100,6 @@ public class GenericUSBCameraSettables extends VisionSourceSettables { softSet("exposure_dynamic_framerate", 0); softSet("focus_auto", 0); softSet("focus_absolute", 0); // Focus into infinity - softSet("white_balance_temperature", whiteBalanceTemperature); } public void setAutoExposure(boolean cameraAutoExposure) { diff --git a/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/LifeCam3kWindowsCameraSettables.java b/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/LifeCam3kWindowsCameraSettables.java index ef4a3029c..b52dbd84d 100644 --- a/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/LifeCam3kWindowsCameraSettables.java +++ b/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/LifeCam3kWindowsCameraSettables.java @@ -61,6 +61,7 @@ public class LifeCam3kWindowsCameraSettables extends GenericUSBCameraSettables { } } + @Override public void setAutoExposure(boolean cameraAutoExposure) { logger.debug("Setting auto exposure to " + cameraAutoExposure); diff --git a/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/PsEyeCameraSettables.java b/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/PsEyeCameraSettables.java index 8195ca493..50e06916d 100644 --- a/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/PsEyeCameraSettables.java +++ b/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/PsEyeCameraSettables.java @@ -25,6 +25,7 @@ public class PsEyeCameraSettables extends GenericUSBCameraSettables { super(configuration, camera); } + @Override public void setAutoExposure(boolean cameraAutoExposure) { logger.debug("Setting auto exposure to " + cameraAutoExposure); @@ -42,6 +43,7 @@ public class PsEyeCameraSettables extends GenericUSBCameraSettables { } } + @Override public void setAllCamDefaults() { // Common settings for all cameras to attempt to get their image // as close as possible to what we want for image processing