feat(safety): add hardware error reporting with auto-disarm #16
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
BB.Safety.report_error/3API for controllers and actuators to report hardware errorsauto_disarm_on_errorsetting (default:true) to control automatic disarm on errorBB.Safety.HardwareErrormessage type published to[:safety, :error]Motivation
Controllers monitoring hardware (like servo drivers) need a way to report hardware errors to the safety system. By default, hardware errors should trigger a safe shutdown, but advanced users may want custom error handling.
Changes
New files:
lib/bb/safety/hardware_error.ex- Message type for error eventsModified files:
lib/bb/dsl.ex- Addedauto_disarm_on_errorsettinglib/bb/dsl/info.ex- Exposed new settinglib/bb/safety.ex- Addedreport_error/3APIlib/bb/safety/controller.ex- Implemented error reporting logicdocumentation/topics/safety.md- Added documentation sectiontest/bb/safety/controller_test.exs- Added testsTest plan
report_error/3publishing error messagesauto_disarm_on_erroris truemix check --no-retrypasses