feat(agnocastlib): add set_parameters_callback impl#890
Merged
Conversation
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
…nocast into feat/parameter_range_validation
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR implements the add_on_set_parameters_callback() and remove_on_set_parameters_callback() methods for agnocast::Node, enabling parameter validation callbacks. The implementation follows rclcpp's multiple callback mechanism while omitting the deprecated single-callback path.
Key changes:
- Added callback container and helper function to invoke registered parameter callbacks
- Integrated callback invocation into the parameter setting flow
- Updated documentation to reflect newly supported methods
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/agnocastlib/src/node/node_interfaces/node_parameters.cpp | Implements callback registration/removal, adds callback invocation to parameter setting logic |
| src/agnocastlib/include/agnocast/node/node_interfaces/node_parameters.hpp | Adds callback container type definition and storage member |
| src/agnocastlib/include/agnocast/node/agnocast_node.hpp | Exposes callback registration/removal methods in Node API |
| src/agnocast_sample_application/src/no_rclcpp_subscriber.cpp | Demonstrates callback usage in sample application |
| docs/agnocast_node_interface_comparison.md | Updates documentation to mark callback methods as fully supported |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
sykwer
approved these changes
Jan 6, 2026
|
bdm-k
pushed a commit
that referenced
this pull request
Mar 23, 2026
* type checking helper functions Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add parameter_range_validation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add set_parameters_atomically implementation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix comments Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add set_parameter impl and sample app Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix sample app Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * update agnocast_node_interface_comparison.d Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * update doc Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add set_parameters_callback impl Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * align with rclcpp for empty_callback_container Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com>
bdm-k
pushed a commit
that referenced
this pull request
Mar 23, 2026
* type checking helper functions Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add parameter_range_validation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add set_parameters_atomically implementation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix comments Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add set_parameter impl and sample app Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix sample app Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * update agnocast_node_interface_comparison.d Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * update doc Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add set_parameters_callback impl Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * align with rclcpp for empty_callback_container Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com>
Koichi98
added a commit
that referenced
this pull request
Apr 4, 2026
…unication (#862) * fix(agnocastlib): align with rclcpp::Node for callback_group related API (#881) * add document for agnocast::Node API Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix doc location and update README Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix to align with rclcpp Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unneeded oveload functions and delete get_default_callback_group Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix doc Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * markdown lint Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(cie_thread_configurator): dep missing (#883) Signed-off-by: sykwer <sykwer@gmail.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(ci): add --return-code-on-test-failure to colcon test commands (#888) Colcon test returns exit code 0 even when tests fail, causing test failures to be silently ignored in CI. Adding the --return-code-on-test-failure flag ensures that the workflow fails when tests fail, improving CI reliability and test accountability. Modified colcon test commands in: - agnocastlib unit and integration tests - heaphook integration tests Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): Add type checking helper functions for set_parameter (#884) * type checking helper functions Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * feat(agnocastlib): Add parameter range validation (#885) * add parameter_range_validation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Takahiro Ishikawa-Aso <sykwer@gmail.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(test): fix test failures in cie and heaphook test (#887) * fix test_and_create_report Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * delete copyright Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix comment spell error Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add implmentation for resolve_topic_or_service_name (#879) * add implmentation for resolve_topic_or_service_name Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix test_and_create_report Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * delete copyright Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * align with rclcpp rcl_node_resolve_name Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix comment spell error Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix to align with rcl impl Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix test Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * update docs and fix based on copilot Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add set_parameters_atomically implementation (#886) * type checking helper functions Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add parameter_range_validation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add set_parameters_atomically implementation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix comments Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * feat(agnocastlib): Add parameter range validation (#885) * add parameter_range_validation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add comments Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib):add set_parameter implementation and sample app (#889) * type checking helper functions Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add parameter_range_validation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add set_parameters_atomically implementation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix comments Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add set_parameter impl and sample app Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix sample app Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * update agnocast_node_interface_comparison.d Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * update doc Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add set_parameters_callback impl (#890) * type checking helper functions Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add parameter_range_validation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add set_parameters_atomically implementation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix comments Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add set_parameter impl and sample app Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix sample app Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * update agnocast_node_interface_comparison.d Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * update doc Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add set_parameters_callback impl Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * align with rclcpp for empty_callback_container Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): run parameter callback when declare (#892) * run parameter callback when declare Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix copilot review Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix error Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add get_parameters_by_prefix implementation (#895) * feat(agnocastlib): add get_parameters_by_prefix implementation * Leave a TODO comment * Add a note Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add get_parameters overload (#896) Signed-off-by: bdm-k <kokusyunn@gmail.com> * docs: add explanation for agnocast::Node loading into a component container (#897) add explanation for agnocast::Node loading into a component container Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): unify mq naming and refactor unlink mq (#893) * refactor: integration two mq Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: unlink mq Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * feat: unique mq Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: rename Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: reviews Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: cppcheck Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add parameter recursive mutation guard (#894) * run parameter callback when declare Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix copilot review Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix error Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add guard for recursive parameter mutation Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * use recuresive mutex and reuse rclcpp ParameterMutationRecursionGuard Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix error after merge with main Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add rclcpp dependency to the documentation Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): skeleton of performance bridge (#898) * feat: performance_bridge_skelton Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refator: remove todo fn Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refator: clang-tidy Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refator: add comment Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refator(agnocastlib): revert pub options (#899) refator: revert_pub_options Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): application bridge mode for request_policy (#900) * feat: application mode for send Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * feat: application mode for send Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): performance eventloop (#901) * feat: performance_event_loop Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: minor Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: unification_event_loop Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove cpp Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: minor Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: minor Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: handler Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(kmod)[needs minor version update]: get process num (#902) * feat: shutdown of performance bridge Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * test: add get_active_proc_num Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refacor: rename Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refacor: add brank line Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refacor: remove exit check Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refacor: comment Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: unify check_daemon_necessity Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * move PublisherOptions error message constructor_impl (#903) * move PublisherOptions error message constructor_impl Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix error message Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add describe_parameters impl (#907) * feat(agnocastlib): add describe_parameters impl * Add TODO comments Signed-off-by: bdm-k <kokusyunn@gmail.com> * docs(agnocastlib): add clarification comments to Executor API (#908) * docs(agnocastlib): add clarification comments to Executor API Add comments to explain that add_node() method in AgnocastOnlyExecutor is implemented solely to unify the API with rclcpp::Executor, improving code clarity for future maintainers. * fix Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): send performance request (#906) * feat: send performance request Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: unify Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: rename Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: logger name Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: clang-tidy Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): generate_plugin (#904) * feat: generate_plugin Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: EmPy Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: add comment Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove comment Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: unify plugin.py Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove py Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add get_parameter_types impl (#909) Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): use qos parameter overrides (#905) * use qos_parameter_overrides Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add sample_ap Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * update doc and sample app Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * Update src/agnocastlib/include/agnocast/agnocast_subscription.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * update doc Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add list_parameters impl (#910) * feat(agnocastlib): add list_parameters impl * Fix clang-tidy errors --------- Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): performance loader (#911) * feat: performance loader Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: unify create_fn Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: copilot Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: add todo comment Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: clang-tidy Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * fix: build Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * fix: build Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: clang-tidy Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): implement cancel() for CallbackIsolatedAgnocastExecutor (#914) * feat(agnocastlib): implement cancel() for CallbackIsolatedAgnocastExecutor Add cancel() public method to CallbackIsolatedAgnocastExecutor that propagates cancellation to all child executors. Track child executors created during spin() and ensure proper cleanup through the cancel mechanism. This enables graceful shutdown of isolated callback group execution threads. * Update src/agnocastlib/src/agnocast_callback_isolated_executor.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix * fix * fix * Add spinning store in cancel method --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * test(agnocastlib): add integration test for CallbackIsolatedAgnocastExecutor (#915) * feat(agnocastlib): implement cancel() for CallbackIsolatedAgnocastExecutor Add cancel() public method to CallbackIsolatedAgnocastExecutor that propagates cancellation to all child executors. Track child executors created during spin() and ensure proper cleanup through the cancel mechanism. This enables graceful shutdown of isolated callback group execution threads. * Update src/agnocastlib/src/agnocast_callback_isolated_executor.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix * fix * fix * test(agnocastlib): add integration test for CallbackIsolatedAgnocastExecutor This test verifies that the CallbackIsolatedAgnocastExecutor correctly publishes callback group information when spinning nodes with multiple callback groups, and that the cancel() method properly stops execution. * fix * fix * fix: rename --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * test: integration test for agnocast_component_container_cie (#916) * test: integration test for agnocast_component_container_cie * Update src/agnocastlib/test/integration/test_agnocast_component_container_cie_launch.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: clang-format --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): auto remove bridge (#918) * feat: remove bridge Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * feat: unify logic Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: no use lambda Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: error handling Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agncastlib): add declare_parameter overload definitions (#913) * add declare_parameter overload definitions that doesn't need default param Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix comment and update doc Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * Update src/agnocastlib/include/agnocast/node/agnocast_node.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(kmod): add set_ros2_subscriber_num ioctl command (#920) * add set_ros2_subscriber_num ioctl Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete adding bool flag to get_subscriber_num Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix get_subscriber_num Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add to agnocast_ioctl.hpp Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): remove reload (#921) refactor: remove reload Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(kmod)[needs major version update]: get_publisher/subscriber_num to return whether bridge exist (#922) * fix get_publisher/subscriber_num to return whether bridge exist Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix kunit test Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix compilation error Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add NodeClock (#912) * feat(agnocastlib): implement NodeClock * Update API reference --------- Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): get subscription count including ros2 subscriber (#919) * add implementation for get_subscription_count Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add flag to get only agnocast subscriber Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add kunit test and rename to set_ros2_subscriber_num Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix kunit tests Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add set_ros2_subscriber_num ioctl Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete adding bool flag to get_subscriber_num Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix get_subscriber_num Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix error Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix error Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * clang-format Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add to agnocast_ioctl.hpp Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix error handling Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix get_subscriber_num comand Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix get_subscription_count Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * update comment Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary changes Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add comment Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * improve comment Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): dynamic entity discovery (#923) * refactor: wakeup timer Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: add comment Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: use default callback group Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: revert Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: use reentrant Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: revert Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: use mutually Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: use struct Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): check ros2 demand (#925) * feat: check ros2 demand Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: cpp_check Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: clang-tidy Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): simple NodeTimeSource implementation (#924) * add implementation for simple NodeTimeSource Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add TODO comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * align with rclcpp Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix sample app Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add sample app Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix bug Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary files Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * update doc Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_time_source.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix clang-tidy Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add type aliases to agnocast::Node (#927) add type aliases Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): fix build dependencies (#932) * fix(agnocastlib): fix build dependencies Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> --------- Signed-off-by: sykwer <sykwer@gmail.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(ci): use sequential build to fix package dependency resolution (#933) * fix(ci): use staged build to fix package dependency resolution colcon's parallel build may start configuring packages before their dependencies are fully installed. This causes find_package() to fail for packages like cie_config_msgs and agnocastlib. Fix by building in three stages: 1. Build cie_config_msgs and cie_thread_configurator 2. Source workspace, then build agnocastlib 3. Source workspace, then build remaining packages This ensures each dependency is installed and available via CMAKE_PREFIX_PATH before dependent packages start building. * fix(ci): use sequential build instead of staged build Simplify the workaround for colcon parallel build dependency issues by using --parallel-workers 1 instead of the three-stage build approach. Signed-off-by: bdm-k <kokusyunn@gmail.com> * add get_topic_name interface (#929) * add get_topic_name interface Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add TODO comments Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Co-authored-by: Takahiro Ishikawa-Aso <sykwer@gmail.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(kmod): add is_bridge in info (#930) * feat: add is_bridge in info Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * feat: get_topic_bridge_exist Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: cppcheck Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: add test Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * Revert to commit 914a331 Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: check exist logic Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: revert Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: find is_bridge logic Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove option Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * test: CI Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * revert Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * delete initialize_internal Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * delete override and add is_bridge arg to constructor Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * delete debug log Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix signiture for teset Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Co-authored-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): check demand and create bridge (#928) * feat: check_and_create_bridges Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor:clang-tidy Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: cppcheck Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Co-authored-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): skip callback groups not automatically added to executor (#931) * fix(ci): use staged build to fix package dependency resolution colcon's parallel build may start configuring packages before their dependencies are fully installed. This causes find_package() to fail for packages like cie_config_msgs and agnocastlib. Fix by building in three stages: 1. Build cie_config_msgs and cie_thread_configurator 2. Source workspace, then build agnocastlib 3. Source workspace, then build remaining packages This ensures each dependency is installed and available via CMAKE_PREFIX_PATH before dependent packages start building. * fix(agnocastlib): skip callback groups not automatically added to executor Add check for automatically_add_to_executor_with_node() to avoid adding callback groups that the user explicitly marked as not for automatic executor addition. Also update test to verify this behavior and add source install/setup.bash to CI test steps. * fix(ci): use sequential build instead of staged build Simplify the workaround for colcon parallel build dependency issues by using --parallel-workers 1 instead of the three-stage build approach. * fix * fix * fix --------- Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(ci): fix install path to align with `--merge-install` (#936) fix install path Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): remove config (#938) refactor: remove config Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): simplify signal handling logic (#939) refactor: remove signo Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat[needs minor version update]: remove QoS depth limit (#937) * feat: support qos depth > 10 * clang-format * cppcheck * Update agnocast_kmod/agnocast_kunit/agnocast_kunit_receive_msg.c Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix * fix: remove MAX_QOS_DEPTH * fix: move mutex * clang-format * fix: clang-tidy * refactor * fix --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): self-executable detection logic (#940) fix: send to symbol Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add NodeServices (#944) * feat(agnocastlib): add NodeServices * Fix clang-tidy error * Add get_node_time_source_interface() Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): separate epoll and callback_info (#941) * separate epoll and callback logic Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary changes Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unncessary Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix for agnocast_only_executor Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): add error handling for non supported qos (#948) * add error handling for keepall and add qos overriding for take subscription Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * validation for other qos Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add NodeLoggingInterface implementation (#945) * add NodeLoggingInterface imple Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * update doc Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(cie_thread_configurator): support multiple ROS domain (#951) * feat: support multiple ROS domain * fix Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib)[need-minor-update]: add get_intra_subscription_count api (#934) * add get_intra_subscription_count api Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix kunit tests Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix kunit test Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix test_publisher Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix kunit tests Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * ret_pub/sub_bridge_exist Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete include_ros2 and fix get_subscription_count_core Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add TODO comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * Update src/agnocastlib/include/agnocast/agnocast_publisher.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * clang-format Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * rename variable Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix bridge manager Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): mq size (#952) * refactor: mq size Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: mq size Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: README Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(README.md): shell command typo error in For User part (#956) Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): declare parameter return type (#958) fix declare parameter return type Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat: support jazzy (#961) * jazzy support in agnocastlib Signed-off-by: sykwer <sykwer@gmail.com> * support jazzy in ci Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * add readme Signed-off-by: sykwer <sykwer@gmail.com> * add comment Signed-off-by: sykwer <sykwer@gmail.com> --------- Signed-off-by: sykwer <sykwer@gmail.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add agnocast timer implementation (#942) * separate epoll and callback logic Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary changes Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add agnocast timer implemenatation Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix sample app publisher Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * restore epoll related Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix next_call_time update Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * update docs and add scripts/run_no_rclcpp_talker Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * Update src/agnocastlib/include/agnocast/agnocast_epoll.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/agnocastlib/src/agnocast_timer_info.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix copilot review Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete static_assert Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * restore static_assert Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/agnocast_timer_info.cpp Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com> * fix to align with rclcpp for period==0 Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add error message and delete unnecessary declaration Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * lockless data structure and timercallbackinfo aligned with rclcpp Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add TODO comment Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * workaround for timer period zero Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * delete TimercallbackInfo Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix compilation error Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * docs: add callback isolated executor documentation for Agnocast (#960) * docs: add callback isolated executor documentation for Agnocast Add documentation explaining the Agnocast version of Callback Isolated Executor, including differences from the original and multiple ROS domain support feature. * Update docs/callback_isolated_executor_for_agnocast.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(cie_thread_configurator): add spawn_non_ros2_thread for non-ROS thread scheduling management (#959) * feat(cie_thread_configurator): add spawn_non_ros2_thread for non-ROS thread scheduling management Add functionality to manage scheduling policies for non-ROS2 threads through cie_thread_configurator. This enables users to configure CPU affinity and scheduling policies for threads that are not part of the ROS2 callback system. Changes: - Add NonRosThreadInfo.msg for publishing thread information - Add spawn_non_ros2_thread template function that publishes thread info before executing the user's function - Update PrerunNode to collect non-ROS thread names and output them in template.yaml - Update ThreadConfiguratorNode to apply scheduling configurations to non-ROS threads - Add integration test for spawn_non_ros2_thread functionality - Rename topic_callback to callback_group_callback for clarity - Rename CallbackGroupConfig to ThreadConfig for unified handling * Update src/cie_thread_configurator/include/cie_thread_configurator/cie_thread_configurator.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix * clang-format --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocast_e2e_test): verification logic (#957) * fix: test logic Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: copilot Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: verification logic Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: get_next_timeout_ms Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: pubish period Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove white space Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove log Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: ros sub num Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: add note Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: equal Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: use class Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(cie_thread_configurator): wait for subscriber before publishing thread info (#967) * fix(cie_thread_configurator): wait for subscriber before publishing thread info - Add subscriber discovery wait loop in spawn_non_ros2_thread with 1 second timeout to prevent message loss when publishing NonRosThreadInfo - Add warning when no subscriber is connected for CallbackGroupInfo to guide users to start thread_configurator_node - Fixes flaky test_thread_configurator_receives_non_ros_thread_info test caused by DDS discovery race condition * refactor: remove code duplication in spawn_non_ros2_thread timeout handling Address review comment by refactoring the timeout logic to have a single execution path for context shutdown and user function execution. * fix: add guidance to start thread_configurator_node in NonRosThreadInfo warning Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): race condition in BridgeManager (#965) * refactor: get qos timing Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * fix: rece condition Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: if Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): fix create_wall_timer api to align with rclcpp (#950) * fix create_wall_timer api Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib)[needs minor version update]: add debug mode for bridge (#963) * refactor: add debug mode for bridge Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove comment Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: is_bridge logic Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: copilot Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: copilot Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * doc(ros2agnocast): add explain for debug mode (#972) * docs: add explain for debug mode Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * docs: add explain for debug mode Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): consolidate bridge functions (#971) * refactor: move manager_pid Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: move suffix Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: move bridge_mode Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove debug log Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove unused variable Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: variable name Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * fix: clang-tidy Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): rename standard bridge (#976) * refactor: rename standard Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: rename standard Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(cie_thread_configurator): ensure NonRosThreadInfo message delivery before shutdown (#979) * fix(cie_thread_configurator): ensure NonRosThreadInfo message delivery before shutdown Use reliable QoS and wait_for_all_acked() to ensure the message is delivered to subscribers before shutting down the context, fixing flaky test failures in CI environments. * fix Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): reduce mutex scop of id2_timer_info_mtx (#974) reduce mutex scop of id2_timer_info_mtx Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): bridge folder structure (#980) refactor: folder structure Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib)[need-minor-update]: reduce lock scope of global mutex in kmod (#985) * reduce lock scope of global mutex Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * Update agnocast_kmod/agnocast_main.c Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * docs: bridge docs (#977) * docs: add bridge explain for readme Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * docs: add bridge explain for mq Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * comment: add bridge md Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * comment: add bridge md Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * comment: add bridge md Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: add link Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: explain Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: fig Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * Update docs/agnocast_ros2_bridge.md --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add update_ros2_subscriber_num to performance manager (#984) * feat: update ros2 Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: move update_fn Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: move update fn Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(github): CODEOWNERS (#988) fix CODEOWNERS Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(cie_thread_configurator): remove unnecessary sleep after publishing callback group info (#989) Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): return actual_qos to use in TRACE_POINT (#973) * return actual_qos to use in TRACE_POINT Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: Yutaro Kobayashi <129580202+kobayu858@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add agnocast::Node support for PollingSubscriber (#926) * fix create_wall_timer api Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * feat polling subscription for agnocast::Node Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add sample_app Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix sample app Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add qos_overriding_options handling in constructor_impl Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * Update src/agnocastlib/include/agnocast/agnocast_subscription.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Yutaro Kobayashi <129580202+kobayu858@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): rename BUILD_BRIDGE environment variable (#991) rename BUILD_BRIDGE enviroment variable Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): add initializer to qos_overriding_options (#954) Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): signal handler for agnocast::Node (#964) * add signal_handler Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * Apply suggestion from @atsushi421 Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com> * Update src/agnocastlib/src/node/agnocast_only_multi_threaded_executor.cpp Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): support ipc_shared_ptr<const T> callback in create_subscription (#993) * feat(agnocastlib): support ipc_shared_ptr<const T> callback in create_subscription Add converting constructors and assignment operators to ipc_shared_ptr to enable implicit conversion from ipc_shared_ptr<T> to ipc_shared_ptr<const T>, similar to std::shared_ptr semantics. This allows create_subscription to accept callbacks that take ipc_shared_ptr<const MessageT> as argument while maintaining backward compatibility with existing callbacks. * feat(agnocastlib): support ipc_shared_ptr<const T> callback in create_subscription Add converting constructors and assignment operators to ipc_shared_ptr to enable implicit conversion from ipc_shared_ptr<T> to ipc_shared_ptr<const T>, similar to std::shared_ptr semantics. This allows create_subscription to accept callbacks that take ipc_shared_ptr<const MessageT> as argument while maintaining backward compatibility with existing callbacks. Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocast_e2e_test): add r2a bridge test (#970) * feat: R2A test Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * remove: result log Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: check incompatible QoS Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: add comment Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: copilot Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: unity Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove log file Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * fix: e2e_2to2 Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: revert comment Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): clean up callback info on subscription destruction (#994) * fix(agnocastlib): clean up callback info on subscription destruction When a BasicSubscription was destroyed, its entry in id2_callback_info was never removed. This caused epoll_ctl(EPOLL_CTL_ADD) to fail with EEXIST when re-subscribing, because the OS reuses the same fd number after mq_close() and the stale entry prevented proper re-registration. * fix * Update src/agnocastlib/include/agnocast/agnocast_subscription.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add message_filters base components (MessageEvent, SimpleFilter) (#996) * feat(agnocastlib): add message_filters base components (MessageEvent, SimpleFilter) Add foundational message_filters components adapted from ROS 2 message_filters for agnocast's const-only shared memory IPC model (ipc_shared_ptr<const M>): - MessageEvent: wraps ipc_shared_ptr<M const> with receipt-time metadata - ParameterAdapter: converts MessageEvent to user callback parameter types - Signal1: thread-safe single-message signal dispatcher - SimpleFilter: base class for single-output filters Includes unit tests with ioctl mock. * Update src/agnocastlib/test/unit/message_filters/ioctl_mock_for_mf.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/agnocastlib/include/agnocast/message_filters/simple_filter.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/agnocastlib/test/unit/message_filters/test_simple.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix(agnocastlib): remove unused MsgPtr alias in test_simple.cpp --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocast_ioctl_wrapper, ros2agnocast): mode print feature topic list (#992) * feat: move print feature Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * fix: avoid unnecessary copy Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * feat: remove service topic Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * fix: for index type Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: return zero value * fix: null check agnocast_topic_buffer --------- Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add Synchronizer and ExactTime sync policy (#997) * feat(agnocastlib): add message_filters base components (MessageEvent, SimpleFilter) Add foundational message_filters components adapted from ROS 2 message_filters for agnocast's const-only shared memory IPC model (ipc_shared_ptr<const M>): - MessageEvent: wraps ipc_shared_ptr<M const> with receipt-time metadata - ParameterAdapter: converts MessageEvent to user callback parameter types - Signal1: thread-safe single-message signal dispatcher - SimpleFilter: base class for single-output filters Includes unit tests with ioctl mock. * Update src/agnocastlib/test/unit/message_filters/ioctl_mock_for_mf.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/agnocastlib/include/agnocast/message_filters/simple_filter.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/agnocastlib/test/unit/message_filters/test_simple.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix(agnocastlib): remove unused MsgPtr alias in test_simple.cpp * feat(agnocastlib): add Synchronizer and ExactTime sync policy Add multi-message synchronization components: - Signal9: thread-safe 9-message signal dispatcher - Synchronizer: policy-based multi-message synchronizer (2-9 inputs) - PolicyBase: common type aliases for sync policies - ExactTime: groups messages by exact timestamp match Includes unit tests for ExactTime (timestamp matching, queue size, drop callback) and Synchronizer (compile tests for 2-9 inputs, callback signatures, add routing). * Update src/agnocastlib/test/unit/message_filters/test_exact_time.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/agnocastlib/test/unit/message_filters/test_synchronizer.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/agnocastlib/include/agnocast/message_filters/signal9.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add message_filters Subscriber and integration tests (#998) * feat(agnocastlib): add message_filters Subscriber and integration tests Add Subscriber filter connecting agnocast subscriptions to the message_filters chain, and integration tests requiring kernel module: - Subscriber: wraps agnocast::create_subscription() and signals received messages as MessageEvent<M const> through SimpleFilter - Integration tests: full Publisher -> Subscriber pipeline, 9-channel ExactTime synchronization, partial arrival, timestamp mismatch/match * fix Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocast_ioctl_wrapper, ros2agnocast): enhance topic list agnocast command (#1002) * feat: update topic list display Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * fix: bridge display condition Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * feat: move feature that remove srv topic Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * fix: rm debug msg Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * fix: typo Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * feat: rename bridge status Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * fix: update suffix on starange situations Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocast_ioctl_wrapper, ros2agnocast): add node list agnocast command (#1003) * feat: add node list command Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * fix: comment Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * fix: variant name Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * feat: remove unnecesarry comment Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> * fix: remove warning of duplication Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * feat: debug option Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> --------- Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat[needs minor version update]: redesign ipc_shared_ptr (#966) * redesign ipc_shared_ptr in publisher process Signed-off-by: sykwer <sykwer@gmail.com> * fix unit tests for publisher process side Signed-off-by: sykwer <sykwer@gmail.com> * redesign ipc_shared_ptr in subscriber process Signed-off-by: sykwer <sykwer@gm…
atsushi421
added a commit
to paulsohn/agnocast
that referenced
this pull request
Apr 7, 2026
…unication (autowarefoundation#862) * fix(agnocastlib): align with rclcpp::Node for callback_group related API (#881) * add document for agnocast::Node API Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix doc location and update README Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix to align with rclcpp Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unneeded oveload functions and delete get_default_callback_group Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix doc Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * markdown lint Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(cie_thread_configurator): dep missing (#883) Signed-off-by: sykwer <sykwer@gmail.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(ci): add --return-code-on-test-failure to colcon test commands (#888) Colcon test returns exit code 0 even when tests fail, causing test failures to be silently ignored in CI. Adding the --return-code-on-test-failure flag ensures that the workflow fails when tests fail, improving CI reliability and test accountability. Modified colcon test commands in: - agnocastlib unit and integration tests - heaphook integration tests Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): Add type checking helper functions for set_parameter (#884) * type checking helper functions Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * feat(agnocastlib): Add parameter range validation (#885) * add parameter_range_validation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Takahiro Ishikawa-Aso <sykwer@gmail.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(test): fix test failures in cie and heaphook test (#887) * fix test_and_create_report Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * delete copyright Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix comment spell error Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add implmentation for resolve_topic_or_service_name (#879) * add implmentation for resolve_topic_or_service_name Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix test_and_create_report Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * delete copyright Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * align with rclcpp rcl_node_resolve_name Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix comment spell error Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix to align with rcl impl Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix test Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * update docs and fix based on copilot Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add set_parameters_atomically implementation (#886) * type checking helper functions Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add parameter_range_validation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add set_parameters_atomically implementation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix comments Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * feat(agnocastlib): Add parameter range validation (#885) * add parameter_range_validation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add comments Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib):add set_parameter implementation and sample app (#889) * type checking helper functions Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add parameter_range_validation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add set_parameters_atomically implementation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix comments Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add set_parameter impl and sample app Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix sample app Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * update agnocast_node_interface_comparison.d Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * update doc Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add set_parameters_callback impl (#890) * type checking helper functions Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add parameter_range_validation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add set_parameters_atomically implementation Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix comments Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add set_parameter impl and sample app Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix sample app Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * update agnocast_node_interface_comparison.d Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * update doc Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add set_parameters_callback impl Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * align with rclcpp for empty_callback_container Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): run parameter callback when declare (#892) * run parameter callback when declare Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix copilot review Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix error Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add get_parameters_by_prefix implementation (#895) * feat(agnocastlib): add get_parameters_by_prefix implementation * Leave a TODO comment * Add a note Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add get_parameters overload (#896) Signed-off-by: bdm-k <kokusyunn@gmail.com> * docs: add explanation for agnocast::Node loading into a component container (#897) add explanation for agnocast::Node loading into a component container Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): unify mq naming and refactor unlink mq (#893) * refactor: integration two mq Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: unlink mq Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * feat: unique mq Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: rename Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: reviews Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: cppcheck Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add parameter recursive mutation guard (#894) * run parameter callback when declare Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix copilot review Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix error Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add guard for recursive parameter mutation Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * use recuresive mutex and reuse rclcpp ParameterMutationRecursionGuard Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix error after merge with main Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add rclcpp dependency to the documentation Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): skeleton of performance bridge (#898) * feat: performance_bridge_skelton Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refator: remove todo fn Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refator: clang-tidy Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refator: add comment Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refator(agnocastlib): revert pub options (#899) refator: revert_pub_options Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): application bridge mode for request_policy (#900) * feat: application mode for send Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * feat: application mode for send Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): performance eventloop (#901) * feat: performance_event_loop Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: minor Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: unification_event_loop Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove cpp Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: minor Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: minor Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: handler Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(kmod)[needs minor version update]: get process num (#902) * feat: shutdown of performance bridge Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * test: add get_active_proc_num Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refacor: rename Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refacor: add brank line Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refacor: remove exit check Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refacor: comment Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: unify check_daemon_necessity Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * move PublisherOptions error message constructor_impl (#903) * move PublisherOptions error message constructor_impl Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix error message Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add describe_parameters impl (#907) * feat(agnocastlib): add describe_parameters impl * Add TODO comments Signed-off-by: bdm-k <kokusyunn@gmail.com> * docs(agnocastlib): add clarification comments to Executor API (#908) * docs(agnocastlib): add clarification comments to Executor API Add comments to explain that add_node() method in AgnocastOnlyExecutor is implemented solely to unify the API with rclcpp::Executor, improving code clarity for future maintainers. * fix Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): send performance request (#906) * feat: send performance request Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: unify Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: rename Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: logger name Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: clang-tidy Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): generate_plugin (#904) * feat: generate_plugin Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: EmPy Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: add comment Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove comment Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: unify plugin.py Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove py Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add get_parameter_types impl (#909) Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): use qos parameter overrides (#905) * use qos_parameter_overrides Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add sample_ap Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * update doc and sample app Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * Update src/agnocastlib/include/agnocast/agnocast_subscription.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * update doc Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add list_parameters impl (#910) * feat(agnocastlib): add list_parameters impl * Fix clang-tidy errors --------- Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): performance loader (#911) * feat: performance loader Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: unify create_fn Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: copilot Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: add todo comment Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: clang-tidy Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * fix: build Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * fix: build Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: clang-tidy Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): implement cancel() for CallbackIsolatedAgnocastExecutor (#914) * feat(agnocastlib): implement cancel() for CallbackIsolatedAgnocastExecutor Add cancel() public method to CallbackIsolatedAgnocastExecutor that propagates cancellation to all child executors. Track child executors created during spin() and ensure proper cleanup through the cancel mechanism. This enables graceful shutdown of isolated callback group execution threads. * Update src/agnocastlib/src/agnocast_callback_isolated_executor.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix * fix * fix * Add spinning store in cancel method --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * test(agnocastlib): add integration test for CallbackIsolatedAgnocastExecutor (#915) * feat(agnocastlib): implement cancel() for CallbackIsolatedAgnocastExecutor Add cancel() public method to CallbackIsolatedAgnocastExecutor that propagates cancellation to all child executors. Track child executors created during spin() and ensure proper cleanup through the cancel mechanism. This enables graceful shutdown of isolated callback group execution threads. * Update src/agnocastlib/src/agnocast_callback_isolated_executor.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix * fix * fix * test(agnocastlib): add integration test for CallbackIsolatedAgnocastExecutor This test verifies that the CallbackIsolatedAgnocastExecutor correctly publishes callback group information when spinning nodes with multiple callback groups, and that the cancel() method properly stops execution. * fix * fix * fix: rename --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * test: integration test for agnocast_component_container_cie (#916) * test: integration test for agnocast_component_container_cie * Update src/agnocastlib/test/integration/test_agnocast_component_container_cie_launch.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: clang-format --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): auto remove bridge (#918) * feat: remove bridge Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * feat: unify logic Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: no use lambda Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: error handling Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agncastlib): add declare_parameter overload definitions (#913) * add declare_parameter overload definitions that doesn't need default param Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix comment and update doc Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * Update src/agnocastlib/include/agnocast/node/agnocast_node.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(kmod): add set_ros2_subscriber_num ioctl command (#920) * add set_ros2_subscriber_num ioctl Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete adding bool flag to get_subscriber_num Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix get_subscriber_num Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add to agnocast_ioctl.hpp Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): remove reload (#921) refactor: remove reload Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(kmod)[needs major version update]: get_publisher/subscriber_num to return whether bridge exist (#922) * fix get_publisher/subscriber_num to return whether bridge exist Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix kunit test Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix compilation error Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add NodeClock (#912) * feat(agnocastlib): implement NodeClock * Update API reference --------- Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): get subscription count including ros2 subscriber (#919) * add implementation for get_subscription_count Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add flag to get only agnocast subscriber Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add kunit test and rename to set_ros2_subscriber_num Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix kunit tests Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add set_ros2_subscriber_num ioctl Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete adding bool flag to get_subscriber_num Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix get_subscriber_num Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix error Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix error Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * clang-format Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add to agnocast_ioctl.hpp Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix error handling Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix get_subscriber_num comand Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix get_subscription_count Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * update comment Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary changes Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add comment Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * improve comment Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): dynamic entity discovery (#923) * refactor: wakeup timer Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: add comment Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: use default callback group Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: revert Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: use reentrant Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: revert Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: use mutually Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: use struct Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): check ros2 demand (#925) * feat: check ros2 demand Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: cpp_check Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: clang-tidy Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): simple NodeTimeSource implementation (#924) * add implementation for simple NodeTimeSource Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add TODO comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * align with rclcpp Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix sample app Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add sample app Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix bug Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary files Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * update doc Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/node/node_interfaces/node_time_source.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix clang-tidy Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add type aliases to agnocast::Node (#927) add type aliases Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): fix build dependencies (#932) * fix(agnocastlib): fix build dependencies Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> --------- Signed-off-by: sykwer <sykwer@gmail.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(ci): use sequential build to fix package dependency resolution (#933) * fix(ci): use staged build to fix package dependency resolution colcon's parallel build may start configuring packages before their dependencies are fully installed. This causes find_package() to fail for packages like cie_config_msgs and agnocastlib. Fix by building in three stages: 1. Build cie_config_msgs and cie_thread_configurator 2. Source workspace, then build agnocastlib 3. Source workspace, then build remaining packages This ensures each dependency is installed and available via CMAKE_PREFIX_PATH before dependent packages start building. * fix(ci): use sequential build instead of staged build Simplify the workaround for colcon parallel build dependency issues by using --parallel-workers 1 instead of the three-stage build approach. Signed-off-by: bdm-k <kokusyunn@gmail.com> * add get_topic_name interface (#929) * add get_topic_name interface Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add TODO comments Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Co-authored-by: Takahiro Ishikawa-Aso <sykwer@gmail.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(kmod): add is_bridge in info (#930) * feat: add is_bridge in info Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * feat: get_topic_bridge_exist Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: cppcheck Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: add test Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * Revert to commit 914a331 Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: check exist logic Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: revert Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: find is_bridge logic Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove option Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * test: CI Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * revert Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * delete initialize_internal Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * delete override and add is_bridge arg to constructor Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * delete debug log Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix signiture for teset Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Co-authored-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): check demand and create bridge (#928) * feat: check_and_create_bridges Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor:clang-tidy Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: cppcheck Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Co-authored-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): skip callback groups not automatically added to executor (#931) * fix(ci): use staged build to fix package dependency resolution colcon's parallel build may start configuring packages before their dependencies are fully installed. This causes find_package() to fail for packages like cie_config_msgs and agnocastlib. Fix by building in three stages: 1. Build cie_config_msgs and cie_thread_configurator 2. Source workspace, then build agnocastlib 3. Source workspace, then build remaining packages This ensures each dependency is installed and available via CMAKE_PREFIX_PATH before dependent packages start building. * fix(agnocastlib): skip callback groups not automatically added to executor Add check for automatically_add_to_executor_with_node() to avoid adding callback groups that the user explicitly marked as not for automatic executor addition. Also update test to verify this behavior and add source install/setup.bash to CI test steps. * fix(ci): use sequential build instead of staged build Simplify the workaround for colcon parallel build dependency issues by using --parallel-workers 1 instead of the three-stage build approach. * fix * fix * fix --------- Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(ci): fix install path to align with `--merge-install` (#936) fix install path Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): remove config (#938) refactor: remove config Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): simplify signal handling logic (#939) refactor: remove signo Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat[needs minor version update]: remove QoS depth limit (#937) * feat: support qos depth > 10 * clang-format * cppcheck * Update agnocast_kmod/agnocast_kunit/agnocast_kunit_receive_msg.c Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix * fix: remove MAX_QOS_DEPTH * fix: move mutex * clang-format * fix: clang-tidy * refactor * fix --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): self-executable detection logic (#940) fix: send to symbol Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add NodeServices (#944) * feat(agnocastlib): add NodeServices * Fix clang-tidy error * Add get_node_time_source_interface() Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): separate epoll and callback_info (#941) * separate epoll and callback logic Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary changes Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unncessary Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix for agnocast_only_executor Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): add error handling for non supported qos (#948) * add error handling for keepall and add qos overriding for take subscription Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * validation for other qos Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add NodeLoggingInterface implementation (#945) * add NodeLoggingInterface imple Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * update doc Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(cie_thread_configurator): support multiple ROS domain (#951) * feat: support multiple ROS domain * fix Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib)[need-minor-update]: add get_intra_subscription_count api (#934) * add get_intra_subscription_count api Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix kunit tests Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix kunit test Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix test_publisher Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix kunit tests Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * ret_pub/sub_bridge_exist Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete include_ros2 and fix get_subscription_count_core Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add TODO comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * Update src/agnocastlib/include/agnocast/agnocast_publisher.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * clang-format Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * rename variable Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix bridge manager Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): mq size (#952) * refactor: mq size Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: mq size Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: README Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(README.md): shell command typo error in For User part (#956) Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): declare parameter return type (#958) fix declare parameter return type Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat: support jazzy (#961) * jazzy support in agnocastlib Signed-off-by: sykwer <sykwer@gmail.com> * support jazzy in ci Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * fix Signed-off-by: sykwer <sykwer@gmail.com> * add readme Signed-off-by: sykwer <sykwer@gmail.com> * add comment Signed-off-by: sykwer <sykwer@gmail.com> --------- Signed-off-by: sykwer <sykwer@gmail.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add agnocast timer implementation (#942) * separate epoll and callback logic Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary changes Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add agnocast timer implemenatation Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix sample app publisher Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * restore epoll related Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix next_call_time update Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * update docs and add scripts/run_no_rclcpp_talker Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * Update src/agnocastlib/include/agnocast/agnocast_epoll.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/agnocastlib/src/agnocast_timer_info.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix copilot review Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete static_assert Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * restore static_assert Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * Update src/agnocastlib/src/agnocast_timer_info.cpp Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com> * fix to align with rclcpp for period==0 Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add error message and delete unnecessary declaration Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * lockless data structure and timercallbackinfo aligned with rclcpp Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * add TODO comment Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * workaround for timer period zero Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * delete TimercallbackInfo Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix compilation error Signed-off-by: Koichi <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * docs: add callback isolated executor documentation for Agnocast (#960) * docs: add callback isolated executor documentation for Agnocast Add documentation explaining the Agnocast version of Callback Isolated Executor, including differences from the original and multiple ROS domain support feature. * Update docs/callback_isolated_executor_for_agnocast.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(cie_thread_configurator): add spawn_non_ros2_thread for non-ROS thread scheduling management (#959) * feat(cie_thread_configurator): add spawn_non_ros2_thread for non-ROS thread scheduling management Add functionality to manage scheduling policies for non-ROS2 threads through cie_thread_configurator. This enables users to configure CPU affinity and scheduling policies for threads that are not part of the ROS2 callback system. Changes: - Add NonRosThreadInfo.msg for publishing thread information - Add spawn_non_ros2_thread template function that publishes thread info before executing the user's function - Update PrerunNode to collect non-ROS thread names and output them in template.yaml - Update ThreadConfiguratorNode to apply scheduling configurations to non-ROS threads - Add integration test for spawn_non_ros2_thread functionality - Rename topic_callback to callback_group_callback for clarity - Rename CallbackGroupConfig to ThreadConfig for unified handling * Update src/cie_thread_configurator/include/cie_thread_configurator/cie_thread_configurator.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix * clang-format --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocast_e2e_test): verification logic (#957) * fix: test logic Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: copilot Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: verification logic Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: get_next_timeout_ms Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: pubish period Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove white space Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove log Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: ros sub num Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: add note Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: equal Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: use class Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(cie_thread_configurator): wait for subscriber before publishing thread info (#967) * fix(cie_thread_configurator): wait for subscriber before publishing thread info - Add subscriber discovery wait loop in spawn_non_ros2_thread with 1 second timeout to prevent message loss when publishing NonRosThreadInfo - Add warning when no subscriber is connected for CallbackGroupInfo to guide users to start thread_configurator_node - Fixes flaky test_thread_configurator_receives_non_ros_thread_info test caused by DDS discovery race condition * refactor: remove code duplication in spawn_non_ros2_thread timeout handling Address review comment by refactoring the timeout logic to have a single execution path for context shutdown and user function execution. * fix: add guidance to start thread_configurator_node in NonRosThreadInfo warning Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): race condition in BridgeManager (#965) * refactor: get qos timing Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * fix: rece condition Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: if Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): fix create_wall_timer api to align with rclcpp (#950) * fix create_wall_timer api Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix clang-tidy Signed-off-by: Koichi <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib)[needs minor version update]: add debug mode for bridge (#963) * refactor: add debug mode for bridge Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove comment Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: is_bridge logic Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: copilot Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: copilot Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * doc(ros2agnocast): add explain for debug mode (#972) * docs: add explain for debug mode Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * docs: add explain for debug mode Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): consolidate bridge functions (#971) * refactor: move manager_pid Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: move suffix Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: move bridge_mode Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove debug log Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove unused variable Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: variable name Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * fix: clang-tidy Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): rename standard bridge (#976) * refactor: rename standard Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: rename standard Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(cie_thread_configurator): ensure NonRosThreadInfo message delivery before shutdown (#979) * fix(cie_thread_configurator): ensure NonRosThreadInfo message delivery before shutdown Use reliable QoS and wait_for_all_acked() to ensure the message is delivered to subscribers before shutting down the context, fixing flaky test failures in CI environments. * fix Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): reduce mutex scop of id2_timer_info_mtx (#974) reduce mutex scop of id2_timer_info_mtx Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): bridge folder structure (#980) refactor: folder structure Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib)[need-minor-update]: reduce lock scope of global mutex in kmod (#985) * reduce lock scope of global mutex Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * Update agnocast_kmod/agnocast_main.c Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * docs: bridge docs (#977) * docs: add bridge explain for readme Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * docs: add bridge explain for mq Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * comment: add bridge md Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * comment: add bridge md Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * comment: add bridge md Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: add link Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: explain Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: fig Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * Update docs/agnocast_ros2_bridge.md --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add update_ros2_subscriber_num to performance manager (#984) * feat: update ros2 Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: move update_fn Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: move update fn Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(github): CODEOWNERS (#988) fix CODEOWNERS Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(cie_thread_configurator): remove unnecessary sleep after publishing callback group info (#989) Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): return actual_qos to use in TRACE_POINT (#973) * return actual_qos to use in TRACE_POINT Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: Yutaro Kobayashi <129580202+kobayu858@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add agnocast::Node support for PollingSubscriber (#926) * fix create_wall_timer api Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * feat polling subscription for agnocast::Node Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add sample_app Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix sample app Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * add qos_overriding_options handling in constructor_impl Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * Update src/agnocastlib/include/agnocast/agnocast_subscription.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Yutaro Kobayashi <129580202+kobayu858@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): rename BUILD_BRIDGE environment variable (#991) rename BUILD_BRIDGE enviroment variable Signed-off-by: Koichi <koichi.imai.2@tier4.jp> Signed-off-by: bdm-k <kokusyunn@gmail.com> * refactor(agnocastlib): add initializer to qos_overriding_options (#954) Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): signal handler for agnocast::Node (#964) * add signal_handler Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * delete unnecessary comments Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> * Apply suggestion from @atsushi421 Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com> * Update src/agnocastlib/src/node/agnocast_only_multi_threaded_executor.cpp Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com> * fix Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> --------- Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp> Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): support ipc_shared_ptr<const T> callback in create_subscription (#993) * feat(agnocastlib): support ipc_shared_ptr<const T> callback in create_subscription Add converting constructors and assignment operators to ipc_shared_ptr to enable implicit conversion from ipc_shared_ptr<T> to ipc_shared_ptr<const T>, similar to std::shared_ptr semantics. This allows create_subscription to accept callbacks that take ipc_shared_ptr<const MessageT> as argument while maintaining backward compatibility with existing callbacks. * feat(agnocastlib): support ipc_shared_ptr<const T> callback in create_subscription Add converting constructors and assignment operators to ipc_shared_ptr to enable implicit conversion from ipc_shared_ptr<T> to ipc_shared_ptr<const T>, similar to std::shared_ptr semantics. This allows create_subscription to accept callbacks that take ipc_shared_ptr<const MessageT> as argument while maintaining backward compatibility with existing callbacks. Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocast_e2e_test): add r2a bridge test (#970) * feat: R2A test Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * remove: result log Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: check incompatible QoS Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: add comment Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: copilot Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: unity Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: remove log file Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * fix: e2e_2to2 Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> * refactor: revert comment Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * fix(agnocastlib): clean up callback info on subscription destruction (#994) * fix(agnocastlib): clean up callback info on subscription destruction When a BasicSubscription was destroyed, its entry in id2_callback_info was never removed. This caused epoll_ctl(EPOLL_CTL_ADD) to fail with EEXIST when re-subscribing, because the OS reuses the same fd number after mq_close() and the stale entry prevented proper re-registration. * fix * Update src/agnocastlib/include/agnocast/agnocast_subscription.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add message_filters base components (MessageEvent, SimpleFilter) (#996) * feat(agnocastlib): add message_filters base components (MessageEvent, SimpleFilter) Add foundational message_filters components adapted from ROS 2 message_filters for agnocast's const-only shared memory IPC model (ipc_shared_ptr<const M>): - MessageEvent: wraps ipc_shared_ptr<M const> with receipt-time metadata - ParameterAdapter: converts MessageEvent to user callback parameter types - Signal1: thread-safe single-message signal dispatcher - SimpleFilter: base class for single-output filters Includes unit tests with ioctl mock. * Update src/agnocastlib/test/unit/message_filters/ioctl_mock_for_mf.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/agnocastlib/include/agnocast/message_filters/simple_filter.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/agnocastlib/test/unit/message_filters/test_simple.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix(agnocastlib): remove unused MsgPtr alias in test_simple.cpp --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocast_ioctl_wrapper, ros2agnocast): mode print feature topic list (#992) * feat: move print feature Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * fix: avoid unnecessary copy Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * feat: remove service topic Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * fix: for index type Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: return zero value * fix: null check agnocast_topic_buffer --------- Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add Synchronizer and ExactTime sync policy (#997) * feat(agnocastlib): add message_filters base components (MessageEvent, SimpleFilter) Add foundational message_filters components adapted from ROS 2 message_filters for agnocast's const-only shared memory IPC model (ipc_shared_ptr<const M>): - MessageEvent: wraps ipc_shared_ptr<M const> with receipt-time metadata - ParameterAdapter: converts MessageEvent to user callback parameter types - Signal1: thread-safe single-message signal dispatcher - SimpleFilter: base class for single-output filters Includes unit tests with ioctl mock. * Update src/agnocastlib/test/unit/message_filters/ioctl_mock_for_mf.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/agnocastlib/include/agnocast/message_filters/simple_filter.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/agnocastlib/test/unit/message_filters/test_simple.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix(agnocastlib): remove unused MsgPtr alias in test_simple.cpp * feat(agnocastlib): add Synchronizer and ExactTime sync policy Add multi-message synchronization components: - Signal9: thread-safe 9-message signal dispatcher - Synchronizer: policy-based multi-message synchronizer (2-9 inputs) - PolicyBase: common type aliases for sync policies - ExactTime: groups messages by exact timestamp match Includes unit tests for ExactTime (timestamp matching, queue size, drop callback) and Synchronizer (compile tests for 2-9 inputs, callback signatures, add routing). * Update src/agnocastlib/test/unit/message_filters/test_exact_time.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/agnocastlib/test/unit/message_filters/test_synchronizer.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/agnocastlib/include/agnocast/message_filters/signal9.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocastlib): add message_filters Subscriber and integration tests (#998) * feat(agnocastlib): add message_filters Subscriber and integration tests Add Subscriber filter connecting agnocast subscriptions to the message_filters chain, and integration tests requiring kernel module: - Subscriber: wraps agnocast::create_subscription() and signals received messages as MessageEvent<M const> through SimpleFilter - Integration tests: full Publisher -> Subscriber pipeline, 9-channel ExactTime synchronization, partial arrival, timestamp mismatch/match * fix Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocast_ioctl_wrapper, ros2agnocast): enhance topic list agnocast command (#1002) * feat: update topic list display Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * fix: bridge display condition Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * feat: move feature that remove srv topic Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * fix: rm debug msg Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * fix: typo Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * feat: rename bridge status Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * fix: update suffix on starange situations Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat(agnocast_ioctl_wrapper, ros2agnocast): add node list agnocast command (#1003) * feat: add node list command Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * fix: comment Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * fix: variant name Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * feat: remove unnecesarry comment Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> * fix: remove warning of duplication Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> * feat: debug option Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> --------- Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com> Signed-off-by: bdm-k <kokusyunn@gmail.com> * feat[needs minor version update]: redesign ipc_shared_ptr (#966) * redesign ipc_shared_ptr in publisher process Signed-off-by: sykwer <sykwer@gmail.com> * fix unit tests for publisher process side Signed-off-by: sykwer <sykwer@gmail.com> * redesign ipc_shared_ptr in subscriber process Signed-off-by: sykwer <sykwer@gm…
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.
Description
Implement add_on_set_parameters_callback() and remove_on_set_parameters_callback() for agnocast::Node.
Notes
The rclcpp implementation includes an additional single-callback path in call_on_parameters_set_callbacks:
This was used by the deprecated set_on_parameters_set_callback(), which was removed in ROS 2 Humble (ros2/rclcpp#1199). Since Agnocast does not support this deprecated API, we only implement the container-based multiple callback mechanism.
Related links
add_on_set_parameters_callback
https://github.com/ros2/rclcpp/blob/c42bb23a524059208304ada51055c0c88b838b46/rclcpp/src/rclcpp/node_interfaces/node_parameters.cpp#L987
remove_on_set_parameters_callback
https://github.com/ros2/rclcpp/blob/c42bb23a524059208304ada51055c0c88b838b46/rclcpp/src/rclcpp/node_interfaces/node_parameters.cpp#L967
call_on_parameters_set_callbacks
https://github.com/ros2/rclcpp/blob/c42bb23a524059208304ada51055c0c88b838b46/rclcpp/src/rclcpp/node_interfaces/node_parameters.cpp#L269
How was this PR tested?
bash scripts/e2e_test_1to1_with_ros2sub(required)bash scripts/e2e_test_2to2(required)Notes for reviewers
Version Update Label (Required)
Please add exactly one of the following labels to this PR:
need-major-update: User API breaking changesneed-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility)need-patch-update: Bug fixes and other changesImportant notes:
need-major-updateorneed-minor-update, please include this in the PR title as well.fix(foo)[needs major version update]: barorfeat(baz)[needs minor version update]: quxrun-build-testlabel. The PR can only be merged after the build tests pass.See CONTRIBUTING.md for detailed versioning rules.