Added command handling for camera name, pipeline name pipeline duplication

This commit is contained in:
Banks Troutman
2019-10-24 15:20:15 -04:00
parent 0ce7d7465c
commit 7b48c9f964
7 changed files with 86 additions and 27 deletions

View File

@@ -15,6 +15,7 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.stream.Collectors;
@@ -22,7 +23,7 @@ public class CameraManager {
private static final Path CamConfigPath = Paths.get(SettingsManager.SettingsPath.toString(), "cameras");
private static HashMap<String, Camera> AllCamerasByName = new HashMap<>();
private static LinkedHashMap<String, Camera> AllCamerasByName = new LinkedHashMap<>();
private static HashMap<String, VisionProcess> AllVisionProcessesByName = new HashMap<>();
static HashMap<String, UsbCameraInfo> AllUsbCameraInfosByName = new HashMap<>() {{
@@ -88,6 +89,10 @@ public class CameraManager {
return AllCamerasByName.get(cameraName);
}
public static Camera getCameraByIndex(int index) {
return AllCamerasByName.get( (AllCamerasByName.keySet().toArray())[ index ] );
}
public static Camera getCurrentCamera() throws CameraException {
if (AllCamerasByName.size() == 0) throw new CameraException(CameraException.CameraExceptionType.NO_CAMERA);
var curCam = AllCamerasByName.get(SettingsManager.GeneralSettings.currentCamera);
@@ -113,14 +118,7 @@ public class CameraManager {
SettingsManager.updatePipelineSetting(pipelineNumber);
}
public static List<String> getResolutionList() throws CameraException {
if (!SettingsManager.GeneralSettings.currentCamera.equals("")) {
return Arrays.stream(CameraManager.getCamera(SettingsManager.GeneralSettings.currentCamera).getAvailableVideoModes())
.map(res -> String.format("%s X %s at %s fps using %s ", res.width, res.height, res.fps, res.pixelFormat.toString())).collect(Collectors.toList());
}
throw new CameraException(CameraException.CameraExceptionType.NO_CAMERA);
}
public static VisionProcess getCurrentCameraProcess() throws CameraException{
public static VisionProcess getCurrentCameraProcess() throws CameraException {
if (!SettingsManager.GeneralSettings.currentCamera.equals("")){
return AllVisionProcessesByName.get(SettingsManager.GeneralSettings.currentCamera);
}