This release contains a lot of major changes and updates to the repository:
Book-keeping changes
PRs: 84, 82, 62, 34 and 21
The README is now ophyd-async specific, with working links and icons. Pyproject.toml now looks at latest version of bluesky as released on pypi, as well as the latest version of p4p now that the pre-released version 4.1.11a2 has been yanked. This version increase was necessary to ensure enums would be correctly set in ophyd-async devices (see https://github.com/mdavidsaver/p4p/issues/123 for details).
Bug Fixes
- Flyer trigger deadtime logic incorrectly evaluated the detector deadtime vs. trigger deadtime 46
- Fix failing docs build 38 due to updated sphinx packages
- Pilatus controller needs it's NumImages pv to be set to a high value to understand it should take images, effectively, forever (i.e. as long as it's getting triggers from a flyer), which is different to a standard areadetector where setting it to 0 works. Therefore, two PRs emerged to try and fix this problem; 59 which attempted to set the NumImages to the maximal value as dictated by EPICs (i.e because this is a uint32) and 67 when it was found setting it to this value didn't provide the intended results. There is an issue about this as well, as the pilatus definition should work cross-facility: https://github.com/bluesky/ophyd-async/issues/83
- The HDFWriter set data to be written in 'entry/data' where it needed to set it in 'entry/data/data'. Follow up issue here: https://github.com/bluesky/ophyd-async/issues/73
Design Changes
- Change SignalX execute() to trigger() instead 56
- Flyer now waits for all stream resources to be emitted before yielding stream datums in collect_asset_docs 71
- Removed the stall timeout in _HDFFile for the HDFWriter, as this timeout was actually activated in between datums being produced (74). This means on a flyscan, it can be activated during normal operation, as the timeout was set to 2 minutes and time between data collection can exceed that. Issue link: https://github.com/bluesky/ophyd-async/issues/76
New Features
- Serialisation/Deserialisation of devices into yaml files
Introduced by 36, the state a devices can now be saved into a yaml file by parsing through its signals (only serialising those which are read/writable. Representers were added in 66 to allow CA signals to be serialised also, however this has presented its own issue regarding where this logic lives: https://github.com/bluesky/ophyd-async/issues/75. Some minor fixes to the array representer were added in #60
- The state of a detector is now being checked when it's being armed, to ensure it's not unreasonable (50). This is now configurable for each DetectorController (68) - this means if a detector is in a bad state we will get an error message indicating we should check the hardware. In addition, the former PR added a timeout for arming a detector, such that if (for example) something isn't connected, arming a detector wouldn't hang forever until the process was killed.
- Minor improvements to PV's included in areadetector writers, like NDFileHDF and NDArrayBase (70, 69, 79)
New Contributors
* Bilchreis made their first contribution in https://github.com/bluesky/ophyd-async/pull/56
* jsouter made their first contribution in https://github.com/bluesky/ophyd-async/pull/60
* callumforrester made their first contribution in https://github.com/bluesky/ophyd-async/pull/50
* joeshannon made their first contribution in https://github.com/bluesky/ophyd-async/pull/65
* abbiemery made their first contribution in https://github.com/bluesky/ophyd-async/pull/66
**Full Changelog**: https://github.com/bluesky/ophyd-async/compare/v0.1.0...v0.2.0