Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Candidate devices for ophyd-async support #1012

Open
canismarko opened this issue Aug 22, 2024 · 6 comments
Open

Candidate devices for ophyd-async support #1012

canismarko opened this issue Aug 22, 2024 · 6 comments
Labels
hoist add code from a different project
Milestone

Comments

@canismarko
Copy link
Collaborator

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.

@canismarko canismarko added the hoist add code from a different project label Aug 22, 2024
@canismarko
Copy link
Collaborator Author

canismarko commented Aug 22, 2024

A Struck SIS3820 scaler

This one is specifically configured for the spectroscopy group:

https://github.com/spc-group/haven/blob/e5cee2db97f32f9063166310b5269eb4684f5a0d/src/haven/instrument/scaler.py#L142

Before submitting the PR, I would need to factor out the bits that are not shared across APS.

@canismarko
Copy link
Collaborator Author

synApps Transform Record

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

@canismarko
Copy link
Collaborator Author

SRS-570 PreAmplifier

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

@canismarko
Copy link
Collaborator Author

LabJack DAQ

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

@canismarko
Copy link
Collaborator Author

@prjemian prjemian added this to the 1.7.1 milestone Sep 21, 2024
@canismarko
Copy link
Collaborator Author

Planar Undulator

https://github.com/spc-group/haven/blob/1bb8b0755c5aa8ebaf2b5bb0c9c26d010d176f1c/src/haven/devices/xray_source.py#L54

This one depends on some other support that would need to be hoisted or replaced:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hoist add code from a different project
Projects
None yet
Development

No branches or pull requests

2 participants