+
useCameraSettingsStore().changeCurrentPipelineSetting({ blur: value }, false)"
+ :max="10"
+ :step="1"
+ @input="(value) => useCameraSettingsStore().changeCurrentPipelineSetting({ test1: value }, false)"
+ />
+ useCameraSettingsStore().changeCurrentPipelineSetting({ test2: value }, false)"
+ />
+ useCameraSettingsStore().changeCurrentPipelineSetting({ test3: value }, false)"
/>
diff --git a/photon-client/src/types/PipelineTypes.ts b/photon-client/src/types/PipelineTypes.ts
index 07e689e..3cc7bb3 100644
--- a/photon-client/src/types/PipelineTypes.ts
+++ b/photon-client/src/types/PipelineTypes.ts
@@ -318,7 +318,7 @@ export const DefaultObjectDetectionPipelineSettings: ObjectDetectionPipelineSett
};
export interface CustomTestPipelineSettings extends PipelineSettings {
- pipelineType: PipelineType.AprilTag;
+ pipelineType: PipelineType.CustomTest;
test1: number;
test2: number;
test3: number;
@@ -329,7 +329,7 @@ export type ConfigurableCustomTestPipelineSettings = Partial<
ConfigurablePipelineSettings;
export const DefaultCustomTestPipelineSettings: CustomTestPipelineSettings = {
...DefaultPipelineSettings,
- pipelineType: PipelineType.AprilTag,
+ pipelineType: PipelineType.CustomTest,
cameraGain: 20,
targetModel: TargetModel.InfiniteRechargeHighGoalOuter,
ledMode: true,
diff --git a/photon-client/src/types/WebsocketDataTypes.ts b/photon-client/src/types/WebsocketDataTypes.ts
index 2e9b6da..2938ad5 100644
--- a/photon-client/src/types/WebsocketDataTypes.ts
+++ b/photon-client/src/types/WebsocketDataTypes.ts
@@ -107,5 +107,6 @@ export enum WebsocketPipelineType {
ColoredShape = 1,
AprilTag = 2,
Aruco = 3,
- ObjectDetection = 4
+ ObjectDetection = 4,
+ CustomTest = 5
}
diff --git a/photon-core/src/main/java/org/photonvision/vision/opencv/ContourSortMode.java b/photon-core/src/main/java/org/photonvision/vision/opencv/ContourSortMode.java
index 531e3b3..eab42af 100644
--- a/photon-core/src/main/java/org/photonvision/vision/opencv/ContourSortMode.java
+++ b/photon-core/src/main/java/org/photonvision/vision/opencv/ContourSortMode.java
@@ -17,9 +17,10 @@
package org.photonvision.vision.opencv;
-import java.util.Comparator;
import org.photonvision.vision.target.PotentialTarget;
+import java.util.Comparator;
+
public enum ContourSortMode {
Largest(
Comparator.comparingDouble(PotentialTarget::getArea)
diff --git a/photon-core/src/main/java/org/photonvision/vision/pipe/impl/AprilTagDetectionPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/AprilTagDetectionPipe.java
index e4737ce..e29f1ca 100644
--- a/photon-core/src/main/java/org/photonvision/vision/pipe/impl/AprilTagDetectionPipe.java
+++ b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/AprilTagDetectionPipe.java
@@ -70,7 +70,9 @@ public class AprilTagDetectionPipe
@Override
public void release() {
- m_detector.close();
- m_detector = null;
+ if(m_detector != null) {
+ m_detector.close();
+ m_detector = null;
+ }
}
}
diff --git a/photon-core/src/main/java/org/photonvision/vision/pipeline/CVPipeline.java b/photon-core/src/main/java/org/photonvision/vision/pipeline/CVPipeline.java
index 91dc44a..a523cdd 100644
--- a/photon-core/src/main/java/org/photonvision/vision/pipeline/CVPipeline.java
+++ b/photon-core/src/main/java/org/photonvision/vision/pipeline/CVPipeline.java
@@ -68,7 +68,7 @@ public abstract class CVPipeline
{
private static final FrameThresholdType PROCESSING_TYPE = FrameThresholdType.GREYSCALE;
- public CustomTestPipeline(FrameThresholdType thresholdType) {
- super(thresholdType);
+ private final BlurPipe blurPipe = new BlurPipe();
+
+ public CustomTestPipeline() {
+ super(PROCESSING_TYPE);
+ settings = new CustomTestPipelineSettings();
}
public CustomTestPipeline(CustomTestPipelineSettings settings) {
@@ -20,7 +25,20 @@ public class CustomTestPipeline extends CVPipeline 0) {
+// var cx = cameraMatrix.get(0, 2)[0];
+// var cy = cameraMatrix.get(1, 2)[0];
+// var fx = cameraMatrix.get(0, 0)[0];
+// var fy = cameraMatrix.get(1, 1)[0];
+// }
+// }
}
@Override
@@ -29,6 +47,16 @@ public class CustomTestPipeline extends CVPipeline> sortContoursResult =
+ CVPipeResult> sortContoursResult =
sortContoursPipe.run(
filterContoursResult.output.stream()
.map(shape -> new PotentialTarget(shape))
diff --git a/photon-core/src/main/java/org/photonvision/vision/pipeline/OutputStreamPipeline.java b/photon-core/src/main/java/org/photonvision/vision/pipeline/OutputStreamPipeline.java
index da2c400..1b5c3b5 100644
--- a/photon-core/src/main/java/org/photonvision/vision/pipeline/OutputStreamPipeline.java
+++ b/photon-core/src/main/java/org/photonvision/vision/pipeline/OutputStreamPipeline.java
@@ -229,6 +229,8 @@ public class OutputStreamPipeline {
pipeProfileNanos[7] = 0;
pipeProfileNanos[8] = 0;
}
+ } else if (settings instanceof CustomTestPipelineSettings) {
+ //TODO
}
}
diff --git a/photon-core/src/main/java/org/photonvision/vision/processes/PipelineManager.java b/photon-core/src/main/java/org/photonvision/vision/processes/PipelineManager.java
index b039432..8558cda 100644
--- a/photon-core/src/main/java/org/photonvision/vision/processes/PipelineManager.java
+++ b/photon-core/src/main/java/org/photonvision/vision/processes/PipelineManager.java
@@ -243,6 +243,7 @@ public class PipelineManager {
private void recreateUserPipeline() {
// Cleanup potential old native resources before swapping over from a user
// pipeline
+// logger.info(currentUserPipeline.getSettings().pipelineNickname);
if (currentUserPipeline != null && !(currentPipelineIndex < 0)) {
currentUserPipeline.release();
}
diff --git a/photon-core/src/main/java/org/photonvision/vision/processes/VisionRunner.java b/photon-core/src/main/java/org/photonvision/vision/processes/VisionRunner.java
index a1299bd..b88d113 100644
--- a/photon-core/src/main/java/org/photonvision/vision/processes/VisionRunner.java
+++ b/photon-core/src/main/java/org/photonvision/vision/processes/VisionRunner.java
@@ -112,6 +112,7 @@ public class VisionRunner {
// There's no guarantee the processing type change will occur this tick, so pipelines should
// check themselves
try {
+// logger.info("Running pipeline with name: " + pipeline.getSettings().pipelineNickname);
var pipelineResult = pipeline.run(frame, cameraQuirks);
pipelineResultConsumer.accept(pipelineResult);
} catch (Exception ex) {
diff --git a/photon-server/build.gradle b/photon-server/build.gradle
index fb14054..a9e7084 100644
--- a/photon-server/build.gradle
+++ b/photon-server/build.gradle
@@ -43,6 +43,7 @@ node {
}
tasks.register('copyClientUIToResources', Copy) {
+ dependsOn "processResources"
from "${projectDir}/../photon-client/dist/"
into "${projectDir}/src/main/resources/web/"
}