henrypinkard / Pygellan

[DEPREACATED] Python interface for data-driven microscopy with Micro-manager/Micro-Magellan
BSD 3-Clause "New" or "Revised" License
14 stars 3 forks source link

Can't connect to Magellan to use acquisition engine #32

Open Dino-Fossil opened 4 years ago

Dino-Fossil commented 4 years ago

Hello,

I was recently pointed towards Pygellan as some way to control acquisitions with Micro Manager externally by Python. After installing Pygellan and starting Micro Manager (2.0y nightly), I first tried some simple things as outlined in the examples - setting some acquisition parameters, etc., which worked fine. However, when I try to use the Micro-magellan acquisitions, something goes wrong. Using magellan = bridge.get_magellan() after

from pygellan.acquire import PygellanBridge bridge = PygellanBridge()

will result in an error:

Exception: Couldnt find class with nameorg.micromanager.magellan.api.MagellanAPI

What's strange is, I could have sworn it worked the first time I tried one of the example scripts, but hung itself up at the command acq.start() Since then, I always get the above error message. I have since tried reinstalling pygellan and Micro-Manager, but the error persists... Am I missing something?

henrypinkard commented 4 years ago

Hi @Dino-Fossil, I'm currently in the midst of major refactor of all of this code in order to add a lot of features, and it sounds like this broke along the way. I should have a chance to get it working again in the next week or so. Will let you know

Dino-Fossil commented 4 years ago

Thanks, good to know. Will check in on that again in a week or so, then.

One more question - are all the functions available from core.XX implemented or are some of them hold-outs? E.g. there's core.start_sequence_acquisition(), which seems to expect a float as input, while startSequenceAcquisition from CMMCore apparently expects different input - or am I missunderstanding this and the two aren't actually connected?

henrypinkard commented 4 years ago

All the functions should be implemented now (in an older version it was only some). You might not see all of them on autocomplete because it only shows the one with the longest number of arguments, but if you send in arguments that can be translated into a matching version in Java, it should work (if that's not the case, it's a bug)

henrypinkard commented 4 years ago

The refactor is finished. Pygellan is going to be deprecated and all of the functionality and more will be in a new repo, pycromanager.

Check out these two sections in the documentation as the API has changed slightly: https://pycro-manager.readthedocs.io/en/latest/acq_intro.html#micro-magellan-acquisitions https://pycro-manager.readthedocs.io/en/latest/magellan_api.html

Though this is all finished, it hasn't yet gone into micro-manager (and thus won't be in nightly builds). The pull request for adding it is here. After that goes through it should all be available in the next nightly build.

If you run into future bugs, you can make issues on this repository: https://github.com/henrypinkard/pycro-manager, or even better, micro-manager/pycro-manager once it is created (keep an eye on the pull request for updates on that)

Dino-Fossil commented 4 years ago

Thank you for the info! I was busy with some other projects in the last days, but will check it out!