Skip to content

v1 CLARIOstar: refuse a read, z-scan or grid scan with the drawer out - #1536

Draft
BioCam wants to merge 1 commit into
PyLabRobot:mainfrom
BioCam:bmg-clariostar-v1-no-measurement-with-drawer-open
Draft

BioCam wants to merge 1 commit into
PyLabRobot:mainfrom
BioCam:bmg-clariostar-v1-no-measurement-with-drawer-open

Conversation

@BioCam

@BioCam BioCam commented Oct 23, 2026

Copy link
Copy Markdown
Collaborator

The Problem

Nothing stops a read, a z-scan or a grid scan from being sent while the CLARIOstar's drawer is out. Each moves the plate carrier under the optics, and what the firmware does with the carrier out is not known: no recorded run was sent that way, and the reader has no documented refusal for it. Measuring with the plate outside the reader, or the carrier driving in on its own, would each be wrong to rely on; the driver already reads the drawer bit in every status it polls before a command, and ignores it.

PR Content

  • Measurement._wait_until_idle_with_drawer_in(): the idle wait send_command does before a command, done before a RUN (_unchecked_fw_run), a z-scan (FOCUS_WELL) and a grid scan (PLATE_MAP_SCAN), raising RuntimeError("the drawer is open; close it first") if the idle status shows the drawer out; nothing else is sent. The command then goes with when_idle=False.
  • The frames sent are unchanged: every existing test passes with its recorded reply sequence, and send_command is untouched.
  • Tests on the recorded drawer-open status: an absorbance read, a fluorescence read, a z-scan and a grid scan are refused after one status query; with the reader busy first, the drawer bit is read from the idle status the wait ends on.
  • Filter detection (FILTER_SCAN) moves only the filter slides and is not guarded.

🤖 Generated with Claude Code

The idle wait before a RUN, FOCUS_WELL or PLATE_MAP_SCAN now reads the drawer bit of the idle
status it ends on and raises "the drawer is open; close it first" before the command is sent;
the command then goes without a second wait. The frames sent are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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.

1 participant