Repository navigation
Conversation
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
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.
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 waitsend_commanddoes before a command, done before a RUN (_unchecked_fw_run), a z-scan (FOCUS_WELL) and a grid scan (PLATE_MAP_SCAN), raisingRuntimeError("the drawer is open; close it first")if the idle status shows the drawer out; nothing else is sent. The command then goes withwhen_idle=False.send_commandis untouched.FILTER_SCAN) moves only the filter slides and is not guarded.🤖 Generated with Claude Code