ATT_POWER 7e4b5460c2
feat: add a new plugin: echo (#51)
* CI: change build worlflow image tag from v20240927 to latest

* feat/plugins: Add echo plugin

- Add echo plugin for message pass-through and logging
- Implement loading and management of different types of support packages
- Add support for multi-threaded executors
- Optimize log initialization and management logic
- Add support for YAML configuration files

* build: Update build scripts and enable Echo plugin

- Add build options for Echo plugin in build.bat, build.sh, test.bat, and test.sh scripts
- Optimize JSON serialization error handling and log output in echo_plugin.cc

* chore: Add Echo plugin related documentation

- Update release notes with Echo plugin feature description
- Add Echo plugin usage documentation
- Add Echo plugin example configuration and running instructions

* chore: format the code
- Add thread safety checks for Echo executor
- Optimize code structure to improve readability and maintainability

* choro: restructure JSON parsing logic

- Replace json-c with jsoncpp library
- Rewrite json_to_yaml function to improve code readability and robustness

* choro: adapt CMakeLists for Windows compatibility

* choro : turn off the echo plugin in windows

* feat(echo_plugin): Support YAML format message echo

- Modify GetYamlCpp.cmake to enable yaml-cpp installation
- Add yaml_convert.h and yaml_convert_test.cc in ros2_util
- Update echo_plugin to support YAML format message serialization and deserialization
- Add YAML serialization type support in aimrt_module_ros2_interface

* choro: Fix documentation

* choro : fix format and delete the extra support for echo about pb message type

* choro : format

* choro: add ros2 example for echo plugin and delete useless code

* choro: rename the echo example shell

* choro: fix some mistake

* chore: refactor type support package loader and migrate to core module

- Migrate TypeSupportPkgLoader from echo_plugin and record_playback_plugin to core/util directory
- Optimize log output, replace printf with AIMRT_INFO

* choro: replace the aimrt::common::util::AimRTException() to AIMRT_ASSERT

---------

Co-authored-by: yuguanlin <yuguanlin@agibot.com>
2024-10-31 20:03:42 +08:00

150 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Tutorials
## 快速开始
通过此部分文档,您可以了解到如何引用、安装 AimRT并通过创建一个`Hello World`程序来快速体验 AimRT。
```{toctree}
:maxdepth: 1
quick_start/installation_cpp.md
quick_start/installation_py.md
quick_start/helloworld_cpp.md
quick_start/helloworld_py.md
```
## 概念
通过此部分文档,您可以了解到 AimRT 中的一些核心概念和设计思想。
```{toctree}
:maxdepth: 1
concepts/cmake.md
concepts/concepts.md
concepts/core_design.md
concepts/interface.md
```
## CPP接口文档
您可以通过以下文档了解 C++ 接口的用法。
```{toctree}
:maxdepth: 1
interface_cpp/common.md
interface_cpp/runtime.md
interface_cpp/core_ref.md
interface_cpp/module_base.md
interface_cpp/configurator.md
interface_cpp/executor.md
interface_cpp/logger.md
interface_cpp/parameter.md
interface_cpp/channel.md
interface_cpp/rpc.md
```
## Python接口文档
您可以通过以下文档了解 Python 接口的用法。
```{toctree}
:maxdepth: 1
interface_py/common.md
interface_py/runtime.md
interface_py/core_ref.md
interface_py/module_base.md
interface_py/configurator.md
interface_py/executor.md
interface_py/logger.md
interface_py/channel.md
interface_py/rpc.md
```
## 配置文档
您可以通过以下文档了解各个组件详细的配置方法。
```{toctree}
:maxdepth: 1
cfg/common.md
cfg/module.md
cfg/configurator.md
cfg/plugin.md
cfg/main_thread.md
cfg/guard_thread.md
cfg/executor.md
cfg/log.md
cfg/channel.md
cfg/rpc.md
```
## 插件
AimRT 提供了大量官方插件,您可以通过以下文档了解各个插件的功能和配置方法。
```{toctree}
:maxdepth: 1
plugins/net_plugin.md
plugins/mqtt_plugin.md
plugins/ros2_plugin.md
plugins/parameter_plugin.md
plugins/time_manipulator_plugin.md
plugins/log_control_plugin.md
plugins/opentelemetry_plugin.md
plugins/record_playback_plugin.md
plugins/zenoh_plugin.md
plugins/iceoryx_plugin.md
plugins/grpc_plugin.md
plugins/echo_plugin.md
```
如果开发者想定制开发自己的插件,可以参考以下文档。
```{toctree}
:maxdepth: 1
plugins/how_to_dev_plugin.md
```
## CLI工具
AimRT 提供了一个命令行工具,可以帮助开发者快速完成一些操作。
```{toctree}
:maxdepth: 1
cli_tool/cli_tool.md
cli_tool/gen_prj.md
cli_tool/bagtrans_tool.md
```
## 示例
AimRT 提供了详细且全面的示例,开发者可以基于示例进行深入学习。
```{toctree}
:maxdepth: 1
examples/examples_cpp.md
examples/examples_py.md
examples/examples_plugins.md
```
## 其他
```{toctree}
:maxdepth: 1
misc/perfomance.md
misc/questions.md
```