fix(FinalGradeDeterminator): build error fix, implement datamap

Implement datamap to catch incoming grades and store them by student
course and name
This commit is contained in:
2025-10-01 11:07:10 +02:00
parent a372716660
commit c0980819bc
2 changed files with 16 additions and 9 deletions

View File

@@ -12,7 +12,7 @@ FinalGradeDeterminator::FinalGradeDeterminator() : Node("final_grade_determinato
exam_subscriber_ = this->create_subscription<g2_2025_interfaces::msg::Exam>(
"exam_results", 10,
std::bind(
&ExamResultGenerator::exam_results_callback,
&FinalGradeDeterminator::exam_results_callback,
this,
std::placeholders::_1
)
@@ -22,18 +22,24 @@ FinalGradeDeterminator::FinalGradeDeterminator() : Node("final_grade_determinato
}
void FinalGradeDeterminator::exam_results_callback(const g2_2025_interfaces::msg::Exam::SharedPtr msg){
dataMap_[{ msg->student_name, msg->course_name}].push_back(msg->result);
if (dataMap_[{ msg->student_name, msg->course_name}].size() = PARAM)
{
studentCourseCombo_.student_name = msg->student_name;
studentCourseCombo_.course_name = msg->course_name;
dataMap_[studentCourseCombo_].push_back(msg->result);
if (dataMap_[studentCourseCombo_].size() == PARAM)
{
RCLCPP_INFO(this->get_logger(),
"%s // %s is full",
msg->student_name.c_str(), msg->course_name.c_str()
);
}
}
void FinalGradeDeterminator::grade_calculator_response(rclcpp::Client<g2_2025_interfaces::srv::Exams>::SharedFuture future){
auto response = future.get();
StudentCourse passthrough;
passthrough.
db_manager_->store_final_course_result()
// StudentCourse passthrough;
// passthrough.course_name
// db_manager_->store_final_course_result();
}
} // namespace assignments::one::final_grade_determinator

View File

@@ -28,11 +28,12 @@ private:
std::unique_ptr<DatabaseManager> db_manager_;
std::map<std::pair<std::string, std::string>, std::vector<int>> dataMap_;
StudentCourse studentCourseCombo_;
StudentCourseResultMap dataMap_;
void exam_results_callback(const g2_2025_interfaces::msg::Exam::SharedPtr msg);
void grade_calculator_response(rclcpp::Client<g2_2025_interfaces::srv::Exams>::SharedFuture future)
void grade_calculator_response(rclcpp::Client<g2_2025_interfaces::srv::Exams>::SharedFuture future);
};
} // namespace assignments::one::final_grade_determinator