diff --git a/photon-server/src/main/java/org/photonvision/Main.java b/photon-server/src/main/java/org/photonvision/Main.java index f98b19d0a..8ffc31c22 100644 --- a/photon-server/src/main/java/org/photonvision/Main.java +++ b/photon-server/src/main/java/org/photonvision/Main.java @@ -140,7 +140,7 @@ public class Main { logger.error("Failed to parse command-line options!", e); } - CVMat.enablePrint(true); + CVMat.enablePrint(false); PipelineProfiler.enablePrint(false); var logLevel = printDebugLogs ? LogLevel.TRACE : LogLevel.DEBUG; diff --git a/photon-server/src/main/java/org/photonvision/server/SocketHandler.java b/photon-server/src/main/java/org/photonvision/server/SocketHandler.java index 3ac2e2029..dcc4936da 100644 --- a/photon-server/src/main/java/org/photonvision/server/SocketHandler.java +++ b/photon-server/src/main/java/org/photonvision/server/SocketHandler.java @@ -86,9 +86,16 @@ public class SocketHandler { users.remove(context); if (users.size() == 0) { + logger.info("All websocket connections are closed. Setting inputShouldShow to false."); + + // cameraIndex -1 means the event is received by all cameras dcService.publishEvent( new IncomingWebSocketEvent<>( - DataChangeDestination.DCD_ACTIVEPIPELINESETTINGS, "inputShouldShow", false)); + DataChangeDestination.DCD_ACTIVEPIPELINESETTINGS, + "inputShouldShow", + false, + -1, + null)); } } diff --git a/photon-server/src/main/java/org/photonvision/vision/processes/VisionModuleChangeSubscriber.java b/photon-server/src/main/java/org/photonvision/vision/processes/VisionModuleChangeSubscriber.java index 33fcd7251..4707426af 100644 --- a/photon-server/src/main/java/org/photonvision/vision/processes/VisionModuleChangeSubscriber.java +++ b/photon-server/src/main/java/org/photonvision/vision/processes/VisionModuleChangeSubscriber.java @@ -53,7 +53,9 @@ public class VisionModuleChangeSubscriber extends DataChangeSubscriber { if (event instanceof IncomingWebSocketEvent) { var wsEvent = (IncomingWebSocketEvent) event; - if (wsEvent.cameraIndex != null && wsEvent.cameraIndex == parentModule.moduleIndex) { + // Camera index -1 means a "multicast event" (i.e. the event is received by all cameras) + if (wsEvent.cameraIndex != null + && (wsEvent.cameraIndex == parentModule.moduleIndex || wsEvent.cameraIndex == -1)) { logger.trace("Got PSC event - propName: " + wsEvent.propertyName); var propName = wsEvent.propertyName;