Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding autofocus, general improvements #488

Merged

Conversation

martinzak-zaber
Copy link
Contributor

We are adding autofocus support for our Nucleus™️ microscope.

There are also a few general improvements:

  • Support for network sharing
  • Resetting connection on port change
  • Adding override to all the API methods

We are also updating to a newer version of our library - 3.4.4. Can we please have SVN updated with our binaries? Please note that the tag.gz contains soft-links. Archive: https://drive.google.com/file/d/1IisP6pyjYEEDqVsKLyruIEPc5TLhDuW7/view?usp=sharing

Note: We have tried upgrading our module to C++17 but could not get it working without removing dynamic exceptions from some of the base classes.

Thank you. Please let us know if you have any concerns or questions.

martinzak-zaber and others added 2 commits August 30, 2024 10:38
Previous was Zaber Motion Library 3.4.3; new is 3.4.4.
@marktsuchida
Copy link
Member

Thanks, @martinzak-zaber!

  • I added the new ZML as 3rdpartypublic/Zaber/zaber-motion-3.4.4, keeping the previous zaber-motion (3.4.3). (We do this so that the 3rdpartypublic revision doesn't have to be in exact lock step with this repo.)

  • I pushed a commit to your branch (this PR) that updates the build files accordingly.

  • Regarding C++17 (for future reference), we have a precedent on Windows (PyDevice) that currently builds with C++17. On Linux (Automake), I think the following (in Zaber/Makefile.am) should work and suppress the warnings about the dynamic exception specifications (but did you find otherwise?).

AM_CXXFLAGS = $(MMDEVAPI_CXXFLAGS) $(ZML_CPPFLAGS) -std=c++17 -Wno-dynamic-exception-spec

@marktsuchida marktsuchida merged commit 138684c into micro-manager:main Sep 4, 2024
1 check passed
@martinzak-zaber martinzak-zaber deleted the zaber/autofocus-simple branch September 4, 2024 20:48
@martinzak-zaber
Copy link
Contributor Author

@marktsuchida We have been able to build on Windows as well. On Linux we got hard error that dynamic exceptions are not supported in c++17 along with "-Wno-dynamic-exception-spec" being an unknown option. Maybe we had a wrong GCC version but I could not find any documentation on "no-dynamic-exception-spec" anyway so I gave up.

@marktsuchida
Copy link
Member

@martinzak-zaber You're right, sorry about that. I must have misremembered the situation back when I tried that flag; it turns out that only Clang has -W[no-]dynamic-exception-spec.

#489 should fix this so that you just need -std=c++17 in AM_CXXFLAGS next time you update.

@martinzak-zaber
Copy link
Contributor Author

@martinzak-zaber You're right, sorry about that. I must have misremembered the situation back when I tried that flag; it turns out that only Clang has -W[no-]dynamic-exception-spec.

#489 should fix this so that you just need -std=c++17 in AM_CXXFLAGS next time you update.

Much appreciated. Thank you!

@nicost
Copy link
Member

nicost commented Nov 16, 2024

@martinzak-zaber This code currently does not build on LInux. Shall I just completely disable the Zaber build on Linux (which would be a shame)? We do not have the 3.4.4 motion library linux .so files in our 3rdparty repo. I can not check the .tar.gz you posted earlier since it disappeared.

Let me know how to proceed. For the time being, I will disable the Zaber build on linux (as it does not work, and blocks the build of everything else).

@marktsuchida
Copy link
Member

marktsuchida commented Nov 19, 2024

@nicost The Zaber headers are in 3rdpartypublic and the configure.ac should disable the device adapter when they are not present (and the correct version). If this is not the case, can you create a new issue with details? I'll look into a fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants