From 8c48d2222aab71fca40ca5ff8bd6bd864ab8c2e1 Mon Sep 17 00:00:00 2001 From: Henry Pinkard <7969470+henrypinkard@users.noreply.github.com> Date: Fri, 28 Feb 2025 11:33:10 -0800 Subject: [PATCH] add system state cache to summary metadata --- pom.xml | 2 +- .../acqj/main/AcqEngMetadata.java | 24 ++++++++++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 4abb6e8..e71115e 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 org.micro-manager.acqengj AcqEngJ - 0.38.2 + 0.39.0 jar AcqEngJ Java-based Acquisition engine for Micro-Manager diff --git a/src/main/java/org/micromanager/acqj/main/AcqEngMetadata.java b/src/main/java/org/micromanager/acqj/main/AcqEngMetadata.java index 35a5887..afa44d1 100644 --- a/src/main/java/org/micromanager/acqj/main/AcqEngMetadata.java +++ b/src/main/java/org/micromanager/acqj/main/AcqEngMetadata.java @@ -26,6 +26,8 @@ import java.util.Iterator; import java.util.TreeSet; +import mmcorej.Configuration; +import mmcorej.PropertySetting; import mmcorej.org.json.JSONArray; import mmcorej.org.json.JSONException; import mmcorej.org.json.JSONObject; @@ -85,6 +87,8 @@ public class AcqEngMetadata { public static final String Z_AXIS = "z"; public static final String POSITION_AXIS = "position"; public static final String TAGS = "tags"; + public static final String SYSTEM_STATE_CACHE = "SystemStateCache"; + private static final String ACQUISITION_EVENT = "Event"; @@ -190,11 +194,10 @@ public static JSONObject makeSummaryMD(AcquisitionAPI acq) { throw new RuntimeException("Camera byte depth cannot be zero"); } AcqEngMetadata.setPixelTypeFromByteDepth(summary, byteDepth); -// AcqEngMetadata.setBitDepth(summary, (int) Engine.getCore().getImageBitDepth()); -// AcqEngMetadata.setWidth(summary, (int) Engine.getCore().getImageWidth()); -// AcqEngMetadata.setHeight(summary, (int) Engine.getCore().getImageHeight()); AcqEngMetadata.setPixelSizeUm(summary, Engine.getCore().getPixelSizeUm()); + + /////// Info about core devices //////// try { AcqEngMetadata.setCoreXY(summary, Engine.getCore().getXYStageDevice()); @@ -217,6 +220,21 @@ public static JSONObject makeSummaryMD(AcquisitionAPI acq) { AcqEngMetadata.setAffineTransformString(summary, "Undefined"); } + // Add system state cache + try { + Configuration config = Engine.getCore().getSystemStateCache(); + JSONObject cache = new JSONObject(); + for (int i = 0; i < config.size(); ++i) { + PropertySetting setting = config.getSetting(i); + String key = setting.getDeviceLabel() + "-" + setting.getPropertyName(); + String value = setting.getPropertyValue(); + cache.put(key, value); + } + summary.put(SYSTEM_STATE_CACHE, cache); + } catch (Exception e) { + throw new RuntimeException("problem getting system state cache"); + } + return summary; }