mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-21 01:01:41 +00:00
Fix drivermode NPE and rename visionprocess method
This commit is contained in:
@@ -139,11 +139,12 @@ public class Main {
|
||||
NetworkTableInstance.getDefault().startServer();
|
||||
} else {
|
||||
NetworkTableInstance.getDefault().addLogger(new NTLogger(), 0, 255); // to hide error messages
|
||||
if (ntClientModeServer != null) {
|
||||
NetworkTableInstance.getDefault().startClient(ntClientModeServer);
|
||||
} else {
|
||||
NetworkTableInstance.getDefault().startClientTeam(ConfigManager.settings.teamNumber);
|
||||
}
|
||||
// if (ntClientModeServer != null) {
|
||||
// NetworkTableInstance.getDefault().startClient(ntClientModeServer);
|
||||
// } else {
|
||||
// NetworkTableInstance.getDefault().startClientTeam(ConfigManager.settings.teamNumber);
|
||||
// }
|
||||
NetworkTableInstance.getDefault().startClient("localhost");
|
||||
}
|
||||
|
||||
boolean visionSourcesOk = VisionManager.initializeSources();
|
||||
|
||||
@@ -249,9 +249,9 @@ public class VisionProcess {
|
||||
return currentPipelineIndex;
|
||||
}
|
||||
|
||||
public void addPipeline() {
|
||||
public void addBlankPipeline() {
|
||||
// TODO: (2.1) add to UI option between 2d and 3d pipeline
|
||||
pipelines.add(new CVPipeline2d());
|
||||
addPipeline(new CVPipeline2d());
|
||||
}
|
||||
|
||||
public void addPipeline(CVPipeline pipeline) {
|
||||
@@ -260,7 +260,7 @@ public class VisionProcess {
|
||||
|
||||
public void addPipeline(CVPipelineSettings settings) {
|
||||
if (settings instanceof CVPipeline2dSettings) {
|
||||
pipelines.add(new CVPipeline2d((CVPipeline2dSettings) settings));
|
||||
addPipeline(new CVPipeline2d((CVPipeline2dSettings) settings));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.chameleonvision.vision.pipeline;
|
||||
import com.chameleonvision.vision.pipeline.pipes.Draw2dContoursPipe;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.opencv.core.Mat;
|
||||
import org.opencv.core.RotatedRect;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -10,24 +11,30 @@ import static com.chameleonvision.vision.pipeline.DriverVisionPipeline.DriverPip
|
||||
|
||||
public class DriverVisionPipeline extends CVPipeline<DriverPipelineResult, CVPipelineSettings> {
|
||||
|
||||
private Draw2dContoursPipe draw2dContoursPipe = null;
|
||||
private Draw2dContoursPipe.Draw2dContoursSettings draw2dContoursSettings = new Draw2dContoursPipe.Draw2dContoursSettings();
|
||||
private final List<RotatedRect> blankList = List.of();
|
||||
|
||||
public DriverVisionPipeline(CVPipelineSettings settings) {
|
||||
super(settings);
|
||||
draw2dContoursSettings.showCrosshair = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DriverPipelineResult runPipeline(Mat inputMat) {
|
||||
|
||||
outputMat = inputMat;
|
||||
inputMat.copyTo(outputMat);
|
||||
|
||||
var camProps = cameraCapture.getProperties().getStaticProperties();
|
||||
if(draw2dContoursPipe == null) {
|
||||
draw2dContoursPipe = new Draw2dContoursPipe(draw2dContoursSettings, camProps);
|
||||
} else {
|
||||
draw2dContoursPipe.setConfig(camProps);
|
||||
}
|
||||
|
||||
Draw2dContoursPipe.Draw2dContoursSettings draw2dContoursSettings = new Draw2dContoursPipe.Draw2dContoursSettings();
|
||||
draw2dContoursSettings.showCrosshair = true;
|
||||
Draw2dContoursPipe draw2dContoursPipe = new Draw2dContoursPipe(draw2dContoursSettings, camProps);
|
||||
draw2dContoursPipe.run(Pair.of(outputMat, blankList)).getLeft().copyTo(outputMat);
|
||||
|
||||
outputMat = draw2dContoursPipe.run(Pair.of(outputMat, null)).getLeft();
|
||||
|
||||
return new DriverPipelineResult(null, inputMat, 0);
|
||||
return new DriverPipelineResult(null, outputMat, 0);
|
||||
}
|
||||
|
||||
public static class DriverPipelineResult extends CVPipelineResult<Void> {
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.chameleonvision.config.ConfigManager;
|
||||
import com.chameleonvision.vision.VisionManager;
|
||||
import com.chameleonvision.vision.VisionProcess;
|
||||
import com.chameleonvision.vision.camera.CameraCapture;
|
||||
import com.chameleonvision.vision.enums.StreamDivisor;
|
||||
import com.chameleonvision.vision.pipeline.CVPipeline;
|
||||
import com.chameleonvision.vision.pipeline.CVPipelineSettings;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
@@ -76,7 +75,7 @@ public class SocketHandler {
|
||||
VisionManager.saveCurrentCameraPipelines();
|
||||
break;
|
||||
}
|
||||
case "duplicatePipeline": {
|
||||
case "duplicatePipeline": { // TODO doesn't work (HIGH)
|
||||
HashMap pipelineVals = (HashMap) entry.getValue();
|
||||
int pipelineIndex = (int) pipelineVals.get("pipeline");
|
||||
int cameraIndex = (int) pipelineVals.get("camera");
|
||||
@@ -97,7 +96,7 @@ public class SocketHandler {
|
||||
case "command": {
|
||||
switch ((String) entry.getValue()) {
|
||||
case "addNewPipeline":
|
||||
currentProcess.addPipeline();
|
||||
currentProcess.addBlankPipeline();
|
||||
sendFullSettings();
|
||||
VisionManager.saveCurrentCameraPipelines();
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user