What does a DeviceAdapter represent in a system?


We are considering using micro-manager to control our camera system. To that end, I am learning how to write a device adapter by following the instructions in the wiki, as well as looking at existing adapters. I can’t seem to figure out what I should use as the device’s name (the first argument in RegisterDevice).

Should each device have a unique name, or should all devices of a same model share the same name? For example, if our system has 2 XYZ cameras plugged in, should each one be registered with a unique name, as it is done in PointGrey (model + serial number)? Or should there only be 1 device per model, like in RaptorEPIX?

Should a device only be registered if it is plugged in, or does that not matter? RaptorEPIX seems to register all their devices regardless of what’s actually there, while PointGrey only registers cameras that are plugged in. Video4Linux2 registers only 1 device, even though there could be different models connected.

Basically, what does a DeviceAdapter represent in a system?


I’ve found my answer while reading (albeit a bit more carefully) the wiki: https://micro-manager.org/wiki/Building_Micro-Manager_Device_Adapters#Instance_management

In my case, multiple independent devices would make the most sense, being that the devices are all cameras controlled by the same SDK. Micro-manager could differentiate them using their serial numbers.

1 Like