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

Define base classed which device classes must inherit #136

Open
ieivanov opened this issue Dec 7, 2022 · 3 comments
Open

Define base classed which device classes must inherit #136

ieivanov opened this issue Dec 7, 2022 · 3 comments

Comments

@ieivanov
Copy link
Collaborator

ieivanov commented Dec 7, 2022

In order to reach the goal of unified interface for a number of devices, I think coPylot would need to define a set of base classes (e.g. camera, stage, etc.) with core methods and properties which specific device classes (e.g. Orca, ASI_state) would have to inherit and implement, in a similar way as done in MicroManager (MMDevice.cpp and MMDevice.h).

A good starting set of device would be

  • camera
  • stage (can support single (e.g. Z) or number of axes (e.g. XY))
  • shutter - provides open and close methods
  • state_device - device which can go between multiple states, e.g. a filter wheel or a light source with multiple wavelengths
  • io_device - e.g. NI DAC or Arduino
  • hub - e.g. ASI Tiger controller, which manages multiple devices
  • galvo - not sure if this will be very different from stage
@AhmetCanSolak
Copy link
Contributor

Hi @ieivanov , we want to implement such classes as abstract base classes. We need to get one example from each device type and I think we will populate all these quite soon. Let's discuss on specifics in next meeting.

@ieivanov
Copy link
Collaborator Author

The shutter device should probably be named light_source and further provide intensity property. In that case, mechanical shutters will be constrained to 100% intensity

@ieivanov
Copy link
Collaborator Author

The stage base class should allow the user to build a multidimensional (e.g. XY) stage out of linear stages

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

No branches or pull requests

2 participants