From 29b52d485b08a7fdb718bb257ecd9cf378b54547 Mon Sep 17 00:00:00 2001 From: Banks Troutman Date: Tue, 26 Nov 2019 01:39:36 -0500 Subject: [PATCH] Add PS3Eye detection --- .../vision/camera/USBCameraProperties.java | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/Main/src/main/java/com/chameleonvision/vision/camera/USBCameraProperties.java b/Main/src/main/java/com/chameleonvision/vision/camera/USBCameraProperties.java index e91fe825b..56fd9521c 100644 --- a/Main/src/main/java/com/chameleonvision/vision/camera/USBCameraProperties.java +++ b/Main/src/main/java/com/chameleonvision/vision/camera/USBCameraProperties.java @@ -20,6 +20,10 @@ public class USBCameraProperties extends CaptureProperties { private static final int MINIMUM_WIDTH = 320; private static final int MINIMUM_HEIGHT = 200; private static final int MAX_INIT_MS = 1500; + + private static final int PS3EYE_VID = 1415; + private static final int PS3EYE_PID = 2000; + private static final List ALLOWED_PIXEL_FORMATS = Arrays.asList(VideoMode.PixelFormat.kYUYV, VideoMode.PixelFormat.kMJPEG); private static final Predicate kMinFPSPredicate = (videoMode -> videoMode.fps >= MINIMUM_FPS); @@ -31,12 +35,11 @@ public class USBCameraProperties extends CaptureProperties { public final List videoModes; private final UsbCamera baseCamera; - private final boolean hasGain; + public final boolean isPS3Eye; private String nickname; public double FOV; - USBCameraProperties(UsbCamera baseCamera, CameraConfig config) { FOV = config.fov; name = config.name; @@ -44,6 +47,9 @@ public class USBCameraProperties extends CaptureProperties { nickname = config.nickname; this.baseCamera = baseCamera; + int usbVID = baseCamera.getInfo().vendorId; + int usbPID = baseCamera.getInfo().productId; + // wait for camera USB init on Windows, Windows USB is slow... if (Platform.CurrentPlatform == Platform.WINDOWS_64 && !baseCamera.isConnected()) { System.out.print("Waiting on camera... "); @@ -57,17 +63,7 @@ public class USBCameraProperties extends CaptureProperties { System.out.printf("USBCameraProcess initialized in %.2fms\n", initTimeMs); } - // TODO: (low) find way to determine if camera is a PS3Eye - hasGain = false; -// var props = baseCamera.enumerateProperties(); -// for (var prop : props) { -// var name = prop.getName(); -// var min = prop.getMin(); -// var max = prop.getMax(); -// var _default = prop.getDefault(); -// var kind = prop.getKind(); -// } - + isPS3Eye = (usbVID == PS3EYE_VID && usbPID == PS3EYE_PID); videoModes = filterVideoModes(baseCamera.enumerateVideoModes()); }