mirror of
https://github.com/bec-project/ophyd_devices.git
synced 2026-08-12 09:00:41 +02:00
9f617d4d1574ca8178be6398bfc118e1d3833a4d
Follow the SimWaveform practice: the AsyncSignal/AsyncMultiSignal signals push their own data through .put(..., async_update=...) and the device server publishes those BECMessageSignal puts to the async endpoint. Drop the hand-rolled DeviceMessage + connector.xadd path (the legacy 'morphing' signal, its buffer, and on_complete flushing), which did not follow ophyd_devices practices. The device is unchanged in intent: a 'monitored' device that also exposes asynchronous signals (bec_widgets issue #1185) - readback (sync), async_counts / async_spectrum / async_channels (async), progress (not a curve). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Ophyd Devices
ophyd-devices is an extension to ophyd and provides device support for devices not covered by the standard EPICS implementation in ophyd.
Installation
Use the package manager pip to install ophyd-devices.
pip install ophyd-devices
For development, clone the repository and install the package in editable mode:
git clone https://gitlab.psi.ch/bec/ophyd_devices.git
cd ophyd_devices
pip install -e .[dev]
Documentation
The documentation for the usage with BEC can be found here. More general documentation can be found here.
Contributing
Merge requests are very welcome! For major changes, please open an issue first to discuss what you would like to change. All commits should use the Angular commit scheme:
<type>(<scope>): <short summary>
│ │ │
│ │ └─⫸ Summary in present tense. Not capitalized. No period at the end.
│ │
│ └─⫸ Commit Scope: animations|bazel|benchpress|common|compiler|compiler-cli|core|
│ elements|forms|http|language-service|localize|platform-browser|
│ platform-browser-dynamic|platform-server|router|service-worker|
│ upgrade|zone.js|packaging|changelog|docs-infra|migrations|ngcc|ve|
│ devtools
│
└─⫸ Commit Type: build|ci|docs|feat|fix|perf|refactor|test
The <type> and <summary> fields are mandatory, the (<scope>) field is optional.
Type
Must be one of the following:
- build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
- ci: Changes to our CI configuration files and scripts (examples: CircleCi, SauceLabs)
- docs: Documentation only changes
- feat: A new feature
- fix: A bug fix
- perf: A code change that improves performance
- refactor: A code change that neither fixes a bug nor adds a feature
- test: Adding missing tests or correcting existing tests
Please make sure to update tests as necessary.
License
Languages
Python
100%