APS-4ID-POLAR / APS-4ID-POLAR/ipython-polar
Extra diffractometer motors get set as `Kind.config`
- Dominant language
- Python
- Stars
- 1
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Description
The diffractometer device is setting every motor that is not `_real` or `_pseudo` as `Kind.config`. This is a problem because the position of these motors end up not being saved in the baseline. It looks like this is something that is done by `ophyd.PseudoPositioner`, but I couldn't understand how. Note that adding `kind="normal"` to the instance does not fix it. The only workaround that seems to work is to change the `Kind` after the diffractometer is initialized:
https://github.com/APS-4ID-POLAR/ipython-polar/blob/43839e7a1d369b8155aa028cfa7f561e1314d75d/profile_bluesky/startup/instrument/devices/huber.py#L124
This seems to load fine, but I haven't tested running a scan.
@prjemian : Could you check this in a simulated diffractometer?
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the diffractometer definition in profile_bluesky/startup/instrument/devices/huber.py around line 124 and trace how ophyd.PseudoPositioner assigns motor kinds. Reproduce the behavior with a simulated diffractometer, then run a scan to verify that extra motor positions are included in the baseline and that the final Kind handling works without the post-initialization workaround.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100