-
Notifications
You must be signed in to change notification settings - Fork 179
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(api): do not handle smoothie alarms from halt() (#3721)
When changing the smoothie driver in 628c6c4 to be more robust and have better locking, the changes to the main comms sequence around write_with_retries and handle_return started trying to handle and recover from _all_ smoothie alarms, including the one generated by a call to robot.halt() toggling the estop gpios. This interferes with (read: breaks catastrophically) protocol cancel, which relies on this sequence: run() rpc call smoothie stop rpc call | | | smoothie cmd start -> executing | | | (estop) <- halt smoothie cmd raises <- ALARM | | | | exc raised, call done | | (cancel) | | recover <- M999 executing <- home... and if the smoothie cmd in run handles the alarm and tries to recover, then it never cancels the protocol. To fix this, raise a different exception that the normal error handling machinery doesn't catch and therefore propagates all the way up.
- Loading branch information
Showing
2 changed files
with
65 additions
and
9 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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