diff --git a/src/main/java/org/micromanager/lightsheetmanager/LightSheetManagerPlugin.java b/src/main/java/org/micromanager/lightsheetmanager/LightSheetManagerPlugin.java index 2e97db16..e918010a 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/LightSheetManagerPlugin.java +++ b/src/main/java/org/micromanager/lightsheetmanager/LightSheetManagerPlugin.java @@ -15,7 +15,7 @@ public class LightSheetManagerPlugin implements MenuPlugin, SciJavaPlugin { public static final String copyright = "Applied Scientific Instrumentation (ASI), 2022-2026"; public static final String description = "A plugin to control various types of light sheet microscopes."; public static final String menuName = "Light Sheet Manager"; - public static final String version = "0.7.8"; + public static final String version = "0.8.0"; private Studio studio_; diff --git a/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngine.java b/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngine.java index ead6517f..4f83970e 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngine.java +++ b/src/main/java/org/micromanager/lightsheetmanager/model/acquisitions/AcquisitionEngine.java @@ -534,10 +534,20 @@ public void setPause(boolean b) { @Override public boolean abortRequest() { - if (currentAcquisition_ != null) { - currentAcquisition_.abort(); + // read once: the acquisition thread clears this field as soon as finish() returns + final Acquisition acq = currentAcquisition_; + if (acq == null) { + return true; // nothing is running, so there is nothing to protect } - return true; + // always refuse while a run is live: Micro-Manager vetoes the close, and that veto is what + // keeps it from racing the abort into finish(), whose save closes the same datastore from + // the acquisition thread. answering yes only aborts, so the close succeeds on the next + // attempt. the display's abort button also lands here and ignores the result. + if (model_.logging().confirmOrDefault("Abort Acquisition", + "Abort the current acquisition task?", false)) { + acq.abort(); + } + return false; } @Override diff --git a/src/main/java/org/micromanager/lightsheetmanager/model/devices/vendor/ASIPLogic.java b/src/main/java/org/micromanager/lightsheetmanager/model/devices/vendor/ASIPLogic.java index 39607d53..cef28fd8 100644 --- a/src/main/java/org/micromanager/lightsheetmanager/model/devices/vendor/ASIPLogic.java +++ b/src/main/java/org/micromanager/lightsheetmanager/model/devices/vendor/ASIPLogic.java @@ -17,7 +17,7 @@ public class ASIPLogic extends ASITigerBase { public static final int addrZero = 0; - public static final int addrEdge = 0; + public static final int addrEdge = 128; public static final int addrInvert = 64; // front panel BNC 1-8