generated from wessel/boilerplate
fix(documentation): Rename ALL node mentions to TILMANN naming conventions
This commit is contained in:
@@ -23,7 +23,7 @@ The system consists of multiple ROS2 nodes that communicate through standardized
|
||||
### Core Nodes
|
||||
|
||||
#### 1. FinalGradeDeterminator Node
|
||||
**Namespace**: `assignments::one::final_grade_determinator`
|
||||
**Namespace**: `assignments::one::g2_2025_final_grade_determinator_node`
|
||||
|
||||
**Brief Description**: Collects exam results, triggers grade calculation when thresholds are met, and stores final grades.
|
||||
|
||||
@@ -32,7 +32,7 @@ The system consists of multiple ROS2 nodes that communicate through standardized
|
||||
*For detailed documentation, see: [FinalGradeDeterminator.md](nodes/FinalGradeDeterminator.md)*
|
||||
|
||||
#### 2. GradeCalculator Node
|
||||
**Namespace**: `assignments::one::grade_calculator`
|
||||
**Namespace**: `assignments::one::g2_2025_grade_calculator_node`
|
||||
|
||||
**Brief Description**: Provides grade calculation service with business logic including bonus points and grade validation.
|
||||
|
||||
@@ -41,7 +41,7 @@ The system consists of multiple ROS2 nodes that communicate through standardized
|
||||
*For detailed documentation, see: [GradeCalculator.md](nodes/GradeCalculator.md)*
|
||||
|
||||
#### 3. ExamResultGenerator Node
|
||||
**Namespace**: `assignments::one::exam_result_generator`
|
||||
**Namespace**: `assignments::one::g2_2025_exam_result_generator_node`
|
||||
|
||||
**Brief Description**: Simulates exam result generation by maintaining a queue of student-course combinations and publishing random grades.
|
||||
|
||||
@@ -50,7 +50,7 @@ The system consists of multiple ROS2 nodes that communicate through standardized
|
||||
*For detailed documentation, see: [ExamResultGenerator.md](nodes/ExamResultGenerator.md)*
|
||||
|
||||
#### 4. RetakeScheduler Node
|
||||
**Namespace**: `assignments::one::retake_scheduler`
|
||||
**Namespace**: `assignments::one::g2_2025_retake_scheduler_node`
|
||||
|
||||
**Brief Description**: Manages retake exam scheduling and coordination for students who need to retake exams.
|
||||
|
||||
@@ -59,7 +59,7 @@ The system consists of multiple ROS2 nodes that communicate through standardized
|
||||
*For detailed documentation, see: [RetakeScheduler.md](nodes/RetakeScheduler.md)*
|
||||
|
||||
#### 5. RetakeGradeDeterminator Node
|
||||
**Namespace**: `assignments::one::retake_grade_determinator`
|
||||
**Namespace**: `assignments::one::g2_2025_retake_grade_determinator_node`
|
||||
|
||||
**Brief Description**: Handles grade calculation and processing specifically for retake exams.
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# ROS2 Interface Definitions - g2_2025_interfaces
|
||||
# ROS2 Interface Definitions - g2_2025_assign1_interfaces_pkg
|
||||
|
||||
## Package Overview
|
||||
|
||||
This document describes the custom ROS2 interface definitions in the `g2_2025_interfaces` package. These interfaces provide standardized communication protocols for the TI Minor Grade Generator system.
|
||||
This document describes the custom ROS2 interface definitions in the `g2_2025_assign1_interfaces_pkg` package. These interfaces provide standardized communication protocols for the TI Minor Grade Generator system.
|
||||
|
||||
**Package Name**: `g2_2025_interfaces`
|
||||
**Package Name**: `g2_2025_assign1_interfaces_pkg`
|
||||
**Interface Types**: Messages, Services, Actions
|
||||
**Location**: `src/g2_2025_interfaces/`
|
||||
**Location**: `src/g2_2025_assign1_interfaces_pkg/`
|
||||
|
||||
## Message Types (.msg)
|
||||
|
||||
@@ -114,37 +114,37 @@ string status
|
||||
|
||||
**Publishers**:
|
||||
- **Topic**: `exam_results`
|
||||
- **Message Type**: `g2_2025_interfaces::msg::Exam`
|
||||
- **Message Type**: `g2_2025_assign1_interfaces_pkg::msg::Exam`
|
||||
- **Purpose**: Publishes generated exam results to downstream processing nodes
|
||||
- **Rate**: Configurable interval (default: 2 seconds)
|
||||
|
||||
**Subscribers**:
|
||||
- **Topic**: `student_course_management`
|
||||
- **Message Type**: `g2_2025_interfaces::msg::Student`
|
||||
- **Message Type**: `g2_2025_assign1_interfaces_pkg::msg::Student`
|
||||
- **Purpose**: Receives student-course enrollment updates for exam generation queue
|
||||
|
||||
### FinalGradeDeterminator Node
|
||||
|
||||
**Subscribers**:
|
||||
- **Topic**: `exam_results`
|
||||
- **Message Type**: `g2_2025_interfaces::msg::Exam`
|
||||
- **Message Type**: `g2_2025_assign1_interfaces_pkg::msg::Exam`
|
||||
- **Purpose**: Collects exam results for grade calculation processing
|
||||
|
||||
**Service Clients**:
|
||||
- **Service**: `calculate_grade`
|
||||
- **Service Type**: `g2_2025_interfaces::srv::Exams`
|
||||
- **Service Type**: `g2_2025_assign1_interfaces_pkg::srv::Exams`
|
||||
- **Purpose**: Requests grade calculation from GradeCalculator when threshold is met
|
||||
|
||||
**Publishers**:
|
||||
- **Topic**: `student_course_management`
|
||||
- **Message Type**: `g2_2025_interfaces::msg::Student`
|
||||
- **Message Type**: `g2_2025_assign1_interfaces_pkg::msg::Student`
|
||||
- **Purpose**: Communicate end of enrollment when grade has been calculated
|
||||
|
||||
### GradeCalculator Node
|
||||
|
||||
**Service Servers**:
|
||||
- **Service**: `calculate_grade`
|
||||
- **Service Type**: `g2_2025_interfaces::srv::Exams`
|
||||
- **Service Type**: `g2_2025_assign1_interfaces_pkg::srv::Exams`
|
||||
- **Purpose**: Provides grade calculation services for multiple exam grades
|
||||
- **Processing**: Applies business logic (averaging, bonus points, validation)
|
||||
|
||||
@@ -152,7 +152,7 @@ string status
|
||||
|
||||
**Action Servers**:
|
||||
- **Action**: `retake_request`
|
||||
- **Action Type**: `g2_2025_interfaces::action::Retake`
|
||||
- **Action Type**: `g2_2025_assign1_interfaces_pkg::action::Retake`
|
||||
- **Purpose**: Handles long-running retake scheduling operations
|
||||
- **Feedback**: Provides progress updates during scheduling process
|
||||
|
||||
@@ -160,10 +160,10 @@ string status
|
||||
|
||||
**Service Clients**:
|
||||
- **Service**: `calculate_grade`
|
||||
- **Service Type**: `g2_2025_interfaces::srv::Exams`
|
||||
- **Service Type**: `g2_2025_assign1_interfaces_pkg::srv::Exams`
|
||||
- **Purpose**: Requests specialized retake grade calculations
|
||||
|
||||
**Subscribers**:
|
||||
- **Topic**: `retake_results`
|
||||
- **Message Type**: `g2_2025_interfaces::msg::Exam`
|
||||
- **Message Type**: `g2_2025_assign1_interfaces_pkg::msg::Exam`
|
||||
- **Purpose**: Processes completed retake exam results
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# ExamResultGenerator (`assignments::one::exam_result_generator`)
|
||||
# ExamResultGenerator (`assignments::one::g2_2025_exam_result_generator_node`)
|
||||
|
||||
## Overview
|
||||
The `ExamResultGenerator` is the core node responsible for simulating exam result generation.
|
||||
@@ -15,7 +15,7 @@ grades, and publishes them to the system.
|
||||
```cpp
|
||||
ExamResultGenerator()
|
||||
```
|
||||
- Initializes ROS2 node with name `exam_result_generator`
|
||||
- Initializes ROS2 node with name `g2_2025_exam_result_generator_node`
|
||||
- Sets up random number generation infrastructure
|
||||
- Creates DatabaseManager instance with node logger
|
||||
- Establishes ROS2 publishers, subscribers, and timers
|
||||
@@ -33,7 +33,7 @@ ExamResultGenerator()
|
||||
- Selects random student-course combination from queue
|
||||
- Stores result in database and publishes to ROS2 topic
|
||||
|
||||
**`void student_management_callback(const g2_2025_interfaces::msg::Student::SharedPtr msg)`**
|
||||
**`void student_management_callback(const g2_2025_assign1_interfaces_pkg::msg::Student::SharedPtr msg)`**
|
||||
- Toggles combinations in/out of processing queue
|
||||
- Updates database with new enrollments
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# FinalGradeDeterminator (`assignments::one::final_grade_determinator`)
|
||||
# FinalGradeDeterminator (`assignments::one::g2_2025_final_grade_determinator_node`)
|
||||
|
||||
## Overview
|
||||
The `FinalGradeDeterminator` node collects exam results for student-course combinations, triggers grade calculation when enough results are gathered, and stores final grades in the database. It interacts with ROS2 publishers, subscribers, and service clients to manage the grading workflow.
|
||||
@@ -13,7 +13,7 @@ The `FinalGradeDeterminator` node collects exam results for student-course combi
|
||||
```cpp
|
||||
FinalGradeDeterminator()
|
||||
```
|
||||
- Initializes ROS2 node with name `final_grade_determinator`
|
||||
- Initializes ROS2 node with name `g2_2025_final_grade_determinator_node`
|
||||
- Declares and retrieves `grade_collection_amount` parameter
|
||||
- Sets up `DatabaseManager`
|
||||
- Creates publisher for student course management
|
||||
@@ -22,7 +22,7 @@ FinalGradeDeterminator()
|
||||
|
||||
**Core Functions**
|
||||
|
||||
**`void exam_results_callback(const g2_2025_interfaces::msg::Exam::SharedPtr msg)`**
|
||||
**`void exam_results_callback(const g2_2025_assign1_interfaces_pkg::msg::Exam::SharedPtr msg)`**
|
||||
- Updates internal map with received exam result for student-course combo
|
||||
- Checks if enough results have been collected
|
||||
- Triggers grade calculation request when threshold is met
|
||||
@@ -32,7 +32,7 @@ FinalGradeDeterminator()
|
||||
- Sends async request with collected exam grades for the student-course combination
|
||||
- Uses callback to handle service response
|
||||
|
||||
**`void grade_calculator_response(rclcpp::Client<g2_2025_interfaces::srv::Exams>::SharedFuture future, StudentCourse studentCourseCombo)`**
|
||||
**`void grade_calculator_response(rclcpp::Client<g2_2025_assign1_interfaces_pkg::srv::Exams>::SharedFuture future, StudentCourse studentCourseCombo)`**
|
||||
- Verifies database connection
|
||||
- Publishes final student message to ROS2 topic
|
||||
- Logs final grade information
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# GradeCalculator (`assignments::one::grade_calculator::GradeCalculator`)
|
||||
# GradeCalculator (`assignments::one::g2_2025_grade_calculator_node::GradeCalculator`)
|
||||
|
||||
## Overview
|
||||
The `GradeCalculator` node provides a ROS2 service for calculating student exam grades. It processes exam scores, applies custom logic for specific student names, and ensures grade results are within valid bounds.
|
||||
@@ -9,7 +9,7 @@ The `GradeCalculator` node provides a ROS2 service for calculating student exam
|
||||
```cpp
|
||||
GradeCalculator()
|
||||
```
|
||||
- Initializes ROS2 node with name `grade_calculator`
|
||||
- Initializes ROS2 node with name `g2_2025_grade_calculator_node`
|
||||
- Creates a ROS2 service server for `grade_calculator_service`
|
||||
- Binds the service callback to handle grade calculation requests
|
||||
- Logs service startup
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RetakeGradeDeterminator (`assignments::one::retake_grade_determinator`)
|
||||
# RetakeGradeDeterminator (`assignments::one::g2_2025_retake_grade_determinator_node`)
|
||||
|
||||
## Overview
|
||||
The `RetakeGradeDeterminator` node handles the processing of retake exams for students who have
|
||||
@@ -16,7 +16,7 @@ final retake grades.
|
||||
```cpp
|
||||
RetakeGradeDeterminator(std::unique_ptr<DatabaseManager> db_manager = nullptr)
|
||||
```
|
||||
- Initializes ROS2 node with name `retake_grade_determinator`
|
||||
- Initializes ROS2 node with name `g2_2025_retake_grade_determinator_node`
|
||||
- Sets up `DatabaseManager` (optional injection for testing)
|
||||
- Creates publisher for student course management
|
||||
- Subscribes to exam results topic with retake-specific callback
|
||||
@@ -25,7 +25,7 @@ RetakeGradeDeterminator(std::unique_ptr<DatabaseManager> db_manager = nullptr)
|
||||
|
||||
**Core Functions**
|
||||
|
||||
**`void exam_results_callback(const g2_2025_interfaces::msg::Exam::SharedPtr msg)`**
|
||||
**`void exam_results_callback(const g2_2025_assign1_interfaces_pkg::msg::Exam::SharedPtr msg)`**
|
||||
- Only processes exam results when `retake_allowed_` flag is true
|
||||
- Triggers grade calculation request when threshold is met
|
||||
|
||||
@@ -33,7 +33,7 @@ RetakeGradeDeterminator(std::unique_ptr<DatabaseManager> db_manager = nullptr)
|
||||
- Waits for grade calculator service to be available
|
||||
- Sends async request with collected retake exam grades
|
||||
|
||||
**`void grade_calculator_response(rclcpp::Client<g2_2025_interfaces::srv::Exams>::SharedFuture future, StudentCourse studentCourseCombo)`**
|
||||
**`void grade_calculator_response(rclcpp::Client<g2_2025_assign1_interfaces_pkg::srv::Exams>::SharedFuture future, StudentCourse studentCourseCombo)`**
|
||||
- Clears collected exam data from internal map
|
||||
- Updates retake status in database for the student-course combination
|
||||
- Publishes final student message to ROS2 topic with timestamp
|
||||
@@ -41,20 +41,20 @@ RetakeGradeDeterminator(std::unique_ptr<DatabaseManager> db_manager = nullptr)
|
||||
|
||||
**Action Server Callbacks**
|
||||
|
||||
**`rclcpp_action::GoalResponse goal_callback(const rclcpp_action::GoalUUID& uuid, std::shared_ptr<const g2_2025_interfaces::action::Retake::Goal> goal)`**
|
||||
**`rclcpp_action::GoalResponse goal_callback(const rclcpp_action::GoalUUID& uuid, std::shared_ptr<const g2_2025_assign1_interfaces_pkg::action::Retake::Goal> goal)`**
|
||||
- Accepts retake goal requests for specific student-course combinations
|
||||
- Logs received retake requests with student and course information
|
||||
- Returns `ACCEPT_AND_EXECUTE` for all valid requests
|
||||
|
||||
**`rclcpp_action::CancelResponse cancel_callback(const std::shared_ptr<rclcpp_action::ServerGoalHandle<g2_2025_interfaces::action::Retake>> goal_handle)`**
|
||||
**`rclcpp_action::CancelResponse cancel_callback(const std::shared_ptr<rclcpp_action::ServerGoalHandle<g2_2025_assign1_interfaces_pkg::action::Retake>> goal_handle)`**
|
||||
- Handles retake action cancellation requests
|
||||
- Returns `ACCEPT` for all cancellation requests
|
||||
|
||||
**`void spawn_callback_thread(const std::shared_ptr<rclcpp_action::ServerGoalHandle<g2_2025_interfaces::action::Retake>> goal_handle)`**
|
||||
**`void spawn_callback_thread(const std::shared_ptr<rclcpp_action::ServerGoalHandle<g2_2025_assign1_interfaces_pkg::action::Retake>> goal_handle)`**
|
||||
- Creates detached thread for asynchronous retake action execution
|
||||
- Ensures non-blocking retake processing
|
||||
|
||||
**`void async_execute_callback_thread(const std::shared_ptr<rclcpp_action::ServerGoalHandle<g2_2025_interfaces::action::Retake>> goal_handle)`**
|
||||
**`void async_execute_callback_thread(const std::shared_ptr<rclcpp_action::ServerGoalHandle<g2_2025_assign1_interfaces_pkg::action::Retake>> goal_handle)`**
|
||||
- Enables retake exam processing by setting `retake_allowed_` flag
|
||||
- Publishes student enrollment message to trigger exam generation
|
||||
- Creates and returns successful action result
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RetakeScheduler (`assignments::one::retake_scheduler`)
|
||||
# RetakeScheduler (`assignments::one::g2_2025_retake_scheduler_node`)
|
||||
|
||||
## Overview
|
||||
The `RetakeScheduler` node automatically identifies students who have failed courses and schedules retake exams for them. It periodically queries the database for failing students and sends retake action requests to the `RetakeGradeDeterminator` node to initiate the retake process.
|
||||
@@ -13,7 +13,7 @@ The `RetakeScheduler` node automatically identifies students who have failed cou
|
||||
```cpp
|
||||
RetakeScheduler(std::unique_ptr<DatabaseManager> db_manager = nullptr)
|
||||
```
|
||||
- Initializes ROS2 node with name `retake_scheduler`
|
||||
- Initializes ROS2 node with name `g2_2025_retake_scheduler_node`
|
||||
- Sets up `DatabaseManager` (optional injection for testing)
|
||||
- Creates ROS2 action client for retake action communication
|
||||
- Initializes wall timer for periodic failing student checks
|
||||
|
||||
Reference in New Issue
Block a user