21 Commits

Author SHA1 Message Date
ATT_POWER
fe409b822b
example: add recordplayback example and remove unnecessary codes in echo plugin (#72)
* example: add recordplayback example about ros msg

- Optimize configuration files and script naming
- Modify EchoPlugin, remove unnecessary checks

* fix: remove unused code and unnecessary dependencies

---------

Co-authored-by: yuguanlin <yuguanlin@agibot.com>
2024-11-01 17:35:07 +08:00
ATT_POWER
b2fd9cb78b
refactor(tools): Restructure bagtrans tool and integrate into aimrt_cli (#68)
* CI: change build worlflow image tag from v20240927 to latest

* refactor(tools): Restructure bagtrans tool and integrate into aimrt_cli

- Integrate bagtrans functionality into aimrt_cli
- Update CMakeLists.txt and documentation to reflect these changes

* choro: format the code

* choro: change the document

* choro: remove the bagtrans options

---------

Co-authored-by: yuguanlin <yuguanlin@agibot.com>
2024-10-31 21:46:25 +08:00
wtudio
acf57080c2
feat: update log examples & doc (#69) 2024-10-31 21:26:55 +08:00
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
han J
929a105bd0
log format (#57)
* log format

* Modify the logic of log formatting output

* Remove redundant parts.

* log format:

-Improve the log configuration documentation

-More flexible log formatting output structure

* log fotmat

- Use std::string instead of fmt to achieve formatted output,;

- add unit test

- add exception checking.

* Add estimated_size  & optimize unit tests

---------

Co-authored-by: hanjun <hanjun@agibot.com>
2024-10-31 19:39:35 +08:00
wtudio
a1fda52c37
fix: misc adjustments (#66)
* fix: misc

* doc: update misc
2024-10-31 17:57:47 +08:00
zhangyi1357
56ca4d438e
docs: update rpc documentation to clarify package name requirement (#65)
Remove outdated note about file generation failure due to missing package name in proto files to enhance clarity and usability for developers.

Co-authored-by: zhangyi <zhangyi@agibot.com>
2024-10-31 11:22:46 +08:00
zhangyi1357
328a99512b
docs: add aimrt_py rpc context (#58)
* docs: clarify context type enumeration description

Enhance the explanation of the `aimrt_channel_context_type_t` enumeration to clearly indicate its role in defining publisher and subscriber contexts. This improves understanding for users implementing the interface.

* feat: enhance RpcContext with additional features

Add new methods for managing context metadata, timeout settings, and target addresses. Improve logging to provide better visibility into RPC calls and responses, aiding in debugging and performance monitoring.

* feat: enhance RPC context logging with metadata

Add the ability to log metadata in RPC calls, improving traceability and debugging. Update the client to set a metadata value and enhance server logging to print out all metadata associated with requests.

* feat: add RPC context types to Python bindings

Introduce enum values for client and server RPC context types in Python bindings to enhance type support and improve clarity in interactions with RPC features.
2024-10-28 21:10:22 +08:00
zhangyi1357
0b2427dc75
docs: add aimrt_py channel context (#56)
* feat: set default serialization type for context reference

Ensure that the serialization type defaults to "pb" when it is not explicitly set in the context reference. This improves compatibility and prevents potential errors related to serialization handling.

* docs: enhance message publishing and context usage documentation

Clarify the usage of the `Publish` function by adding context and serialization options. Introduce `Context` and `ContextRef` details for improved understanding. Adjust subscriber callback signatures and remove deprecated notes for a cleaner documentation experience.

* feat: enhance event publishing with context and serialization options

Add support for publishing events with various configurations, including without context, with JSON serialization, and with context references. Improve logging for better debugging and clarity in event handling.

* feat: add enumeration for channel context types

Introduce enumeration for `aimrt_channel_context_type_t` to better categorize channel contexts, improving readability and usability in Python bindings.

* docs: clarify context type description

Enhance documentation by simplifying the explanation of the context type and explicitly defining the associated enumeration values for better understanding.
2024-10-28 20:27:00 +08:00
ATT_POWER
42ba5be784
fix: bagtrans options bugs (#49)
* CI: change build worlflow image tag from v20240927 to latest

* fix:  fix bagtrans tool support

- Add AIMRT_BUILD_BAGTRANS option in CMakeLists.txt
- Update build.bat, build.sh, test.bat and test.sh scripts to include bagtrans build option
- Modify CMakeLists.txt in bagtrans directory to simplify build logic
- Remove autopep8 dependency from bagtrans/requirements.txt

* format : format the code

* fix: Turn off the bagtrans compilation option on Windows

* feat(tools): Update bagtrans tool build method

- Change the build method of bagtrans tool from PyInstaller to using the build module to generate wheel files
- Update CMakeLists.txt and setup.py files to adapt to the new build method
- Update release notes, adding new information about the bagtrans tool

* fix: format

---------

Co-authored-by: yuguanlin <yuguanlin@agibot.com>
2024-10-24 21:14:13 +08:00
han J
25c8b2e5bb
Ros2 plugin custom naming (#46)
* add remapping function for ros2 plugin

* Optimize the logical structure of remapping.

* Optimize the remapping's  logic

* Simplify details

* - update the ROS2 plugin documentation to correct the description of the remapping rules and optimize examples;

- enhance the Ros2RpcBackend class by adding exception handling logic to the GetRemappedFuncName method;

- add a function initialization report feature;

- write unit test cases for GetRemappedFuncName covering various scenarios.

* Update the table format in the documentation, correcting the regular expression capturing groups for function names

* Decrease Redundancy

* simplify the function : GetRealRosFuncName

* Optimized the way of obtaining the message type, reducing unnecessary string constructions.

---------

Co-authored-by: hanjun <hanjun@agibot.com>
2024-10-24 19:31:41 +08:00
ATT_POWER
9d148527a4
feat: add 'trans' command to aimrt_cli for converting aimrtbag to rosbag (#39)
* feat: support translate aimrtbag to rosbag

* feat: 添加数据包转换工具

* CI: change build worlflow image tag from v20240927 to latest

* feat: now support transfer aimrtbag to rosbag

* feat: Adjust the build and installation process of aimrt_cli , copy ROS2 plugin proto files when building aimrt_cli

* chore: format the code style

* chore: format code

* feat: Differentiate between aimrt-cli and transbag, make transbag an independent tool; add documentation for transbag

* chore: Update CI trigger from label "ci ready" to "ci"

* chore: format code

* choro: feat:  compile bagtrans module only when bagrecord and ros2 plugin are enabled; improve documentation

* choro: Modify activation method for bagtrans

---------

Co-authored-by: yuguanlin <yuguanlin@agibot.com>
2024-10-18 20:19:00 +08:00
zhangyi1357
e2c70c2c07
docs: add package specification and generation note for proto files (#40)
Clarify the requirement for specifying a package name in proto files to ensure successful RPC code generation in Python.
2024-10-18 19:04:09 +08:00
zhangyi1357
1186d81a07
feat: add aimrt_py rpc benchmark example (#37)
* feat: add python benchmark example and update dependencies

Introduce an aimrt_py benchmark example for Python testing. Replace boost dependency with the standalone asio library to reduce overall dependencies and enhance configuration options for zenoh and mqtt.

* feat: add RPC benchmark client and configuration

Introduce a new benchmark client module and accompanying scripts to facilitate testing and performance measurement of RPC services. Include configuration for parallel execution and adjustable benchmarking parameters.

* docs: add benchmark process for protobuf RPC

Include detailed instructions for reproducing the crash issue and running benchmarks effectively to streamline troubleshooting and performance evaluation.

* chore: include string header

Add the string header to enable potential future string manipulations within the RPC handling code. This sets the stage for improved functionality and cleaner code integration down the line.

* feat: enhance benchmark reporting and logging

Improve performance benchmarking by logging detailed results, including latency metrics and error rates. Ensure more precise measurements by using microseconds for task duration and substituting print statements with structured logging.

* chore: update benchmark configurations for clarity and accuracy

Refine the benchmark plans to provide clearer settings. Adjust parameters for the fixed-frequency mode to ensure more relevant testing scenarios.

* chore: add script and config files for HTTP server examples

Include new symbolic links for server configuration and application scripts to streamline example setup and ensure consistency across projects.

* docs: update README for better clarity on python RPC benchmark setup

Enhance the README to provide a clearer guide on using the protobuf RPC benchmark example, including setup instructions, core files, and configuration details. This improves user experience and facilitates easier implementation for developers.

* style: correct casing in module name

Standardize the module name casing for improved consistency and readability in the RPC server application.

* docs: add pb_rpc_bench example link

Include the link to the pb_rpc_bench example for better accessibility and completeness in the tutorial.

* style: clean up code formatting

Remove unnecessary blank lines to improve readability in the benchmark RPC client module.

* docs: modify aimrt_py rpc release note
2024-10-18 16:33:58 +08:00
wtudio
fabac84bb0
feat: Allow custom RPC names for some plugins (#33)
* Allow custom RPC names for some plugins
2024-10-17 16:39:35 +08:00
han J
5b85a23678
Zenoh update to 1.0.0.11 (#31)
* Upgrade zenoh to version 1.0.0.11

* Update the download link for the zenoh-c library to version 1.0.0.11 and adjust some related URL configurations.

---------

Co-authored-by: hanjun <hanjun@agibot.com>
2024-10-16 19:39:38 +08:00
zhangyi1357
036bd5bef9
feat: add aimrt_py benchmark publisher and subscriber applications (#28)
* feat: add aimrt_py benchmark publisher and subscriber applications

Introduce new benchmark publisher and subscriber modules, enabling performance testing with custom configuration. Includes necessary YAML configuration files and scripts for simulation of message publishing and receiving.

* style: correct message size formatting

Update the log message to use "bytes" for clarity and consistency in reporting metrics.

* feat: add python benchmark example and update dependencies

Introduce an aimrt_py benchmark example for Python testing. Replace boost dependency with the standalone asio library to reduce overall dependencies and enhance configuration options for zenoh and mqtt.

* feat: add aimrt_py channel benchmark example

Introduce a new benchmark example for aimrt_py to enhance Python benchmarking capabilities and provide clearer insights into performance metrics.

* format code

* style: format loss rate output

Remove the percentage symbol from the loss rate display for a cleaner presentation.

* docs: update release notes for v0.9.0

Clarify new features, config options, and dependency changes, including the addition of the aimrt_py channel benchmark example and removal of boost dependencies in favor of asio.

* docs: add benchmark example to Python interfaces section

Include a new link for the pb_chn_bench example to enhance the documentation and provide users with more comprehensive usage scenarios.

* docs: add README for protobuf channel benchmark example

Provide instructions on setting up and running a Python channel benchmark using protobuf with HTTP backend. Include details on core modules, configuration, and execution steps to enhance usability and understanding.

* docs: update installation instructions to link to quick start guide

Enhance user experience by providing direct access to the installation guide for the `aimrt_py` package, improving clarity and reducing search time for new users.

* docs: correct grpc reference in README

Update the section title to accurately reflect the protocol being used, enhancing clarity for users.
2024-10-16 14:03:05 +08:00
wtudio
69ccda4268
fix iceoryx plugin example (#25) 2024-10-14 18:48:07 +08:00
zhangyi1357
793418f0a2 update 2024-10-14 09:45:07 +08:00
zhangyi1357
7d5fe68319 update 2024-09-30 17:22:32 +08:00
wtudio
d2d7b0495d update v0.8.0 2024-09-23 16:01:31 +08:00