Skip to content

Give slow Archon commands the timeouts they need - #48

Closed
mikelangmayr wants to merge 1 commit into
mainfrom
mike/command-timeouts
Closed

mikelangmayr wants to merge 1 commit into
mainfrom
mike/command-timeouts

Conversation

@mikelangmayr

Copy link
Copy Markdown
Contributor
  • Every command waited POLLTIMEOUT, a compile-time 3000 ms, but APPLYALL measures 4.5 s on the LRIS2 Archon, so applying a configuration could never succeed there
  • A timed-out command is worse than a failed one: its reply arrives afterwards and is read as the next command's, leaving the link one reply behind permanently. Six STATUS calls after a timed-out load all failed, each receiving its predecessor's reply
  • Adds a per-command timeout table keyed on the verb, so native APPLYALL is covered as well as the internal call sites; commands absent from it keep the existing default
  • The values are STA's own, taken from the timeouts archongui passes to interfaceCommand
  • The timeout message now names the command and the limit it hit, rather than guessing at an unrecognized command
  • load reports which step failed; it previously surfaced through the Python bindings as "load failed: no detail"
  • Verified on the LRIS2 Archon through the Python bindings: APPLYALL completes, and bias, heater, power and repeated STATUS all work on the same connection afterwards

@mikelangmayr

Copy link
Copy Markdown
Contributor Author

Not a priority: APPLYALL is slow here because of the power-down ramp this controller's bias boards require, and load should not be power cycling in the first place. The right fix is to stop using APPLYALL rather than to wait longer for it.

@weatherhead99

Copy link
Copy Markdown

the timeouts required for APPLYALL and POWERON / POWEROFF would depend on how many cards there are in the archon, how many order steps in the power sequence, etc etc. So, quite hard to hard code a value correctly over different configurations whilst still being time efficient in execution

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