[OpenSPIM] MM Device adapter & Plugin update
Luke Stuyvenberg
stuyvenberg at wisc.edu
Fri Apr 4 19:14:10 CDT 2014
Hi Alexis,
On 04/02/14, Alexis Maizel wrote:
> I will have some time in the coming days to work on porting the Cobolt device adapter to a format that will ensure it can communicate with OpenSPIM. Excellent. Unfortunately, we've begun working to submit the PicardStage device adapter to Micro-Manager, which is going to take up a significant amount of my time for the next few days...
> > Alexis -- this is definitely something we should coordinate on; I feel we might be missing each other in trying to simultaneously accommodate each other. ;-) When it's convenient, feel free to contact me and the OpenSPIM list to sort this out; we can set up a long-term solution.
>
> I have bookmarked your message from last august indicating what has changed and how it impacts the communication between MM device adapters and OpenSPIM.
> If I have understood correctly, my Cobolt device adapter should work with the latest and future (?) OpenSPIM release provided it only exposes kosher MM APIs.
Hopefully this will be the case! There have been a few other changes to the code, but ideally, it will work as described. However, the true utility of the update is that it can, with a few changes to some Java code, control almost any device.
The Cobolt device adapter, in particular, should already be working. I haven't yet been able to test this, of course, but in working with Cristian to get their setup working, hopefully any major issues will present themselves.
The main problem I'm aware of presently is that the Cobolt device adapter on the OpenSPIM update site (that is, the file obtained when running the Fiji updater) may be an outdated version. OpenSPIM should be able to support the latest DLL from Micro-Manager, however, so copying the file from a fresh MM install may be a temporary workaround until I get a moment to fix this.
Thanks again for your offer to help! The biggest issue is to test the paragraph above:
- Will a fresh install of OpenSPIM, fully updated, control a Cobolt laser without trouble?
- If the DLL won't load, will the current version from Micro-Manager load?
- Once a loading DLL is found (and, for my part, uploaded to the update site), will the plugin be able to control it seamlessly?
If you can find any answers to those questions, I'd greatly appreciate it!
Thanks,
Luke
>
> The one thing, I am not 100% sure is if currently the Cobolt Device adapter complies. I attach the source code; you are the expert; could you tell me whether it is the case and if not, to what extend and let me know what kind of modifications I need to introduce.
>
> With my best regards,
>
> Alexis
>
>
> > On 28 Aug 2013, at 16:02, Luke Stuyvenberg <stuyvenberg at wisc.edu> wrote:
>
> > Sorry about the cut-off email; here is (hopefully) the message in its entirety:
> > Hi everyone,
> >
> > I've just uploaded a new version of the plugin to the Fiji update site. Some quick features:
> >
> > - Rebuilt device interactions to be less dependent on specific devices/properties/et cetera
> > - Overhauled asynchronous output to be more reliable and transparent
> > - Added some rudimentary acquisition profiling, for the curious
> >
> > As always, I do my best to make sure that the updates are free of any use-impairing bugs or issues. However, and especially with this update, this is not always possible. Therefore, if you have any project-critical imaging to do, please do not update until you have finished.
> >
> > I mention this because this plugin update completely revises the way OpenSPIM interacts with Micro-Manager devices, letting us easily add new features and supported hardware. However, this also means that, for certain features, the plugin now expects a limited subset of devices, and might cause problems with others -- in particular, anyone not using the OpenSPIM 1.0 specification on the site might run into trouble.
> >
> > On the other hand, if you don't have any project-critical imaging, I would greatly appreciate it if you could test the plugin on your setup. As I can personally only test the OpenSPIM 1.0 setup, I don't yet know if the plugin will operate seamlessly with variants on the setup. If you can, please test the new plugin and get back to me!
> >
> > The rest of this e-mail describes the pros, cons, capabilities, and limitations of the new code, and might only be of interest if the update is giving you trouble (or if you're just curious about these sorts of things. ;-) ).
> >
> > Thanks,
> > Luke Stuyvenberg
> > The plugin should still work with any hardware compatible with Micro-Manager, but it will not be able to use any features not provided by the MM API. For example, it will not be able to determine the maximum position of most stages, and will be unable to control their velocity, or the laser power of most lasers. (These will need to be controlled another way, i.e. through the device property browser in Micro-Manager.)
> >
> > What it can do: The plugin knows the attributes (minimum, maximum, and step size) of Picard stages, and can control the Z-stage's velocity. It also knows the minimum and maximum laser power of Coherent Cube laser devices, and can control that.
> >
> > What it should be able to do: Additionally, it should be able to control the laser power of Cobolt laser devices (although the range is hard-coded to 0 - 50 mW).
> >
> > I don't mention cameras because, as yet, the plugin doesn't take advantage of any camera features not available through the MM API. As a result, it should be able to use any camera MM can use without trouble.
> >
> > If your hardware is having problems with the update, feel free to e-mail the list with whatever issues you're running into. You can also add support for your device yourself: download our development environment from http://openspim.org/How_to_build_the_software -- from there, take a look at plugins/SPIMAcquisition/src/main/java/spim/setup/PicardStage.java for an example of the code the new device manager runs on. I only ask that such
> > daring individuals as do so eventually submit a pull request on github, or contact the list with their new code, so we can extend this support to everyone using the software.
>
> > On Mon, 26 Aug 2013 08:44:26 0200 Alexis Maizel wrote
> >> The next OpenSPIM update will use a different code base than the current one
> >> (1.4.x dev)? So unless I commit my update to the MM repository and get them
> >> part of the nightly build, it won't work, right?
> > Actually, what I meant was that from now on, the OpenSPIM plugin will try to
> > interact with the Cobolt device as though it were unchanged -- it will not
> > treat it as a shutter, and when altering laser power, it will attempt to set
> > the "Power" property, not "PowerSetpoint" (and so, having the property be named
> > "PowerSetpoint" even though the laser is a Cobolt will greatly confuse the
> > plugin). Essentially, the changes I'm making mean that the plugin will interact
> > with each device adapter differently.
> >
> > By all means, though, commit your changes -- adapting the plugin to changes in
> > device adapters is very little work (which is the part of the point of this
> > update), so if your changes become 'canonical', I can easily change the
> > SPIMAcquisition plugin to support them.
> >
> > I'm not planning to update the MM code base just yet -- as far as I am aware,
> > the nightly build's device adapters still work with the OpenSPIM version.
> >
> > Thanks,
> > Luke
More information about the OpenSPIM
mailing list