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;
}