Asynchronous device abstraction framework, building on Ophyd.
PyPI | pip install ophyd-async |
Source code | https://github.com/bluesky/ophyd-async |
Documentation | https://blueskyproject.io/ophyd-async |
Python library for asynchronously interfacing with hardware, intended to be used as an abstraction layer that enables experiment orchestration and data acquisition code to operate above the specifics of particular devices and control systems.
Both ophyd and ophyd-async are typically used with the Bluesky Run Engine for experiment orchestration and data acquisition. However, these libraries are able to be used in a stand-alone fashion. For an example of how a facility defines and uses ophyd-async devices, see dls-dodal, which is currently using a mixture of ophyd and ophyd-async devices.
While EPICS is the most common control system layer that ophyd-async can interface with, other control systems like Tango are used by some facilities also. In addition to the abstractions provided by ophyd, ophyd-async allows:
- Asynchronous signal access, opening the possibility for hardware-triggered scanning (also known as fly-scanning)
- Simpler instantiation of devices (groupings of signals) with less reliance upon complex class hierarchies
NOTE: ophyd-async is included on a provisional basis until the v1.0 release.
See the tutorials for usage examples.
See https://blueskyproject.io/ophyd-async for more detailed documentation.