Skip to content

Add the optics devices to the profile; fix Slits blade PVs - #8

Merged
Anthony Sligar (sligara7) merged 1 commit into
NSLS2:pdf-profile-conversionfrom
sligara7:pdf-conv-04c-optics
Oct 23, 2026
Merged

Anthony Sligar (sligara7) merged 1 commit into
NSLS2:pdf-profile-conversionfrom
sligara7:pdf-conv-04c-optics

Conversation

@sligara7

Copy link
Copy Markdown

Adds the optics from pdf-profile-collection 12-optics.py to the profile: OCM_slits, BDM_slits, WB_slits, cleanup_slits, sbm, Mirror_VFM, optics_table_adc, OCM_table (classes already in pdftools.motors).

  • Fix: Slits used L}Mtr/R}Mtr for inboard/outboard. Those records do not exist; the blades are I}Mtr/O}Mtr (cainfo on Slt:2 and Slt:0, cs-studio-xf common/op/slits_4ax.opi, and the old profile).
  • New test pins every optics class's PV names to the old profile's records; it failed on Slits before the fix.
  • spinner_goniohead is left for the plain-motors PR: it drives the same PVs as Spinnergo_X/Y/Ry, which still need deduplicating.

Verified: mock tests (PV names, profile boots in mock mode with all eight devices). Not run on the beamline.

…L/R)

Slits used L}Mtr/R}Mtr for inboard/outboard, which do not exist; the records are I}Mtr/O}Mtr (cainfo on 28ID1A and 28ID1B, cs-studio-xf common/op/slits_4ax.opi, pdf-profile-collection 12-optics). A new test pins every optics class's PV names to the old profile; it failed on Slits before the fix. Adds OCM_slits, BDM_slits, WB_slits, cleanup_slits, sbm, Mirror_VFM, optics_table_adc and OCM_table to the profile.

Assisted-by: copilot:claude-opus-5-5
Copilot AI balanced review requested due to automatic review settings October 23, 2026 22:13

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The changes are narrowly scoped, include targeted regression coverage, and have no identified blocking issues; beamline validation remains outstanding.

No open issues 🎉

What changed in this PR

Adds eight optics devices to the collection profile using existing motor classes and corrects the slit blade PV suffixes to match the beamline records.

Changes:

  • Registers four slit assemblies, the monochromator, mirror, and two optics tables.
  • Corrects inboard/outboard slit suffixes from L/R to I/O.
  • Adds PV-name regression tests and extends mock startup coverage to all eight devices.
File Description
tests/​test_utils.py Checks that all eight optics devices connect during mock startup.
tests/​test_optics.py Verifies optics motor and mirror encoder PV names.
src/​pdftools/​profiles/​collection.py Instantiates the optics devices with beamline prefixes.
src/​pdftools/​motors.py Corrects the inboard and outboard slit blade PV suffixes.

Review effort: Balanced

@sligara7
Anthony Sligar (sligara7) merged commit 6801ba1 into NSLS2:pdf-profile-conversion Oct 23, 2026
4 checks passed
@sligara7
Anthony Sligar (sligara7) deleted the pdf-conv-04c-optics branch October 23, 2026 22:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants