Prep for new pipeline config setup

This commit is contained in:
Banks Troutman
2019-11-27 22:23:02 -05:00
parent 07e07df040
commit 02adf3c588
2 changed files with 58 additions and 24 deletions

View File

@@ -21,29 +21,27 @@ public class CameraConfig {
private final String cameraConfigName;
private final CameraJsonConfig preliminaryConfig;
private final PipelineConfig pipelineConfig;
CameraConfig(CameraJsonConfig config) {
preliminaryConfig = config;
cameraConfigName = preliminaryConfig.name.replace(' ', '_');
pipelineConfig = new PipelineConfig(this);
}
public CameraJsonConfig load() {
public FullCameraConfiguration load() {
checkFolder();
checkConfig();
checkPipelines();
checkDriverMode();
pipelineConfig.check();
return loadConfig();
return new FullCameraConfiguration(loadConfig(), pipelineConfig.load(), loadDriverMode());
}
private CameraJsonConfig loadConfig() {
CameraJsonConfig config = preliminaryConfig;
try {
config = JacksonHelper.deserializer(getConfigPath(), CameraJsonConfig.class);
// if (config != null) {
// TODO: fix for multicamera
// boolean pathsDifferent = !(config.path != preliminaryConfig.path);
// config = new CameraJsonConfig(config.fov, preliminaryConfig.path, config.name, config.nickname);
// }
} catch (IOException e) {
System.err.printf("Failed to load camera config: %s - using default.\n", getConfigPath().toString());
}
@@ -118,16 +116,7 @@ public class CameraConfig {
}
}
private void checkPipelines() {
if (!pipelinesExists()) {
try {
var sanePipeline = List.of(new CVPipeline2dSettings()).toArray();
JacksonHelper.serializer(getPipelinesPath(), List.of(new CVPipeline2dSettings()).toArray());
} catch (IOException e) {
System.err.println("Failed to create camera pipelines file: " + getPipelinesPath().toString());
}
}
}
private void checkDriverMode() {
if (!driverModeExists()) {
@@ -149,7 +138,7 @@ public class CameraConfig {
return Paths.get(getFolderPath().toString(), "camera.json");
}
private Path getPipelinesPath() {
Path getPipelinesPath() {
return Paths.get(getFolderPath().toString(), "pipelines.json");
}
@@ -157,7 +146,7 @@ public class CameraConfig {
return Paths.get(getFolderPath().toString(), "drivermode.json");
}
private boolean folderExists() {
boolean folderExists() {
return Files.exists(getFolderPath());
}
@@ -165,11 +154,11 @@ public class CameraConfig {
return folderExists() && Files.exists(getConfigPath());
}
private boolean pipelinesExists() {
return folderExists() && Files.exists(getPipelinesPath());
}
private boolean driverModeExists() {
return folderExists() && Files.exists(getDriverModePath());
}
boolean pipelinesExists() {
return folderExists() && Files.exists(getPipelinesPath());
}
}

View File

@@ -0,0 +1,45 @@
package com.chameleonvision.config;
import com.chameleonvision.util.JacksonHelper;
import com.chameleonvision.vision.pipeline.CVPipeline2dSettings;
import com.chameleonvision.vision.pipeline.CVPipeline3dSettings;
import com.chameleonvision.vision.pipeline.CVPipelineSettings;
import java.io.IOException;
import java.util.List;
public class PipelineConfig {
public static final String CVPipeline2DPrefix = "CV2D";
public static final String CVPipeline3DPrefix = "CV3D";
private final CameraConfig cameraConfig;
public PipelineConfig(CameraConfig cameraConfig) {
this.cameraConfig = cameraConfig;
}
void check() {
if (!cameraConfig.pipelinesExists()) {
save(new CVPipeline2dSettings());
}
}
private void save(CVPipelineSettings settings) {
if (settings instanceof CVPipeline2dSettings) {
} else if (settings instanceof CVPipeline3dSettings) {
}
}
public void save(List<CVPipelineSettings> settings) {
for(CVPipelineSettings setting : settings) {
save(setting);
}
}
public List<CVPipelineSettings> load() {
return null;
}
}