Add CameraDeserializer, fix empty camera.json crash

This commit is contained in:
Banks Troutman
2019-09-20 15:42:13 -04:00
parent c5568e4296
commit d733995ac6
6 changed files with 73 additions and 30 deletions

View File

@@ -15,8 +15,7 @@ public class Camera {
public final String name;
public final String path;
public final UsbCamera UsbCam;
private final UsbCameraInfo UsbCamInfo;
final UsbCamera UsbCam;
private final VideoMode[] availableVideoModes;
private final CameraServer cs = CameraServer.getInstance();
@@ -29,7 +28,7 @@ public class Camera {
private CamVideoMode camVideoMode;
private int currentPipelineIndex;
private HashMap<Integer, Pipeline> pipelines = new HashMap<>();
private HashMap<Integer, Pipeline> pipelines;
public Camera(String cameraName) {
this(cameraName, defaultFOV);
@@ -44,13 +43,22 @@ public class Camera {
}
public Camera(UsbCameraInfo usbCamInfo, double fov) {
UsbCamInfo = usbCamInfo;
this(usbCamInfo, fov, new HashMap<>());
}
public Camera(String cameraName, double fov, HashMap<Integer, Pipeline> pipelines) {
this(CameraManager.AllUsbCameraInfosByName.get(cameraName), fov, pipelines);
}
public Camera(UsbCameraInfo usbCamInfo, double fov, HashMap<Integer, Pipeline> pipelines) {
FOV = fov;
name = usbCamInfo.name;
path = usbCamInfo.path;
UsbCam = new UsbCamera(name, path);
this.pipelines = pipelines;
// set up video mode
availableVideoModes = UsbCam.enumerateVideoModes();
setCamVideoMode(new CamVideoMode(availableVideoModes[0]));
@@ -81,7 +89,7 @@ public class Camera {
}
}
public void addPipeline() {
void addPipeline() {
addPipeline(pipelines.size());
}
@@ -98,7 +106,7 @@ public class Camera {
return currentPipelineIndex;
}
public void setCurrentPipelineIndex(int pipelineNumber) {
void setCurrentPipelineIndex(int pipelineNumber) {
if (pipelineNumber - 1 > pipelines.size()) return;
currentPipelineIndex = pipelineNumber;
}
@@ -106,7 +114,7 @@ public class Camera {
return pipelines;
}
public CamVideoMode getVideoMode() {
CamVideoMode getVideoMode() {
return camVideoMode;
}