feat(2-bm): record the DMM insert/bypass state (dmm_insertion setting, MODE-2)#292
Merged
Conversation
…mm_insertion setting (MODE-2) Staff confirmed (MODE-2, #261) how the DMM physically switches the beam mode: the three DMM Y motors (2bma:m26/m27/m29) drive together to 0 mm (inserted, Mono) or -10 mm (retracted, Pink), inside the one coordinated energy-change move, with no special sequencing and no software interlock. This is the first Pink-cluster slice (design-stress scoped). The insert/bypass is a two-state, mode-keyed value, NOT a per-energy curve, so modeling it as an energy_position_curve would manufacture a fake energy axis (the mirror-the-IOC smell). Instead it is a closed-enum Monochromator setting, dmm_insertion = inserted | retracted, using the proven Table.axis_layout pattern (Family settings_schema + Asset.settings). The three Y motors and their 0 / -10 mm targets stay documentary in beamline.yaml (an array-of-objects motor map is outside CORA's settings schema subset). The coordinated mode-switch move that drives the state is the deferred beam_mode_change, still gated on the Pink saved positions and stripe map (MODE-3 / MIRROR-1). Exercised in test_2bm_energy_curves_setup.py (FamilySettingsSchemaUpdated + AssetSettingsUpdated on the Monochromator); no new partition-rule shape, no new Assets, no live dispatch. Descriptor + inventory + procedures updated; the answered MODE-2 question row removed. Addresses MODE-2 (#261). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
First slice of the Pink-beam cluster (design-stress scoped via a 22-agent workflow; this is the minimal, unblocked, settled piece).
What
Staff confirmed (MODE-2, #261) how the DMM physically switches the beam mode: the three DMM Y motors (
2bma:m26/m27/m29) drive together to0mm (inserted, Mono) or-10mm (retracted, Pink), inside the one coordinated energy-change move, with no special sequencing and no software interlock.How (intentional, not mirroring)
The insert/bypass is a two-state, mode-keyed value, not a per-energy relationship. Modeling it as an
energy_position_curvewould manufacture a fake energy axis (the mirror-the-IOC smell the design-stress pass flagged). Instead it is a closed-enumMonochromatorsetting:dmm_insertion=inserted|retracted, on the Monochromator Familysettings_schema+ the Assetsettings, reusing the provenTable.axis_layoutpattern.0/-10mm targets stay documentary inbeamline.yaml(an array-of-objects motor map is outside CORA's settings-schema subset, which has noitems).beam_mode_change, still gated on the Pink saved positions + stripe map (MODE-3 / MIRROR-1).Anti-hook compliance
FamilySettingsSchemaUpdated+AssetSettingsUpdated); no new Assets, no live dispatch.Tests
test_2bm_energy_curves_setup.pyextended + passing (schema + setting assertions).tests/unit/deployments/(62 passed) +mkdocs build --strictclean.Descriptor + inventory + procedures updated; the answered MODE-2 question row removed. naming-r3 reviewed (
dmm_insertion, noun-LAST; valuesinserted/retracted).Addresses MODE-2 (#261).
🤖 Generated with Claude Code