feat: add BB.Safety system for centralised arm/disarm control #10
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.
Summary
Introduces a global safety controller that manages arm/disarm state for all robots on the node:
disarm/1callback for hardware shutdown:errorstate and cannot arm untilforce_disarm/1is calledSafety States
:disarmed:armed:errorArchitecture
Files Changed
lib/bb/safety.ex- Behaviour + APIlib/bb/safety/controller.ex- Global GenServerlib/bb/application.ex- Application supervision treelib/bb/robot/runtime.ex- Integration with runtime state machinelib/bb/command/arm.ex/disarm.ex- Updated to use BB.Safetydocumentation/topics/safety.md- Safety documentationTest plan
mix check --no-retrypasses (formatter, credo, dialyzer, reuse)