Open canismarko opened 3 weeks ago
This one is specifically configured for the spectroscopy group:
Before submitting the PR, I would need to factor out the bits that are not shared across APS.
This is a direct translation from the vanilla Ophyd transform record in apstools.
https://github.com/spc-group/haven/blob/async_ion_chamber/src/haven/instrument/transform.py
More or less the same as the vanilla ophyd version in apstools except that the gain
signal is properly gain (output/input) instead of its inverse, and there's also a gain_db
signal that reports the gain in decibels.
https://github.com/spc-group/haven/blob/async_ion_chamber/src/haven/instrument/srs570.py
This one depends on the DerivedSignalBackend
that I also added: https://github.com/spc-group/haven/blob/2489f4d0b59233bb38b9dd07551137bbb59d76de/src/haven/instrument/signal.py#L16
Very similar to the current apstools support. Since ophyd-async is more flexible about device definitions, in this version one can initalize a labjack device directly:
device = LabJackBase("255idc:LT_T7_1:", name="labjack", analog_inputs=range(12), digital_ios=range(24))
The previous subclasses (e.g. LabJackT4
) still exist and are just wrappers around the base class with default values for the analog_inputs and digital_ios parameters.
Code: https://github.com/spc-group/haven/blob/async_ion_chamber/src/haven/instrument/labjack.py Tests: https://github.com/spc-group/haven/blob/async_ion_chamber/src/haven/tests/test_labjack.py
https://github.com/spc-group/haven/blob/async-mirrors/src/haven/instrument/delay.py
Ophyd-async is expected to hit release 1.0 in the next six months or so.
APStools does not have support for ophyd-async yet.
This issue is meant to hold candidate devices that could be submitted as PRs to apstools once the requisite support is available. For now, it's just a list for keeping track of options.