feat(#76): add basic FaultManager node with in-memory storage#86
Merged
mfaferek93 merged 2 commits intomainfrom Dec 14, 2025
Merged
feat(#76): add basic FaultManager node with in-memory storage#86mfaferek93 merged 2 commits intomainfrom
mfaferek93 merged 2 commits intomainfrom
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR introduces a new ros2_medkit_fault_manager package that provides centralized fault aggregation and lifecycle management for the ros2_medkit system. The FaultManager node receives fault reports from multiple sources via ROS 2 services, aggregates them by fault code, and manages their lifecycle (PENDING → CONFIRMED → CLEARED states).
Key changes:
- Adds a standalone fault manager node with in-memory storage and three ROS 2 service interfaces (report_fault, get_faults, clear_fault)
- Implements thread-safe fault aggregation with occurrence counting and multi-source tracking
- Includes comprehensive unit tests for storage and node functionality
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| src/ros2_medkit_fault_manager/include/ros2_medkit_fault_manager/fault_manager_node.hpp | Public API for the FaultManagerNode with service handler interfaces |
| src/ros2_medkit_fault_manager/include/ros2_medkit_fault_manager/fault_storage.hpp | Thread-safe in-memory fault storage API with filtering and lifecycle management |
| src/ros2_medkit_fault_manager/src/fault_manager_node.cpp | Service handler implementations with input validation and logging |
| src/ros2_medkit_fault_manager/src/fault_storage.cpp | Core fault aggregation logic with severity escalation and multi-source tracking |
| src/ros2_medkit_fault_manager/src/main.cpp | Node entry point following standard ROS 2 patterns |
| src/ros2_medkit_fault_manager/test/test_fault_manager.cpp | Unit tests covering storage operations and node creation |
| src/ros2_medkit_fault_manager/CMakeLists.txt | Build configuration with static library for test sharing |
| src/ros2_medkit_fault_manager/package.xml | Package manifest with dependencies and test configuration |
| src/ros2_medkit_fault_manager/launch/fault_manager.launch.py | Launch file for standalone node deployment |
| src/ros2_medkit_fault_manager/README.md | Package documentation with usage examples and service descriptions |
src/ros2_medkit_fault_manager/include/ros2_medkit_fault_manager/fault_storage.hpp
Show resolved
Hide resolved
efb6534 to
b7a06cc
Compare
b7a06cc to
15ec269
Compare
15ec269 to
0b77d6d
Compare
0b77d6d to
4be5838
Compare
4be5838 to
73fe723
Compare
bburda
requested changes
Dec 13, 2025
src/ros2_medkit_fault_manager/include/ros2_medkit_fault_manager/fault_storage.hpp
Show resolved
Hide resolved
73fe723 to
adf2b2d
Compare
- FaultStorage class with thread-safe in-memory fault storage - FaultManagerNode with ReportFault, GetFaults, and ClearFault services - Fault lifecycle management (pending -> confirmed -> cleared) - Filtering by severity and status - Unit tests for storage and node creation - Architecture documentation with PlantUML diagrams - Launch file and default configuration
adf2b2d to
e584c53
Compare
- Extract abstract FaultStorage interface for pluggable storage backends - Rename concrete implementation to InMemoryFaultStorage - Update design diagrams to reflect interface pattern
ea937c2 to
4c27dec
Compare
bburda
approved these changes
Dec 14, 2025
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Pull Request
Summary
Briefly describe what changed and why.
Issue
Link the related issue (required):
Type
Testing
How was this tested / how should reviewers verify it?
Checklist