micro-manager / futureMMCore

Place to discuss the future design of a universal microscope hardware interface
Creative Commons Zero v1.0 Universal
16 stars 1 forks source link

Cleaning up the Camera API #16

Open nanthony21 opened 3 years ago

nanthony21 commented 3 years ago

@henrypinkard: There's a few overlapping things in the core that would need to get sorted out here. Multi-channel cameras, multi-component cameras (rgb falls here i think), and multi-camera device adapter. The current calls for these are pretty confusing

@nicost: Agreed! But it does make sense that the same camera can operate in monochrome and RGB modes.

henrypinkard commented 3 years ago

Here is an old forum post that discusses the challenges of a scanning confocal setup: http://micro-manager.3463995.n2.nabble.com/scanning-confocal-microscopes-td7578637.html

nanthony21 commented 3 years ago

I recently noticed that in order for a camera device adapter to work in MMStudio in addition to implementing the official API it must have a "Binning" property which can be used to determine what the available binning options are. There may be other semi-required properties that can help inform how the API's should be updated. Ideally no property should be required for operation with the GUI.

nanthony21 commented 3 years ago

The getExposure method is declared as const which makes it so that no instance variables can be modified from within this method. Many device adapters work around this by implementing an exposure property and then having the property handler do the necessary changes to the instance variables.

We should review declarations of const methods to make sure they make sense.

jondaniels commented 3 years ago

As mentioned in the overview document a major weakness is the lack of API for controlling triggering.

Consider also API for changing readout speed and/or readout mode (e.g. lightsheet mode) and/or trigger mode (e.g. single trigger many exposures, "overlap" or "synchronous" mode, "bulb" trigger, etc.)