![]() |
BioImager
3.9.1
A .NET microscopy imaging library. Supports various microscopes by using imported libraries & GUI automation. Supported libraries include PriorĀ® & ZeissĀ® & all devices supported by Micromanager 2.0 and python-microscope.
|
Public Member Functions | |
| None | __init__ (self, str port, typing.Mapping[int, ZaberDeviceType] address2type, **kwargs) |
| typing.Dict[str, microscope.abc.Device] | devices (self) |
| typing.Mapping[str, Device] | devices (self) |
Public Member Functions inherited from microscope.abc.Device | |
| None | __init__ (self) |
| None | __del__ (self) |
| bool | get_is_enabled (self) |
| None | disable (self) |
| None | enable (self) |
| None | initialize (self) |
| None | shutdown (self) |
| None | add_setting (self, name, dtype, get_func, set_func, values, typing.Optional[typing.Callable[[], bool]] readonly=None) |
| def | get_setting (self, str name) |
| def | get_all_settings (self) |
| None | set_setting (self, str name, value) |
| def | describe_setting (self, str name) |
| def | describe_settings (self) |
| def | update_settings (self, incoming, bool init=False) |
Additional Inherited Members | |
Public Attributes inherited from microscope.abc.Device | |
| enabled | |
A daisy chain of Zaber devices.
Args:
port: the port name to connect to. For example, `COM1`,
`/dev/ttyUSB0`, or `/dev/cuad1`.
address2type: a map of device addresses to the corresponding
:class:`ZaberDeviceType`.
Zaber devices can be daisy-chained, i.e., a set of Zaber devices
can be connected in a sequence so that each device is only wired
to the previous and next device in the sequence, and only the
first device in the sequence is connected to the computer. Even
if there is only Zaber device, this is modelled as a one element
daisy-chain. If there are multiple devices, all connected
directly to the computer, i.e., not chained, then each device is
its own one-element daisy-chain.
.. code-block:: python
from microscope.controllers.zaber import ZaberDaisyChain, ZaberDeviceType
zaber = ZaberDaisyChain("/dev/ttyUSB0",
{2: ZaberDeviceType.STAGE,
3: ZaberDeviceType.LED_CONTROLLER,
4: ZaberDeviceType.FILTER_WHEEL})
# Device names are strings, not int.
filterwheel = zaber.devices['4']
# LEDs are not devices of the zaber daisy chain, they are
# devices of the LED controller.
led_controller = zaber.devices['3']
led1 = led_controller.devices['LED1']
# Stage axis names are the string of the axis number.
xy_stage = zaber.devices['2']
motor1 = xy_stage.axes['1']
Each device on a chain is identified by a device address which is
an integer between 1 and 99. By default, the addresses start at 1
and are sorted by distance to the computer, but this can be
changed.
For an LED controller device, the names of its devices are "LED1",
"LED2", etc, the same as the labels on the LED controller itself.
Because there is no method to correctly guess a device type, a map
of device addresses to device types is required.
.. note::
Zaber devices need to be homed before they can be moved. A
stage will be homed during `enable` but a filter wheel will be
homed during the object construction.
| None microscope.controllers.zaber.ZaberDaisyChain.__init__ | ( | self, | |
| str | port, | ||
| typing.Mapping[int, ZaberDeviceType] | address2type, | ||
| ** | kwargs | ||
| ) |
Reimplemented from microscope.abc.Device.
Definition at line 588 of file zaber.py.
| typing.Dict[str, microscope.abc.Device] microscope.controllers.zaber.ZaberDaisyChain.devices | ( | self | ) |
Map of names to the controlled devices.
Reimplemented from microscope.abc.Controller.
Definition at line 605 of file zaber.py.
References microscope.device_server.DeviceServer._devices, and microscope.simulators.SimulatedController._devices.
Referenced by microscope.abc.Controller.devices().