2020-03-26 22:03:27 -04:00
|
|
|
package com.chameleonvision.common.scripting;
|
|
|
|
|
|
|
|
|
|
import com.chameleonvision.common.util.ShellExec;
|
|
|
|
|
import java.io.IOException;
|
Pipeline Bringup (#94)
* Refactor package structure, various cleanups
* Add pipeline classes, settings, separate enums
* updated Largest ContourSortMode and added centermost
* Add DriverPipeline classes, apply spotless
* Add crosshair to DriverMode, cleanups
* Add FrameStaticProperties as member in Frame
Add FrameStaticProperties as member in Frame
* Finish ReflectivePipeline, various tweaks
* Apply Spotless
* Move test images
* add Releasable interface, implement in classes
* add TestUtils class, move testimages
* Refactor CVPipeline, add ReflectivePipelineTest
* Fix ConcurrentModificationException bug in group contours pipe with potential targets
* Resolve memory leaks due to unnecessary instantiation of Points
* Apply spotless
* Add CVMat, ReflectionUtils to help track rogue Mats
* various cleanups, add DummyFrameConsumer
* Add logback
* Add slv4j logger to replace the current debugLogger
I'm waiting on stuff to be less skeletoned to add more
* Add perimeter, MatOfPoint2f getters to Contour
* Create CornerDetectionPipe based on old solvePNPPipe
* Add ContourShape class for approxPolyDp Start on ColoredShape tracking
* Add point detection, fix convex hull calculation in Contour
* Make Draw2dContours pipe respect showMultiple
* Update Contour.java
* Clean up draw 3d, fix convex hull bug in corner detection
* Update geometry classes
* Add lifecam calibration data
* Implement solvePNP, bounding box top and bottom
* Fix JSON mat bug and lifecam default calibration for tests, fix 3d drawing
* run spotless
* Refactor calibration into `common.calibration`
* Update .gitignore
* Add offset method to get2020Target
* Various cleanups, add PipelineType enum
* Apply spotless
Co-authored-by: ori agranat <oriagranat9@gmail.com>
Co-authored-by: Matt <matthew.morley.ca@gmail.com>
2020-04-12 18:37:14 -04:00
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
2020-03-26 22:03:27 -04:00
|
|
|
|
|
|
|
|
public class ScriptEvent {
|
2020-03-28 21:52:36 -07:00
|
|
|
private static final ShellExec executor = new ShellExec(true, true);
|
2020-03-28 18:38:50 -07:00
|
|
|
|
2020-03-28 21:52:36 -07:00
|
|
|
public final ScriptConfig config;
|
Pipeline Bringup (#94)
* Refactor package structure, various cleanups
* Add pipeline classes, settings, separate enums
* updated Largest ContourSortMode and added centermost
* Add DriverPipeline classes, apply spotless
* Add crosshair to DriverMode, cleanups
* Add FrameStaticProperties as member in Frame
Add FrameStaticProperties as member in Frame
* Finish ReflectivePipeline, various tweaks
* Apply Spotless
* Move test images
* add Releasable interface, implement in classes
* add TestUtils class, move testimages
* Refactor CVPipeline, add ReflectivePipelineTest
* Fix ConcurrentModificationException bug in group contours pipe with potential targets
* Resolve memory leaks due to unnecessary instantiation of Points
* Apply spotless
* Add CVMat, ReflectionUtils to help track rogue Mats
* various cleanups, add DummyFrameConsumer
* Add logback
* Add slv4j logger to replace the current debugLogger
I'm waiting on stuff to be less skeletoned to add more
* Add perimeter, MatOfPoint2f getters to Contour
* Create CornerDetectionPipe based on old solvePNPPipe
* Add ContourShape class for approxPolyDp Start on ColoredShape tracking
* Add point detection, fix convex hull calculation in Contour
* Make Draw2dContours pipe respect showMultiple
* Update Contour.java
* Clean up draw 3d, fix convex hull bug in corner detection
* Update geometry classes
* Add lifecam calibration data
* Implement solvePNP, bounding box top and bottom
* Fix JSON mat bug and lifecam default calibration for tests, fix 3d drawing
* run spotless
* Refactor calibration into `common.calibration`
* Update .gitignore
* Add offset method to get2020Target
* Various cleanups, add PipelineType enum
* Apply spotless
Co-authored-by: ori agranat <oriagranat9@gmail.com>
Co-authored-by: Matt <matthew.morley.ca@gmail.com>
2020-04-12 18:37:14 -04:00
|
|
|
private final Logger logger = LoggerFactory.getLogger(ScriptEvent.class);
|
2020-03-28 18:38:50 -07:00
|
|
|
|
2020-03-28 21:52:36 -07:00
|
|
|
public ScriptEvent(ScriptConfig config) {
|
|
|
|
|
this.config = config;
|
|
|
|
|
}
|
2020-03-28 18:38:50 -07:00
|
|
|
|
2020-03-28 21:52:36 -07:00
|
|
|
public int run() throws IOException {
|
|
|
|
|
int retVal = executor.executeBashCommand(config.command);
|
2020-03-28 18:38:50 -07:00
|
|
|
|
2020-03-28 21:52:36 -07:00
|
|
|
String output = executor.getOutput();
|
|
|
|
|
String error = executor.getError();
|
2020-03-28 18:38:50 -07:00
|
|
|
|
2020-03-28 21:52:36 -07:00
|
|
|
if (!error.isEmpty()) {
|
|
|
|
|
System.err.printf("Error when running \"%s\" script: %s\n", config.eventType.name(), error);
|
|
|
|
|
} else if (!output.isEmpty()) {
|
Pipeline Bringup (#94)
* Refactor package structure, various cleanups
* Add pipeline classes, settings, separate enums
* updated Largest ContourSortMode and added centermost
* Add DriverPipeline classes, apply spotless
* Add crosshair to DriverMode, cleanups
* Add FrameStaticProperties as member in Frame
Add FrameStaticProperties as member in Frame
* Finish ReflectivePipeline, various tweaks
* Apply Spotless
* Move test images
* add Releasable interface, implement in classes
* add TestUtils class, move testimages
* Refactor CVPipeline, add ReflectivePipelineTest
* Fix ConcurrentModificationException bug in group contours pipe with potential targets
* Resolve memory leaks due to unnecessary instantiation of Points
* Apply spotless
* Add CVMat, ReflectionUtils to help track rogue Mats
* various cleanups, add DummyFrameConsumer
* Add logback
* Add slv4j logger to replace the current debugLogger
I'm waiting on stuff to be less skeletoned to add more
* Add perimeter, MatOfPoint2f getters to Contour
* Create CornerDetectionPipe based on old solvePNPPipe
* Add ContourShape class for approxPolyDp Start on ColoredShape tracking
* Add point detection, fix convex hull calculation in Contour
* Make Draw2dContours pipe respect showMultiple
* Update Contour.java
* Clean up draw 3d, fix convex hull bug in corner detection
* Update geometry classes
* Add lifecam calibration data
* Implement solvePNP, bounding box top and bottom
* Fix JSON mat bug and lifecam default calibration for tests, fix 3d drawing
* run spotless
* Refactor calibration into `common.calibration`
* Update .gitignore
* Add offset method to get2020Target
* Various cleanups, add PipelineType enum
* Apply spotless
Co-authored-by: ori agranat <oriagranat9@gmail.com>
Co-authored-by: Matt <matthew.morley.ca@gmail.com>
2020-04-12 18:37:14 -04:00
|
|
|
logger.info(
|
2020-03-28 21:52:36 -07:00
|
|
|
String.format("Output from \"%s\" script: %s\n", config.eventType.name(), output));
|
|
|
|
|
}
|
Pipeline Bringup (#94)
* Refactor package structure, various cleanups
* Add pipeline classes, settings, separate enums
* updated Largest ContourSortMode and added centermost
* Add DriverPipeline classes, apply spotless
* Add crosshair to DriverMode, cleanups
* Add FrameStaticProperties as member in Frame
Add FrameStaticProperties as member in Frame
* Finish ReflectivePipeline, various tweaks
* Apply Spotless
* Move test images
* add Releasable interface, implement in classes
* add TestUtils class, move testimages
* Refactor CVPipeline, add ReflectivePipelineTest
* Fix ConcurrentModificationException bug in group contours pipe with potential targets
* Resolve memory leaks due to unnecessary instantiation of Points
* Apply spotless
* Add CVMat, ReflectionUtils to help track rogue Mats
* various cleanups, add DummyFrameConsumer
* Add logback
* Add slv4j logger to replace the current debugLogger
I'm waiting on stuff to be less skeletoned to add more
* Add perimeter, MatOfPoint2f getters to Contour
* Create CornerDetectionPipe based on old solvePNPPipe
* Add ContourShape class for approxPolyDp Start on ColoredShape tracking
* Add point detection, fix convex hull calculation in Contour
* Make Draw2dContours pipe respect showMultiple
* Update Contour.java
* Clean up draw 3d, fix convex hull bug in corner detection
* Update geometry classes
* Add lifecam calibration data
* Implement solvePNP, bounding box top and bottom
* Fix JSON mat bug and lifecam default calibration for tests, fix 3d drawing
* run spotless
* Refactor calibration into `common.calibration`
* Update .gitignore
* Add offset method to get2020Target
* Various cleanups, add PipelineType enum
* Apply spotless
Co-authored-by: ori agranat <oriagranat9@gmail.com>
Co-authored-by: Matt <matthew.morley.ca@gmail.com>
2020-04-12 18:37:14 -04:00
|
|
|
logger.info(
|
2020-03-28 21:52:36 -07:00
|
|
|
String.format(
|
Pipeline Bringup (#94)
* Refactor package structure, various cleanups
* Add pipeline classes, settings, separate enums
* updated Largest ContourSortMode and added centermost
* Add DriverPipeline classes, apply spotless
* Add crosshair to DriverMode, cleanups
* Add FrameStaticProperties as member in Frame
Add FrameStaticProperties as member in Frame
* Finish ReflectivePipeline, various tweaks
* Apply Spotless
* Move test images
* add Releasable interface, implement in classes
* add TestUtils class, move testimages
* Refactor CVPipeline, add ReflectivePipelineTest
* Fix ConcurrentModificationException bug in group contours pipe with potential targets
* Resolve memory leaks due to unnecessary instantiation of Points
* Apply spotless
* Add CVMat, ReflectionUtils to help track rogue Mats
* various cleanups, add DummyFrameConsumer
* Add logback
* Add slv4j logger to replace the current debugLogger
I'm waiting on stuff to be less skeletoned to add more
* Add perimeter, MatOfPoint2f getters to Contour
* Create CornerDetectionPipe based on old solvePNPPipe
* Add ContourShape class for approxPolyDp Start on ColoredShape tracking
* Add point detection, fix convex hull calculation in Contour
* Make Draw2dContours pipe respect showMultiple
* Update Contour.java
* Clean up draw 3d, fix convex hull bug in corner detection
* Update geometry classes
* Add lifecam calibration data
* Implement solvePNP, bounding box top and bottom
* Fix JSON mat bug and lifecam default calibration for tests, fix 3d drawing
* run spotless
* Refactor calibration into `common.calibration`
* Update .gitignore
* Add offset method to get2020Target
* Various cleanups, add PipelineType enum
* Apply spotless
Co-authored-by: ori agranat <oriagranat9@gmail.com>
Co-authored-by: Matt <matthew.morley.ca@gmail.com>
2020-04-12 18:37:14 -04:00
|
|
|
"Script for %s ran with command line: \"%s\", exit code: %d, output: %s, "
|
|
|
|
|
+ "error: %s\n",
|
2020-03-28 21:52:36 -07:00
|
|
|
config.eventType.name(), config.command, retVal, output, error));
|
|
|
|
|
return retVal;
|
|
|
|
|
}
|
2020-03-26 22:03:27 -04:00
|
|
|
}
|