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.common.dataflow.websocket; 019 020import java.util.HashMap; 021import java.util.List; 022import org.photonvision.common.configuration.CameraConfiguration; 023import org.photonvision.vision.calibration.UICameraCalibrationCoefficients; 024import org.photonvision.vision.camera.PVCameraInfo; 025import org.photonvision.vision.camera.QuirkyCamera; 026 027public class UICameraConfiguration { 028 // Path to the camera device. On Linux, this is a special file in /dev/v4l/by-id 029 // or /dev/videoN. 030 // This is the path we hand to CSCore to do auto-reconnect on 031 public String cameraPath; 032 033 /** See {@link CameraConfiguration #deactivated} */ 034 public boolean deactivated; 035 036 public String nickname; 037 public String uniqueName; 038 039 public double fov; 040 public HashMap<String, Object> currentPipelineSettings; 041 public int currentPipelineIndex; 042 public List<String> pipelineNicknames; 043 public HashMap<Integer, HashMap<String, Object>> videoFormatList; 044 public int outputStreamPort; 045 public int inputStreamPort; 046 public List<UICameraCalibrationCoefficients> calibrations; 047 public boolean isFovConfigurable = true; 048 public QuirkyCamera cameraQuirks; 049 public boolean isCSICamera; 050 public double minExposureRaw; 051 public double maxExposureRaw; 052 public double minWhiteBalanceTemp; 053 public double maxWhiteBalanceTemp; 054 public PVCameraInfo matchedCameraInfo; 055 056 // Status for if the underlying device is present and such 057 public boolean isConnected; 058 public boolean hasConnected; 059}