Skip to content

Wait for Tecan Infinite terminal responses - #1233

Merged
rickwierenga merged 1 commit into
PyLabRobot:mainfrom
hazlamshamin:fix/tecan-infinite-timed-responses
Sep 2, 2026
Merged

Wait for Tecan Infinite terminal responses#1233
rickwierenga merged 1 commit into
PyLabRobot:mainfrom
hazlamshamin:fix/tecan-infinite-timed-responses

Conversation

@hazlamshamin

Copy link
Copy Markdown
Contributor

Summary

The Tecan Infinite can return BY#T<n> while a command is still active. Treating this response as terminal allows another command to reach the reader before it returns to standby.

  • Treat timed busy responses as nonterminal. Wait for ST, and extend the next read timeout to the advertised duration when it exceeds 30 seconds.
  • Require scan-setting clear commands and MODE FI.TOP to return a terminal confirmation. Do not reinitialize the reader after an indeterminate clear timeout.

Verification

  • .venv/bin/pytest -q pylabrobot/legacy/plate_reading/tecan/infinite_backend_tests.py — 50 passed, 29 subtests passed
  • .venv/bin/pytest -q pylabrobot/legacy/plate_reading — 184 passed, 1 skipped, 29 subtests passed; the two warnings come from Spark AsyncMock tests outside this diff
  • uvx --from ruff==0.15.4 ruff check pylabrobot/legacy/plate_reading/tecan/infinite_backend.py pylabrobot/legacy/plate_reading/tecan/infinite_backend_tests.py — passed
  • uvx --from ruff==0.15.4 ruff format --check pylabrobot/legacy/plate_reading/tecan/infinite_backend.py pylabrobot/legacy/plate_reading/tecan/infinite_backend_tests.py — passed
  • uvx --from mypy==1.18.2 mypy pylabrobot/legacy/plate_reading/tecan/infinite_backend.py — passed
  • Tecan Infinite 200 PRO USB test — timed 5-second and 80-second commands received ST; absorbance, fluorescence, and luminescence reads completed; the reader returned to standby after each mode

Treat BY#T<n> as a timed busy response. Wait for ST before the
next synchronous command, and use the advertised duration when it
exceeds the default read timeout.

Require scan-setting clear commands to confirm their result. Do not
reinitialize the reader after an indeterminate timeout.
@rickwierenga
rickwierenga merged commit ab25988 into PyLabRobot:main Sep 2, 2026
21 checks passed
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