diff --git a/src/g2_2025_grade_calculator_pkg/CMakeLists.txt b/src/g2_2025_grade_calculator_pkg/CMakeLists.txt index feeda54..2510274 100644 --- a/src/g2_2025_grade_calculator_pkg/CMakeLists.txt +++ b/src/g2_2025_grade_calculator_pkg/CMakeLists.txt @@ -8,14 +8,27 @@ endif() # find dependencies find_package(ament_cmake REQUIRED) find_package(rclcpp REQUIRED) +find_package(g2_2025_interfaces REQUIRED) -add_executable(grade_generator src/main.cpp) +add_executable(exam_result_generator src/exam_result_generator/main.cpp) +add_executable(final_grade_determinator src/final_grade_determinator/main.cpp) +add_executable(grade_calculator src/grade_calculator/main.cpp) +add_executable(retake_grade_determinator src/retake_grade_determinator/main.cpp) +add_executable(retake_scheduler src/retake_scheduler/main.cpp) -ament_target_dependencies(grade_generator rclcpp) +ament_target_dependencies(exam_result_generator rclcpp g2_2025_interfaces) +ament_target_dependencies(final_grade_determinator rclcpp g2_2025_interfaces) +ament_target_dependencies(grade_calculator rclcpp g2_2025_interfaces) +ament_target_dependencies(retake_grade_determinator rclcpp g2_2025_interfaces) +ament_target_dependencies(retake_scheduler rclcpp g2_2025_interfaces) install ( TARGETS - grade_generator + exam_result_generator + final_grade_determinator + grade_calculator + retake_grade_determinator + retake_scheduler DESTINATION lib/${PROJECT_NAME} ) diff --git a/src/g2_2025_grade_calculator_pkg/package.xml b/src/g2_2025_grade_calculator_pkg/package.xml index 9f7f271..31cb72c 100644 --- a/src/g2_2025_grade_calculator_pkg/package.xml +++ b/src/g2_2025_grade_calculator_pkg/package.xml @@ -10,6 +10,7 @@ ament_cmake rclcpp + g2_2025_interfaces ament_lint_auto ament_lint_common diff --git a/src/g2_2025_grade_calculator_pkg/src/main.cpp b/src/g2_2025_grade_calculator_pkg/src/exam_result_generator/main.cpp similarity index 100% rename from src/g2_2025_grade_calculator_pkg/src/main.cpp rename to src/g2_2025_grade_calculator_pkg/src/exam_result_generator/main.cpp diff --git a/src/g2_2025_grade_calculator_pkg/src/final_grade_determinator/main.cpp b/src/g2_2025_grade_calculator_pkg/src/final_grade_determinator/main.cpp new file mode 100644 index 0000000..7279717 --- /dev/null +++ b/src/g2_2025_grade_calculator_pkg/src/final_grade_determinator/main.cpp @@ -0,0 +1,40 @@ +/* node_template.cpp + * Action server node template for ROS2 + * + * Node description: + * Template action server that demonstrates action server implementation + * with goal handling, feedback publishing, and cancellation support + * + * Reviewed by: + * Changelog: + * [04-09-2025] Wessel T: Implement template + */ + +#include + +#include "rclcpp/rclcpp.hpp" + +namespace lessons::zero::tmp { + +class NodeTemplate : public rclcpp::Node { +public: + NodeTemplate() + : Node("node_template") + { + } + +private: +}; + +} // namespace lessons::zero::template + +int main(int argc,char *argv[]) { + rclcpp::init(argc,argv); + + auto node = std::make_shared(); + + rclcpp::spin(node); + rclcpp::shutdown(); + + return 0; +} diff --git a/src/g2_2025_grade_calculator_pkg/src/grade_calculator/main.cpp b/src/g2_2025_grade_calculator_pkg/src/grade_calculator/main.cpp new file mode 100644 index 0000000..7279717 --- /dev/null +++ b/src/g2_2025_grade_calculator_pkg/src/grade_calculator/main.cpp @@ -0,0 +1,40 @@ +/* node_template.cpp + * Action server node template for ROS2 + * + * Node description: + * Template action server that demonstrates action server implementation + * with goal handling, feedback publishing, and cancellation support + * + * Reviewed by: + * Changelog: + * [04-09-2025] Wessel T: Implement template + */ + +#include + +#include "rclcpp/rclcpp.hpp" + +namespace lessons::zero::tmp { + +class NodeTemplate : public rclcpp::Node { +public: + NodeTemplate() + : Node("node_template") + { + } + +private: +}; + +} // namespace lessons::zero::template + +int main(int argc,char *argv[]) { + rclcpp::init(argc,argv); + + auto node = std::make_shared(); + + rclcpp::spin(node); + rclcpp::shutdown(); + + return 0; +} diff --git a/src/g2_2025_grade_calculator_pkg/src/retake_grade_determinator/main.cpp b/src/g2_2025_grade_calculator_pkg/src/retake_grade_determinator/main.cpp new file mode 100644 index 0000000..7279717 --- /dev/null +++ b/src/g2_2025_grade_calculator_pkg/src/retake_grade_determinator/main.cpp @@ -0,0 +1,40 @@ +/* node_template.cpp + * Action server node template for ROS2 + * + * Node description: + * Template action server that demonstrates action server implementation + * with goal handling, feedback publishing, and cancellation support + * + * Reviewed by: + * Changelog: + * [04-09-2025] Wessel T: Implement template + */ + +#include + +#include "rclcpp/rclcpp.hpp" + +namespace lessons::zero::tmp { + +class NodeTemplate : public rclcpp::Node { +public: + NodeTemplate() + : Node("node_template") + { + } + +private: +}; + +} // namespace lessons::zero::template + +int main(int argc,char *argv[]) { + rclcpp::init(argc,argv); + + auto node = std::make_shared(); + + rclcpp::spin(node); + rclcpp::shutdown(); + + return 0; +} diff --git a/src/g2_2025_grade_calculator_pkg/src/retake_scheduler/main.cpp b/src/g2_2025_grade_calculator_pkg/src/retake_scheduler/main.cpp new file mode 100644 index 0000000..7279717 --- /dev/null +++ b/src/g2_2025_grade_calculator_pkg/src/retake_scheduler/main.cpp @@ -0,0 +1,40 @@ +/* node_template.cpp + * Action server node template for ROS2 + * + * Node description: + * Template action server that demonstrates action server implementation + * with goal handling, feedback publishing, and cancellation support + * + * Reviewed by: + * Changelog: + * [04-09-2025] Wessel T: Implement template + */ + +#include + +#include "rclcpp/rclcpp.hpp" + +namespace lessons::zero::tmp { + +class NodeTemplate : public rclcpp::Node { +public: + NodeTemplate() + : Node("node_template") + { + } + +private: +}; + +} // namespace lessons::zero::template + +int main(int argc,char *argv[]) { + rclcpp::init(argc,argv); + + auto node = std::make_shared(); + + rclcpp::spin(node); + rclcpp::shutdown(); + + return 0; +} diff --git a/src/g2_2025_interfaces/CMakeLists.txt b/src/g2_2025_interfaces/CMakeLists.txt new file mode 100644 index 0000000..9bb5c01 --- /dev/null +++ b/src/g2_2025_interfaces/CMakeLists.txt @@ -0,0 +1,21 @@ +cmake_minimum_required(VERSION 3.8) +project(g2_2025_interfaces) + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +# find dependencies +find_package(ament_cmake REQUIRED) +find_package(rosidl_default_generators REQUIRED) + +rosidl_generate_interfaces(${PROJECT_NAME} + "msg/Student.msg" + "msg/Exam.msg" + "srv/Exam.srv" + "action/Retake.action" +) + +ament_export_dependencies(rosidl_default_runtime) + +ament_package() diff --git a/src/g2_2025_interfaces/action/Retake.action b/src/g2_2025_interfaces/action/Retake.action new file mode 100644 index 0000000..66ebe9a --- /dev/null +++ b/src/g2_2025_interfaces/action/Retake.action @@ -0,0 +1,5 @@ +string student_name +string lecture_name +--- +--- +float32 result diff --git a/src/g2_2025_interfaces/msg/Exam.msg b/src/g2_2025_interfaces/msg/Exam.msg new file mode 100644 index 0000000..63d87a2 --- /dev/null +++ b/src/g2_2025_interfaces/msg/Exam.msg @@ -0,0 +1,2 @@ +string lecture_name +float32 result diff --git a/src/g2_2025_interfaces/msg/Student.msg b/src/g2_2025_interfaces/msg/Student.msg new file mode 100644 index 0000000..566c1cc --- /dev/null +++ b/src/g2_2025_interfaces/msg/Student.msg @@ -0,0 +1,2 @@ +string student_name +string lecture_name diff --git a/src/g2_2025_interfaces/package.xml b/src/g2_2025_interfaces/package.xml new file mode 100644 index 0000000..e596ef9 --- /dev/null +++ b/src/g2_2025_interfaces/package.xml @@ -0,0 +1,22 @@ + + + + g2_2025_interfaces + 0.0.0 + TODO: Package description + wessel + TODO: License declaration + + ament_cmake + + rosidl_default_generators + rosidl_default_runtime + rosidl_interface_packages + + ament_lint_auto + ament_lint_common + + + ament_cmake + + diff --git a/src/g2_2025_interfaces/srv/Exam.srv b/src/g2_2025_interfaces/srv/Exam.srv new file mode 100644 index 0000000..8e9945c --- /dev/null +++ b/src/g2_2025_interfaces/srv/Exam.srv @@ -0,0 +1,5 @@ +# Request +string student_name +string lecture_name +--- +float32 result