Plugin to help with multi-D acquisition on a manual microscope (MM1.4)

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Plugin to help with multi-D acquisition on a manual microscope (MM1.4)

Egor Zindy
Hello,

tldr: Relatively stable and robust java source code for my plugin
here: https://www.dropbox.com/s/3sqs455dkz0er3s/ManualAcquisition.zip
(no need to fill in the form if you don't have a dropbox account. Just
close it to download).

This is something I wrote to cover the most basic setups:
* Manual microscope with filter cubes and light source (e.g. Olympus BX53)
* Any camera controlled by Micro-Manager (e.g. a Zeiss Axiocam)

A nice way of solving this is to attach a runnable to the acquisition
engine, which pops-up a dialog prompting the user when to change
filters.
Setting up everything else (number of timepoints, how and where to
save the images, active channels and exposure times...) is handled in
the MDA dialog the usual way and is familiar to the user.

Nico has already written a script which does exactly that, it's
manualAcq2.bsh in the scripts folder.

However, his solution requires people to load and launch the script
via the script panel, which isn't difficult but requires an additional
step.

Plugins on the other hand have their own menu in MM and can be loaded
at startup from mmstartup.bsh. This is how I load mine:

import org.micromanager.manualacquisition.ManualAcquisition;
ManualAcquisition plugin = new ManualAcquisition();
plugin.setApp(gui);

But! Java is not a language I'm familiar with, and writing one plugin
using the examples provided doesn't make me an expert, so any feedback
welcome :-)

Things I struggled with: querying the state of the acquisition engine
from the runnable. For example, this issue with
getCurrentFrameCount():
http://micro-manager.3463995.n2.nabble.com/MDA-AcquisitionWrapperEngine-How-to-get-current-frame-count-td7585185.html

Also things like: Is this the first time the runnable was called from
the engine? How many frames are to be acquired? How many channels /
how many active channels are there?

And even if I did manage to solve some of these issues, how do I
attach a runnable that will run on the last frame / last active
channel (so I can close the Live window)?

Anyway, I just thought this was a nice way to plug this missing
feature in MM, even if the implementation could certainly be
improved...

Cheers,
Egor


_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general