mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-20 00:51:41 +00:00
added acess methods
-get current pipeline - get current camera - get res list - set current camera -set current pipeline
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
package Classes;
|
||||
import Exceptions.NoCameraException;
|
||||
import Objects.*;
|
||||
import java.io.*;
|
||||
import java.nio.file.*;
|
||||
@@ -35,7 +36,7 @@ public class SettingsManager {
|
||||
public static HashMap<String,Camera> Cameras = new HashMap<String, Camera>();
|
||||
public static HashMap<String,UsbCamera> UsbCameras = new HashMap<String, UsbCamera>();
|
||||
public static HashMap<String,UsbCameraInfo> USBCamerasInfo = new HashMap<String,UsbCameraInfo>();
|
||||
public static DefaultGeneralSettings GeneralSettings;
|
||||
public static Objects.GeneralSettings GeneralSettings;
|
||||
public static HashMap CameraPort = new HashMap();
|
||||
public static HashMap CamerasCurrentPipeline = new HashMap();
|
||||
private Path SettingsPath = Paths.get(System.getProperty("user.dir"),"Settings");
|
||||
@@ -45,9 +46,9 @@ public class SettingsManager {
|
||||
private void InitiateGeneralSettings(){
|
||||
CheckPath(SettingsPath);
|
||||
try {
|
||||
GeneralSettings = new Gson().fromJson(new FileReader(Paths.get(SettingsPath.toString(),"Settings.json").toString()),DefaultGeneralSettings.class);
|
||||
GeneralSettings = new Gson().fromJson(new FileReader(Paths.get(SettingsPath.toString(),"Settings.json").toString()), Objects.GeneralSettings.class);
|
||||
} catch (FileNotFoundException e) {
|
||||
GeneralSettings = new DefaultGeneralSettings();
|
||||
GeneralSettings = new GeneralSettings();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,7 +128,7 @@ public class SettingsManager {
|
||||
CamVideoMode.width = videomode.width;
|
||||
CamVideoMode.pixel_format = videomode.pixelFormat.name();
|
||||
cam.camVideoMode = CamVideoMode;
|
||||
cam.pipelines = new HashMap<String, DefaultPipeline>();
|
||||
cam.pipelines = new HashMap<String, Pipeline>();
|
||||
cam.resolution = 0;
|
||||
cam.FOV = 60.8;
|
||||
Cameras.put(CameraName,cam);
|
||||
@@ -151,7 +152,44 @@ public class SettingsManager {
|
||||
else if (cam.pipelines.containsKey(PipeName)){
|
||||
System.err.println("Pipeline Already Exists");
|
||||
}
|
||||
cam.pipelines.put(PipeName,new DefaultPipeline());
|
||||
cam.pipelines.put(PipeName,new Pipeline());
|
||||
}
|
||||
//Access Methods
|
||||
public Pipeline GetCurrentPipeline() throws Exception {
|
||||
if (!GeneralSettings.curr_pipeline.equals("")){
|
||||
return Cameras.get(GeneralSettings.curr_camera).pipelines.get(GeneralSettings.curr_pipeline);
|
||||
}
|
||||
throw new NoCameraException();
|
||||
}
|
||||
public Camera GetCurrentCamera() throws Exception {
|
||||
if (!GeneralSettings.curr_camera.equals("")){
|
||||
return Cameras.get(GeneralSettings.curr_camera);
|
||||
}
|
||||
throw new NoCameraException();
|
||||
}
|
||||
public List<String> GetResolutionList() throws NoCameraException {
|
||||
if (!GeneralSettings.curr_camera.equals("")){
|
||||
List<String> list = new ArrayList<String>();
|
||||
var cam = UsbCameras.get(GeneralSettings.curr_camera);
|
||||
for (var res : cam.enumerateVideoModes()){
|
||||
list.add(String.format("%s X %s at %s fps", res.width, res.height, res.fps));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
throw new NoCameraException();
|
||||
}
|
||||
public void SetCurrentCamera(String CamName) throws Exception {
|
||||
if (Cameras.containsKey(CamName)){
|
||||
GeneralSettings.curr_camera = CamName;
|
||||
GeneralSettings.curr_pipeline = GetCurrentCamera().pipelines.keySet().stream().findFirst().toString();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
public void SetCurrentPipeline(String PipelineName) throws Exception {
|
||||
if (GetCurrentCamera().pipelines.containsKey(PipelineName)){
|
||||
GeneralSettings.curr_pipeline = PipelineName;
|
||||
}
|
||||
}
|
||||
//Savers
|
||||
public void SaveSettings(){
|
||||
|
||||
7
Main/src/main/java/Exceptions/NoCameraException.java
Normal file
7
Main/src/main/java/Exceptions/NoCameraException.java
Normal file
@@ -0,0 +1,7 @@
|
||||
package Exceptions;
|
||||
|
||||
public class NoCameraException extends Exception {
|
||||
public NoCameraException(){
|
||||
super("No Camera Connected");
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import java.util.HashMap;
|
||||
public class Camera {
|
||||
public Double FOV = 60.8;
|
||||
public String path = "";
|
||||
public HashMap<String,DefaultPipeline> pipelines;
|
||||
public HashMap<String, Pipeline> pipelines;
|
||||
public int resolution = 0;
|
||||
public CamVideoMode camVideoMode;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package Objects;
|
||||
|
||||
public class DefaultGeneralSettings {
|
||||
public class GeneralSettings {
|
||||
public int team_number = 1577;
|
||||
public String connection_type = "DHCP";
|
||||
public String ip = "";
|
||||
@@ -2,7 +2,7 @@ package Objects;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class DefaultPipeline {
|
||||
public class Pipeline {
|
||||
public int exposure = 50;
|
||||
public int brightness = 50;
|
||||
public String orientation = "Normal";
|
||||
Reference in New Issue
Block a user