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

Make Undulator gap writeable - i18 #706

Open
stan-dot opened this issue Jul 25, 2024 · 8 comments · May be fixed by #721
Open

Make Undulator gap writeable - i18 #706

stan-dot opened this issue Jul 25, 2024 · 8 comments · May be fixed by #721
Assignees
Labels

Comments

@stan-dot
Copy link
Contributor

stan-dot commented Jul 25, 2024

This is for beamline alignment lookup tables at i18
DiamondLightSource/i18-bluesky#12

At the moment it only implements the StandardReadable interface

Acceptance Criteria

  • can be run in a plan
@stan-dot stan-dot added the i18 label Jul 25, 2024
@stan-dot
Copy link
Contributor Author

i03, i04 and i22 +p38 use this device.
@DominicOram do you have any tips/requirements for this issue?

@stan-dot stan-dot self-assigned this Jul 25, 2024
@DominicOram
Copy link
Contributor

We already do set it in https://github.com/DiamondLightSource/dodal/blob/main/src/dodal/devices/undulator_dcm.py. We just wrap it in a composite device with the DCM as we want to always move both at the same time. Presumably you want to do that too? Or are you just moving the undulator? Does this just boil down to adding a set method that calls gap_motor.set?

@stan-dot
Copy link
Contributor Author

I am not sure, will investigate with @iain-hall

@stan-dot
Copy link
Contributor Author

yes, ordinarily for scans they move syncrhonously, but this use case is for adjusting them, setting up the desired gap between the elements.

in this instance, we do need to move those independently from one another, therefore we need to have a movable undulator.

Either we make an update to the existing Undulator. This sounds more DRY but might disrupt existing workflows.
An alternative would be to make a new, lookup-tables specific undulator, used only for those times and discarded afterwards. This could be beamline specific or not.

The latter should be fairly simple, as in GDA it's just a simple EpicsMotor at the moment.

@stan-dot
Copy link
Contributor Author

will also need a new device that uses redis-cached lookup tables instead of the filesystem text files.

@DominicOram
Copy link
Contributor

An alternative would be to make a new, lookup-tables specific undulator, used only for those times and discarded afterwards. This could be beamline specific or not.

The undulator_dcm I linked already does this. You can just move that behaviour into the undulator instead and we can use it in both cases.

will also need a new device that uses redis-cached lookup tables instead of the filesystem text files.

Do you have an existing redis-cache for this? Have you discussed with the scientists how they want to update it?

@stan-dot
Copy link
Contributor Author

this will be exposed as a task in the i18_bluesky, and would be updated from there. perhaps another endpoint would display what the current values are? redis-cache needs deployment from scratch.

Ok thanks, I'll move that behavior into the undulator (make it have the motor)

@stan-dot
Copy link
Contributor Author

redis deployment is tracked here DiamondLightSource/i18-bluesky#4 (comment)

@stan-dot stan-dot linked a pull request Jul 31, 2024 that will close this issue
4 tasks
@stan-dot stan-dot linked a pull request Jul 31, 2024 that will close this issue
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants