diff --git a/photon-client/src/App.vue b/photon-client/src/App.vue index ca605bde5..71b073edf 100644 --- a/photon-client/src/App.vue +++ b/photon-client/src/App.vue @@ -188,7 +188,7 @@ } else if (this.$store.state.hasOwnProperty(key)) { this.$store.commit(key, value); } else if (this.$store.getters.currentPipelineSettings.hasOwnProperty(key)) { - this.$store.commit('mutatePipeline', {'key': key, 'value': value}); + this.$store.commit('mutatePipeline', {[key]: value}); } else { switch (key) { default: { diff --git a/photon-server/src/main/java/org/photonvision/common/dataflow/events/OutgoingUIEvent.java b/photon-server/src/main/java/org/photonvision/common/dataflow/events/OutgoingUIEvent.java index cea569e4d..cdc7bb8c2 100644 --- a/photon-server/src/main/java/org/photonvision/common/dataflow/events/OutgoingUIEvent.java +++ b/photon-server/src/main/java/org/photonvision/common/dataflow/events/OutgoingUIEvent.java @@ -30,8 +30,11 @@ public class OutgoingUIEvent extends DataChangeEvent { this.updateType = updateType; } - @SuppressWarnings("unchecked") - public OutgoingUIEvent(UIUpdateType updateType, String dataKey, HashMap data) { - this(updateType, dataKey, (T) data.get(dataKey)); + public static OutgoingUIEvent> wrappedOf( + UIUpdateType uiUpdateType, String commandName, String propertyName, Object value) { + HashMap data = new HashMap<>(); + data.put(propertyName, value); + + return new OutgoingUIEvent<>(uiUpdateType, commandName, data); } } diff --git a/photon-server/src/main/java/org/photonvision/vision/processes/VisionModule.java b/photon-server/src/main/java/org/photonvision/vision/processes/VisionModule.java index 88caf640a..76d44911b 100644 --- a/photon-server/src/main/java/org/photonvision/vision/processes/VisionModule.java +++ b/photon-server/src/main/java/org/photonvision/vision/processes/VisionModule.java @@ -284,8 +284,8 @@ public class VisionModule { logger.error("Unknown exception when setting PSC prop!"); e.printStackTrace(); } + saveAndBroadcast(propName, newPropValue); } - saveAndBroadcast(); } } } @@ -320,6 +320,17 @@ public class VisionModule { ConfigManager.getInstance().getConfig().toHashMap())); } + private void saveAndBroadcast(String propertyName, Object value) { + logger.trace("Broadcasting PSC mutation - " + propertyName + ": " + value); + ConfigManager.getInstance() + .saveModule( + getStateAsCameraConfig(), visionSource.getSettables().getConfiguration().uniqueName); + DataChangeService.getInstance() + .publishEvent( + OutgoingUIEvent.wrappedOf( + UIUpdateType.BROADCAST, "mutatePipeline", propertyName, value)); + } + private void setCameraNickname(String newName) { visionSource.getSettables().getConfiguration().nickname = newName; ntConsumer.updateCameraNickname(newName);