Skip to content

Comments

feat(#76): add basic FaultManager node with in-memory storage#86

Merged
mfaferek93 merged 2 commits intomainfrom
76/basicFaultManagerNode
Dec 14, 2025
Merged

feat(#76): add basic FaultManager node with in-memory storage#86
mfaferek93 merged 2 commits intomainfrom
76/basicFaultManagerNode

Conversation

@mfaferek93
Copy link
Collaborator

@mfaferek93 mfaferek93 commented Dec 13, 2025

Pull Request

Summary

Briefly describe what changed and why.


Issue

Link the related issue (required):


Type

  • Bug fix
  • New feature or tests
  • Breaking change
  • Documentation only

Testing

How was this tested / how should reviewers verify it?


Checklist

  • Breaking changes are clearly described (and announced in docs / changelog if needed)
  • Tests were added or updated if needed
  • Docs were updated if behavior or public API changed

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated no new comments.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 11 comments.

@mfaferek93 mfaferek93 changed the base branch from 75/faultDataMsgsDefinition to main December 13, 2025 19:49
@mfaferek93 mfaferek93 force-pushed the 76/basicFaultManagerNode branch from 0b77d6d to 4be5838 Compare December 13, 2025 19:50
@mfaferek93 mfaferek93 changed the base branch from main to 75/faultDataMsgsDefinition December 13, 2025 20:03
@mfaferek93 mfaferek93 changed the base branch from 75/faultDataMsgsDefinition to main December 13, 2025 20:18
@mfaferek93 mfaferek93 force-pushed the 76/basicFaultManagerNode branch from 4be5838 to 73fe723 Compare December 13, 2025 20:19
@mfaferek93 mfaferek93 changed the base branch from main to 75/faultDataMsgsDefinition December 13, 2025 20:28
@mfaferek93 mfaferek93 changed the base branch from 75/faultDataMsgsDefinition to main December 14, 2025 11:15
@mfaferek93 mfaferek93 force-pushed the 76/basicFaultManagerNode branch from 73fe723 to adf2b2d Compare December 14, 2025 11:18
- 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
@mfaferek93 mfaferek93 force-pushed the 76/basicFaultManagerNode branch from adf2b2d to e584c53 Compare December 14, 2025 11:35
  - Extract abstract FaultStorage interface for pluggable storage backends
  - Rename concrete implementation to InMemoryFaultStorage
  - Update design diagrams to reflect interface pattern
@mfaferek93 mfaferek93 force-pushed the 76/basicFaultManagerNode branch from ea937c2 to 4c27dec Compare December 14, 2025 12:12
@mfaferek93 mfaferek93 requested a review from Copilot December 14, 2025 12:13
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 15 changed files in this pull request and generated no new comments.

@mfaferek93 mfaferek93 requested a review from bburda December 14, 2025 12:22
@mfaferek93 mfaferek93 merged commit 1b6dba5 into main Dec 14, 2025
9 of 10 checks passed
@mfaferek93 mfaferek93 deleted the 76/basicFaultManagerNode branch January 11, 2026 14:56
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.

Implement Basic Fault Manager Node

2 participants