Controls¶
The control plane the beamline runs on, and the seam CORA's edge conducts over. Control plane: EPICS / dodal.
i19 runs on the Diamond EPICS / ophyd-async control stack, the same floor as I22, I03, I15-1, I11, I24, I06, I10, I20-1. The device handles above are bound from the DiamondLightSource/dodal beamline package (its i19 / i19_shared / i19_1 / i19_2 factories and the device classes), carried confirm (CTRL-1). i19 adds a SECOND floor element beyond EPICS: a central blueapi optics ARBITER. The shared-optics writes (change energy, operate the experiment shutter, move the attenuator, set a mirror piezo) are not direct EPICS writes; each hutch posts the operation to the arbiter with its hutch identity, and the arbiter compares it against the active-hutch readback (BL19I-OP-STAT-01:EHStatus) and runs or rejects it. CORA models this as an Enclosure-permit + Trust-gate over the shared-optics Assets, with the arbiter as an actuate-floor seam partner (the "EPICS is the floor" pattern, here a blueapi-arbiter floor): CORA's edge would conduct the run over its ControlPort, either driving through the arbiter or replacing its plan-orchestration per routine, a seam decision not pre-empted here (ACCESS-1). The Eiger file-writing to the Diamond filestore is plumbing CORA observes, not data it owns (see model.md).