From 5f9a4341c8bab89247391fa56006a448722adb0f Mon Sep 17 00:00:00 2001 From: Brandon Date: Sun, 25 Oct 2026 23:59:37 -0700 Subject: [PATCH 1/8] fix tooltips, logs, and remove duplicate setIconImage --- .../micromanager/lightsheetmanager/gui/frames/XYZGridFrame.java | 1 - .../org/micromanager/lightsheetmanager/gui/tabs/CameraTab.java | 2 +- .../lightsheetmanager/gui/tabs/channels/ChannelTablePanel.java | 2 +- .../lightsheetmanager/gui/tabs/setup/PositionPanel.java | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/frames/XYZGridFrame.java b/src/main/java/org/micromanager/lightsheetmanager/gui/frames/XYZGridFrame.java index 866c7c2a..c9ef08cc 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/gui/frames/XYZGridFrame.java +++ b/src/main/java/org/micromanager/lightsheetmanager/gui/frames/XYZGridFrame.java @@ -201,7 +201,6 @@ private void createUserInterface() { add(pnlButtons, ""); pack(); // fit window size to layout - setIconImage(Icons.MICROSCOPE.getImage()); } private void createEventHandlers() { diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/CameraTab.java b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/CameraTab.java index c789e5d4..e903a42e 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/CameraTab.java +++ b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/CameraTab.java @@ -372,7 +372,7 @@ private Rectangle customROI() { // Computes the ROI based on a scaling factor. private Rectangle computeCenterRectangle(final Rectangle rect, final int scale) { if (scale < 1) { - model_.studio().logs().showError("scale must be > 1; could not compute ROI!"); + model_.studio().logs().showError("scale must be >= 1; could not compute ROI!"); return rect; } if (rect.x != 0 || rect.y != 0) { diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/channels/ChannelTablePanel.java b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/channels/ChannelTablePanel.java index de1fdc1f..91b41979 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/channels/ChannelTablePanel.java +++ b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/channels/ChannelTablePanel.java @@ -68,7 +68,7 @@ private void createUserInterface() { btnAddChannel_.setToolTipText("Add a new channel to the table."); btnRemoveChannel_.setToolTipText("Remove the currently selected channel from the table."); - btnRefresh_.setToolTipText("Refresh the channel panel with the latest configuration groups settings."); + btnRefresh_.setToolTipText("Refresh the channel panel with the latest configuration group settings."); final String[] groupLabels = table_.getChannelGroups(); cmbChannelGroup_ = new ComboBox<>(groupLabels, diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/setup/PositionPanel.java b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/setup/PositionPanel.java index 16995016..2861aea6 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/setup/PositionPanel.java +++ b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/setup/PositionPanel.java @@ -106,7 +106,7 @@ private void createUserInterface() { txtImagingPosition_.setToolTipText( "Type an imaging piezo position in μm and press Enter to move there."); //btnImagingCenterSet_.setToolTipText("Set \"Imaging Center\" value to \"Imaging Piezo\" position. "); - btnSliceZero_.setToolTipText("Move \"Slice Position\" position to 0 degrees."); + btnSliceZero_.setToolTipText("Move \"Slice Position\" to 0 degrees."); btnImagingZero_.setToolTipText("Move \"Imaging Piezo\" position to 0 μm."); //btnTestAcq_.setToolTipText("Run a test acquisition."); From 25c047483fbd3fe50c8b1d67223e898399bf7355 Mon Sep 17 00:00:00 2001 From: Brandon Date: Mon, 26 Oct 2026 00:04:55 -0700 Subject: [PATCH 2/8] fix camera and api comments --- .../lightsheetmanager/api/AcquisitionSettings.java | 4 ++-- .../model/devices/cameras/AndorCamera.java | 4 ++-- .../lightsheetmanager/model/devices/cameras/DemoCamera.java | 6 +++--- .../model/devices/cameras/HamamatsuCamera.java | 5 ++--- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/micromanager/lightsheetmanager/api/AcquisitionSettings.java b/src/main/java/org/micromanager/lightsheetmanager/api/AcquisitionSettings.java index 65b23168..b924ea4e 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/api/AcquisitionSettings.java +++ b/src/main/java/org/micromanager/lightsheetmanager/api/AcquisitionSettings.java @@ -147,9 +147,9 @@ interface Builder> { T self(); /** - * Creates an immutable instance of DefaultAcquisitionSettings + * Creates an immutable instance of AcquisitionSettings * - * @return Immutable version of DefaultAcquisitionSettings + * @return Immutable version of AcquisitionSettings */ AcquisitionSettings build(); } diff --git a/src/main/java/org/micromanager/lightsheetmanager/model/devices/cameras/AndorCamera.java b/src/main/java/org/micromanager/lightsheetmanager/model/devices/cameras/AndorCamera.java index f9f62ea1..cba63e4b 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/model/devices/cameras/AndorCamera.java +++ b/src/main/java/org/micromanager/lightsheetmanager/model/devices/cameras/AndorCamera.java @@ -63,7 +63,7 @@ protected void applyTriggerMode(CameraMode cameraMode) { setProperty(Properties.OVERLAP, Values.OFF); // Note: the following applies to single view mode, the issue is not present in dual view mode: - // only shutter speeds < 4 work with the 200 Mhz slow scan mode, shutter speeds >= 5 will miss 1 image + // only shutter speeds < 4 work with the 200 MHz slow scan mode, shutter speeds >= 5 will miss 1 image double maxLineScanSpeed = 104166.6667; if (isSlowReadout()) { @@ -192,7 +192,7 @@ public double getResetTime(CameraMode cameraMode) { return cameraReadoutTime + (numRowsOverhead * rowReadoutTime); } - // Note: at some point the Andor Zyla 4.2 camera changed it's PixelReadoutRate property value + // Note: at some point the Andor Zyla 4.2 camera changed its PixelReadoutRate property value // for the slow scan speed to start with "200 MHz" instead of "216 MHz". private boolean isSlowReadout() { if (isZyla55()) { diff --git a/src/main/java/org/micromanager/lightsheetmanager/model/devices/cameras/DemoCamera.java b/src/main/java/org/micromanager/lightsheetmanager/model/devices/cameras/DemoCamera.java index 3bac8f94..74531669 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/model/devices/cameras/DemoCamera.java +++ b/src/main/java/org/micromanager/lightsheetmanager/model/devices/cameras/DemoCamera.java @@ -6,10 +6,10 @@ import java.awt.Rectangle; /** - * Support for the DemoCamera in DHub. + * Support for the DemoCamera device adapter. *

Note: this is for demo configurations. - *

Device Adapter: DHub - *

Camera Support: DemoCamera + *

Device Adapter: DemoCamera + *

Camera Support: DCam */ public class DemoCamera extends CameraBase { diff --git a/src/main/java/org/micromanager/lightsheetmanager/model/devices/cameras/HamamatsuCamera.java b/src/main/java/org/micromanager/lightsheetmanager/model/devices/cameras/HamamatsuCamera.java index 748d39c4..1741a3c7 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/model/devices/cameras/HamamatsuCamera.java +++ b/src/main/java/org/micromanager/lightsheetmanager/model/devices/cameras/HamamatsuCamera.java @@ -68,11 +68,10 @@ protected void applyTriggerMode(final CameraMode cameraMode) { try { lowerLimit = core_.getPropertyLowerLimit(deviceName_, Properties.INTERNAL_LINE_INTERVAL); } catch (Exception ignore) { - // ignore => will set the HAMAMATSU_LINE_INTERVAL property + // ignore => will set the INTERNAL_LINE_INTERVAL property // to the rowTime without considering the lower limit } setProperty(Properties.INTERNAL_LINE_INTERVAL, String.valueOf((Math.max(rowTime, lowerLimit)))); - //props_.setPropValue(devKey, Properties.Keys.HAMAMATSU_LINE_INTERVAL, Math.max(rowTime, lowerLimit)); break; case EDGE: setProperty(Properties.TRIGGER_ACTIVE, Values.EDGE); @@ -193,7 +192,7 @@ public double getResetTime(final CameraMode cameraMode) { final double resetTimeMs = camReadoutTime + (numRowsOverhead * rowReadoutTime); studio_.logs().logDebugMessage("camera reset time computed as " + resetTimeMs + " for camera " + deviceName_); - return resetTimeMs; // assume 10ms readout if not otherwise possible to calculate + return resetTimeMs; } } From 8fd3560307d2f1948696880de988c8e2c08d7ae7 Mon Sep 17 00:00:00 2001 From: Brandon Date: Mon, 26 Oct 2026 00:12:47 -0700 Subject: [PATCH 3/8] fix comments --- .../micromanager/lightsheetmanager/gui/tabs/AutofocusTab.java | 2 +- .../lightsheetmanager/gui/tabs/acquisition/CameraPanel.java | 1 - .../lightsheetmanager/gui/tabs/navigation/ControlPanel.java | 2 -- .../lightsheetmanager/gui/tabs/setup/SingleAxisPanel.java | 2 +- .../micromanager/lightsheetmanager/gui/utils/WindowUtils.java | 2 +- 5 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/AutofocusTab.java b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/AutofocusTab.java index 8ecf402b..2320cce2 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/AutofocusTab.java +++ b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/AutofocusTab.java @@ -30,7 +30,7 @@ public class AutofocusTab extends Panel implements ListeningPanel { private ComboBox cmbScoringMethod_; private Button btnRunAutofocus_; - // autofocus options during setup + // autofocus options during acquisition private CheckBox cbxAutofocusEveryPass_; private CheckBox cbxAutofocusBeforeAcq_; private ComboBox cmbAutofocusChannel_; // TODO: impl diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/acquisition/CameraPanel.java b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/acquisition/CameraPanel.java index 1df86e96..82eb32b6 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/acquisition/CameraPanel.java +++ b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/acquisition/CameraPanel.java @@ -56,7 +56,6 @@ private void createUserInterface() { cmbCameraMode_ = new ComboBox<>(modes, model_.acquisitions().settings().cameraMode(), 140, 20); - // validate that the logical device name exists final String[] cameraNames = model_.devices().imagingCameraNames(); cbxCameras_ = new ArrayList<>(cameraNames.length); diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/navigation/ControlPanel.java b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/navigation/ControlPanel.java index 3496990a..e34f071a 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/navigation/ControlPanel.java +++ b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/navigation/ControlPanel.java @@ -15,8 +15,6 @@ import java.awt.geom.Point2D; import java.util.Objects; -// TODO: add tooltips for the buttons! - public class ControlPanel extends Panel implements Subscriber { public enum Axis { diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/setup/SingleAxisPanel.java b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/setup/SingleAxisPanel.java index 18562c88..974971e8 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/setup/SingleAxisPanel.java +++ b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/setup/SingleAxisPanel.java @@ -13,7 +13,7 @@ /** * A SCAPE panel - * This is only ever build in SCAPE mode... + * This is only ever built in SCAPE mode... */ public class SingleAxisPanel extends Panel { diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/utils/WindowUtils.java b/src/main/java/org/micromanager/lightsheetmanager/gui/utils/WindowUtils.java index fa2dd994..7ee683a5 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/gui/utils/WindowUtils.java +++ b/src/main/java/org/micromanager/lightsheetmanager/gui/utils/WindowUtils.java @@ -8,7 +8,7 @@ import javax.swing.JFrame; /** - * Utilities for + * Utilities for checking, closing and listening to {@link JFrame} windows. */ public final class WindowUtils { From 989d4ad5be0f56f315423b954fca4994380a0afa Mon Sep 17 00:00:00 2001 From: Brandon Date: Mon, 26 Oct 2026 00:14:35 -0700 Subject: [PATCH 4/8] fix javadocs --- .../lightsheetmanager/model/DeviceManager.java | 8 ++++---- .../lightsheetmanager/model/devices/DeviceAdapter.java | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/micromanager/lightsheetmanager/model/DeviceManager.java b/src/main/java/org/micromanager/lightsheetmanager/model/DeviceManager.java index 7b55b372..41c47249 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/model/DeviceManager.java +++ b/src/main/java/org/micromanager/lightsheetmanager/model/DeviceManager.java @@ -457,7 +457,7 @@ public String[] getLoadedDevices() { /** * Returns true if the hardware configuration has the LightSheetManager device adapter. The user can * change the device name of the adapter, but not the device library so that's what we detect. Also, - * the name of the device adapter is cached for later usage. This also set the error text on the model + * the name of the device adapter is cached for later usage. This also sets the error text on the model * when an error is encountered, this is used in the error user interface. * * @return true if the hardware configuration has the device adapter @@ -474,7 +474,7 @@ public boolean hasDeviceAdapter() { if (count > 1) { model_.setupErrorMessage("You have multiple instances of the LightSheetManager " + "device adapter in your hardware configuration."); - break; // exit loop because this a failure condition + break; // exit loop because this is a failure condition } } } catch (Exception e) { @@ -537,7 +537,7 @@ public boolean hasStageScanning() { /** * Creates a configuration group named "System" that includes all device properties - * the Light Sheet Manager device adapter. + * of the Light Sheet Manager device adapter. */ public void createConfigGroup() { final String groupName = "System"; @@ -583,7 +583,7 @@ public void createConfigGroup() { * Returns a list of new properties added to the configuration group. * * @param groupName the group name to check - * @param configName the configuration group to check + * @param configName the configuration preset to check * @return an ArrayList of new properties */ private ArrayList updateConfig(final String groupName, final String configName) { diff --git a/src/main/java/org/micromanager/lightsheetmanager/model/devices/DeviceAdapter.java b/src/main/java/org/micromanager/lightsheetmanager/model/devices/DeviceAdapter.java index e5925f99..fc1e351d 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/model/devices/DeviceAdapter.java +++ b/src/main/java/org/micromanager/lightsheetmanager/model/devices/DeviceAdapter.java @@ -88,7 +88,7 @@ private int parsePropertyInt(final String propertyName, final int defaultValue) return Integer.parseInt(getProperty(propertyName)); } catch (NumberFormatException e) { studio_.logs().logError("Error parsing " + propertyName - + " from the device adapter, use default value " + defaultValue); + + " from the device adapter, using default value " + defaultValue); return defaultValue; } } @@ -161,7 +161,7 @@ public Map deviceTypeMap() { *

* A "Position Device" is a StageDevice, XYStageDevice, or GalvoDevice. * - * @return an array of internal devices names for all position devices + * @return an array of internal device names for all position devices */ public String[] positionDevices() { return deviceMap().entrySet().stream() From 5e38b0cd74232e236590a340fbc88a745da9aa18 Mon Sep 17 00:00:00 2001 From: Brandon Date: Mon, 26 Oct 2026 00:16:34 -0700 Subject: [PATCH 5/8] add javadoc to return --- .../model/acquisitions/LightSheetEventAdapter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/LightSheetEventAdapter.java b/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/LightSheetEventAdapter.java index d398c1f5..8bd9b69c 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/LightSheetEventAdapter.java +++ b/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/LightSheetEventAdapter.java @@ -484,7 +484,7 @@ public AcquisitionEvent next() { * describes, against the core's current XY and focus devices. * * @param positionList the list of positions to iterate over - * @return + * @return a function that makes one event per position from the event it is given */ public static Function> positions( PositionList positionList) { From 9eac8fee2beaeebaac8d6ae9890991dac651b935 Mon Sep 17 00:00:00 2001 From: Brandon Date: Mon, 26 Oct 2026 00:19:10 -0700 Subject: [PATCH 6/8] remove unused and commented out code from the device manager --- .../lightsheetmanager/model/DeviceManager.java | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/src/main/java/org/micromanager/lightsheetmanager/model/DeviceManager.java b/src/main/java/org/micromanager/lightsheetmanager/model/DeviceManager.java index 41c47249..25b8d44d 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/model/DeviceManager.java +++ b/src/main/java/org/micromanager/lightsheetmanager/model/DeviceManager.java @@ -195,12 +195,7 @@ public void setup() { createCameraDevice(propertyName, deviceName, CameraLibrary.fromString(deviceLibrary)); } - //deviceMap_.put(propertyName, ""); } - //System.out.println("----------------"); - - // we don't need this array anymore - //devicesAdded_.clear(); studio_.logs().logMessage("DeviceManager: [End Setup]"); } @@ -242,19 +237,6 @@ private void createCameraDevice(final String propertyName, final String deviceNa } } - private void createShutterDevice() { - - } - - private void createXYStageDevice() { - - } - - // Note: clients should use var when we support Java 11 -// public DeviceBase getDevice(final String deviceName) { -// return deviceMap_.get(deviceName); -// } - // TODO: consider using Optional to improve the API /** * Returns the device given by {@code deviceName} as type {@code T}, From 5032da605467074c4ba2ec43cf607bac821c41ca Mon Sep 17 00:00:00 2001 From: Brandon Date: Mon, 26 Oct 2026 00:21:24 -0700 Subject: [PATCH 7/8] remove the debug prints from the channel table --- .../lightsheetmanager/gui/tabs/channels/ChannelTable.java | 3 --- .../gui/tabs/channels/ChannelTablePanel.java | 3 --- .../lightsheetmanager/model/channels/ChannelTableData.java | 7 ------- 3 files changed, 13 deletions(-) diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/channels/ChannelTable.java b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/channels/ChannelTable.java index 0e9be2c4..2d47cdb6 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/channels/ChannelTable.java +++ b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/channels/ChannelTable.java @@ -132,9 +132,6 @@ public String[] getChannelGroups() { if (model_.studio().core().getAvailableConfigs(group).size() > 1) { groups.add(group); } -// StrVector st = model_.studio().core().getAvailableConfigGroups(); -// for (String s : st) -// System.out.println(s); } return groups.toArray(String[]::new); } diff --git a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/channels/ChannelTablePanel.java b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/channels/ChannelTablePanel.java index 91b41979..ec5a9c85 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/channels/ChannelTablePanel.java +++ b/src/main/java/org/micromanager/lightsheetmanager/gui/tabs/channels/ChannelTablePanel.java @@ -115,8 +115,6 @@ private void createEventHandlers() { final ChannelSpec[] channels = table_.getData().getChannels(); model_.acquisitions().settingsBuilder().channelBuilder().data(channels); model_.acquisitions().updateDurationLabels(); - //System.out.println("add channel"); - //table_.getData().printChannelData(); }); // remove channel @@ -127,7 +125,6 @@ private void createEventHandlers() { final ChannelSpec[] channels = table_.getData().getChannels(); model_.acquisitions().settingsBuilder().channelBuilder().data(channels); model_.acquisitions().updateDurationLabels(); - //System.out.println("remove row index: " + row); } }); diff --git a/src/main/java/org/micromanager/lightsheetmanager/model/channels/ChannelTableData.java b/src/main/java/org/micromanager/lightsheetmanager/model/channels/ChannelTableData.java index ad62cbab..a367a6e4 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/model/channels/ChannelTableData.java +++ b/src/main/java/org/micromanager/lightsheetmanager/model/channels/ChannelTableData.java @@ -83,11 +83,4 @@ public double getChannelOffset(final String channelName) { } return 0.0; } - - public void printChannelData() { - System.out.println("[ChannelTableData]"); - for (ChannelSpec channel : channels_) { - System.out.println(channel); - } - } } From 914cdfe5080a0677242d0843d8bd8a6abe6e983a Mon Sep 17 00:00:00 2001 From: Brandon Date: Mon, 26 Oct 2026 00:26:49 -0700 Subject: [PATCH 8/8] remove the commented out testing code from the scape engine --- .../acquisitions/AcquisitionEngineScape.java | 30 ------------------- 1 file changed, 30 deletions(-) diff --git a/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngineScape.java b/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngineScape.java index 5ae67f4e..0995f69c 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngineScape.java +++ b/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngineScape.java @@ -306,36 +306,6 @@ boolean run() { } } - - // --- testing code below --- -// StrVector deviceNames = core_.getLoadedDevices(); -// for (String deviceName : deviceNames) { -// System.out.println("deviceName: " + deviceName); -// StrVector propertyNames; -// try { -// propertyNames = core_.getDevicePropertyNames(deviceName); -// } catch (Exception e) { -// propertyNames = null; -// } -// -// Gson gsonObj = new Gson(); -// HashMap deviceProps = new HashMap<>(); -// for (String propName : propertyNames) { -// String propValue; -// try { -// propValue = core_.getProperty(deviceName, propName); -// } catch (Exception e) { -// propValue = ""; -// System.out.println("failed!"); -// } -// deviceProps.put(propName, propValue); -// //System.out.println(propName); -// } -// -// String jsonStr = gsonObj.toJson(deviceProps); -// System.out.println(jsonStr); -// } - updateSettings(); // The run snapshot: everything below reads this, never acqSettings_, so an edit made while