001/* 002 * Copyright (C) Photon Vision. 003 * 004 * This program is free software: you can redistribute it and/or modify 005 * it under the terms of the GNU General Public License as published by 006 * the Free Software Foundation, either version 3 of the License, or 007 * (at your option) any later version. 008 * 009 * This program is distributed in the hope that it will be useful, 010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 012 * GNU General Public License for more details. 013 * 014 * You should have received a copy of the GNU General Public License 015 * along with this program. If not, see <https://www.gnu.org/licenses/>. 016 */ 017 018package org.photonvision.vision.camera; 019 020import com.fasterxml.jackson.annotation.JsonAlias; 021 022public enum CameraQuirk { 023 /** Camera settable for controllable image gain */ 024 Gain, 025 /** Only certain discrete exposure settings work */ 026 LifeCamControls, 027 /** Auto-Exposure property uses 1/0, rather than 3/1 */ 028 PsEyeControls, 029 /** Cap at 100FPS for high-bandwidth cameras */ 030 FPSCap100, 031 /** Separate red/blue gain controls available */ 032 @JsonAlias("AWBGain") // remove after https://github.com/PhotonVision/photonvision/issues/1488 033 AwbRedBlueGain, 034 /** Will not work with photonvision - Logitech C270 at least */ 035 CompletelyBroken, 036 /** Has adjustable focus and autofocus switch */ 037 AdjustableFocus, 038 /** Changing FPS repeatedly with small delay does not work correctly */ 039 StickyFPS, 040 /** Camera is an arducam. This means it shares VID/PID with other arducams (ew) */ 041 ArduCamCamera, 042 /** 043 * Camera is an arducam USB ov9281 which has a funky exposure issue where it is defined in v4l as 044 * 1-5000 instead of 1-75 045 */ 046 @JsonAlias("ArduOV9281") // remove after https://github.com/PhotonVision/photonvision/issues/1488 047 ArduOV9281Controls, 048 /** Dummy quirk to tell OV2311 from OV9281 */ 049 // from 2024.3.1 050 @JsonAlias("ArduOV2311") // remove after https://github.com/PhotonVision/photonvision/issues/1488 051 ArduOV2311Controls, 052 ArduOV9782Controls, 053 /** 054 * Camera is one brand of USB OV9281 which also has incorrect v4l exposure times Real range is 055 * more like 0-500 056 */ 057 InnoOV9281Controls, 058 ArduOV9782, 059 /** Camera has odd exposure range, and supports gain control */ 060 See3Cam_24CUG, 061}