From cde4a63febf91ad235246d3e8d8b3f82ab0ef451 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 14 Sep 2019 13:27:16 +0300 Subject: [PATCH] added acess methods -get current pipeline - get current camera - get res list - set current camera -set current pipeline --- .../main/java/Classes/SettingsManager.java | 48 +++++++++++++++++-- .../java/Exceptions/NoCameraException.java | 7 +++ Main/src/main/java/Objects/Camera.java | 2 +- ...eralSettings.java => GeneralSettings.java} | 2 +- .../{DefaultPipeline.java => Pipeline.java} | 2 +- 5 files changed, 53 insertions(+), 8 deletions(-) create mode 100644 Main/src/main/java/Exceptions/NoCameraException.java rename Main/src/main/java/Objects/{DefaultGeneralSettings.java => GeneralSettings.java} (89%) rename Main/src/main/java/Objects/{DefaultPipeline.java => Pipeline.java} (96%) diff --git a/Main/src/main/java/Classes/SettingsManager.java b/Main/src/main/java/Classes/SettingsManager.java index bf488e88a..3cb700d9c 100644 --- a/Main/src/main/java/Classes/SettingsManager.java +++ b/Main/src/main/java/Classes/SettingsManager.java @@ -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 Cameras = new HashMap(); public static HashMap UsbCameras = new HashMap(); public static HashMap USBCamerasInfo = new HashMap(); - 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(); + cam.pipelines = new HashMap(); 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 GetResolutionList() throws NoCameraException { + if (!GeneralSettings.curr_camera.equals("")){ + List list = new ArrayList(); + 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(){ diff --git a/Main/src/main/java/Exceptions/NoCameraException.java b/Main/src/main/java/Exceptions/NoCameraException.java new file mode 100644 index 000000000..320671431 --- /dev/null +++ b/Main/src/main/java/Exceptions/NoCameraException.java @@ -0,0 +1,7 @@ +package Exceptions; + +public class NoCameraException extends Exception { + public NoCameraException(){ + super("No Camera Connected"); + } +} diff --git a/Main/src/main/java/Objects/Camera.java b/Main/src/main/java/Objects/Camera.java index dce17c3b4..446258c36 100644 --- a/Main/src/main/java/Objects/Camera.java +++ b/Main/src/main/java/Objects/Camera.java @@ -5,7 +5,7 @@ import java.util.HashMap; public class Camera { public Double FOV = 60.8; public String path = ""; - public HashMap pipelines; + public HashMap pipelines; public int resolution = 0; public CamVideoMode camVideoMode; diff --git a/Main/src/main/java/Objects/DefaultGeneralSettings.java b/Main/src/main/java/Objects/GeneralSettings.java similarity index 89% rename from Main/src/main/java/Objects/DefaultGeneralSettings.java rename to Main/src/main/java/Objects/GeneralSettings.java index 4954a9ea1..843e6ffd0 100644 --- a/Main/src/main/java/Objects/DefaultGeneralSettings.java +++ b/Main/src/main/java/Objects/GeneralSettings.java @@ -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 = ""; diff --git a/Main/src/main/java/Objects/DefaultPipeline.java b/Main/src/main/java/Objects/Pipeline.java similarity index 96% rename from Main/src/main/java/Objects/DefaultPipeline.java rename to Main/src/main/java/Objects/Pipeline.java index a8f678919..75a1eb15f 100644 --- a/Main/src/main/java/Objects/DefaultPipeline.java +++ b/Main/src/main/java/Objects/Pipeline.java @@ -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";