2024-09-30 17:22:32 +08:00
|
|
|
|
# v0.9.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**重要修改**:
|
|
|
|
|
- 优化了 zenoh 插件:
|
|
|
|
|
- 添加了 zenoh rpc 后端;
|
2024-11-15 18:42:59 +08:00
|
|
|
|
- zenoh 插件支持网络通信和共享内存两种通信方式;
|
|
|
|
|
- 可以传入 zenoh 原生配置进行更丰富的配置;
|
2024-10-14 09:45:07 +08:00
|
|
|
|
- 新增了第三方库 asio,runtime::core 不再引用 boost,改为引用独立的 asio 库,以减轻依赖;
|
2024-10-31 21:46:25 +08:00
|
|
|
|
- 新增 aimrt_cli trans 命令,用于将 使用 aimrt record_playback 插件录制的 bag 文件转换为 ros2 的 bag 文件;
|
2024-10-31 20:03:42 +08:00
|
|
|
|
- 新增 Echo 插件,用于回显消息;
|
feat: add timer support based on executor's ExecuteAt (#73)
* feat: add timer module integration
Integrate the new timer module into the executor package, enhancing functionality and providing more precise timing capabilities within the system.
* feat: add timer class for periodic task scheduling
Implement a Timer class that enables users to schedule recurring tasks with configurable periods. This enhances the executor functionality by allowing more precise timing control and task management within the AimRT framework.
* refactor: replace WallTimer with aimrt::executor::Timer and enhance logging
Streamline the timer module by removing the custom WallTimer implementation in favor of the built-in aimrt::executor::Timer. Improve logging to track execution intervals, providing clearer insights into task execution frequency.
* feat: enhance timer functionality and behavior
Introduce a shortened sleep duration for task execution and add cancellation capability for timers, improving responsiveness and efficiency in managing timer events.
* feat: enhance timer functionality with flexible period handling
Refine the timer by allowing a customizable reset period, improving task scheduling accuracy, and ensuring that callbacks execute only when appropriate. This update addresses potential timing issues when the timer is reset, enhancing overall reliability in task execution.
* feat: improve timer module functionality and simplify timer creation
Enhance the timer module by updating the logging to microseconds, refactoring timer creation for improved clarity, and adjusting timing intervals for better performance and maintainability.
* feat: add utility for comparing function argument types
Introduce a new utility to compare argument types of functions, enhancing type safety and flexibility in the Timer implementation. Update Timer module to integrate this utility for improved argument type checks. Additionally, adjust timer intervals for more appropriate timing behavior.
* test: add comprehensive tests for SameArguments trait functionality
Introduce a series of tests to validate the behavior of the SameArguments trait across various function types, member functions, function objects, lambda functions, and complex argument types. This ensures compatibility and correctness in argument matching, enhancing type safety and reliability in code usage.
* style: format function definitions for clarity
Improve the readability of the TimerBase class by formatting function definitions to align with standard coding style.
Expand timer functionality to support const reference callbacks, enhancing flexibility in task management.
* style: ensure newline at end of file and tidy up CMakeLists.txt
Update formatting for consistency and readability by adding a newline at the end of the file and improving the organization of the CMakeLists.txt.
* chore: update include paths for consistency
Refactor the include statement for the same_arg_trait to follow the new directory structure, promoting better organization and maintainability.
* fix: clarify comment on task execution timing
Ensure that the executor guarantees all tasks are executed after their planned time to handle timer resets more effectively.
* refactor: simplify cancellation check in timer execution
Improve code clarity by replacing direct access of a member variable with a method call for cancellation checks. This enhances maintainability and encapsulates the cancellation logic.
* refactor: enhance timer interface to support configurable period
Revise the TimerBase and Timer classes to allow starting and resetting with a specific duration. This improves flexibility, prevents duplicate callbacks on resets, and ensures more accurate callback scheduling.
* feat: improve timer functionality and logging
Enhance the timer with more precise intervals and additional logging for better tracking of execution and reset events. Adjust execution periods for improved timing accuracy and introduce dynamic start behavior for better flow control.
* refactor: adjust timer periods for improved performance
Update timer initialization and execution intervals to enhance timing accuracy and operational efficiency.
* refactor: rename callback method for clarity
Update the timer interface to use "ExecuteTask" instead of "ExecuteCallback" for improved readability and accuracy in describing the method's purpose. Ensure that task cancellation is properly handled when auto-start is disabled.
* docs: enhance timer documentation and add usage examples
Clarify the timer interface and its functionality, including creation, scheduling, and task execution. Provide practical usage examples to improve understanding and facilitate integration into projects.
* chore: update copyright information to reflect current year and new authors
Ensure compliance with licensing requirements by revising the copyright and license details in the CMake configuration.
* fix: address potential duplicate callback executions on timer reset
Remove commented FIXME notes regarding edge case of duplicate callbacks when the timer is reset to the same time point.
* fix: adjust timer intervals for improved timing accuracy
Reduce timer intervals from seconds to milliseconds to enhance responsiveness of the timer functionality. Implement a sleep in the shutdown process to ensure all timer executor tasks complete properly before shutdown.
* refactor: simplify timer restart logic
Consolidate timer actions by removing redundant cancellation and restart statements. Adjust logging to reflect the accurate restart timing, enhancing clarity and reducing unnecessary latency.
* fix: add cancellation check in timer execution loop
Ensure that the timer's execution loop properly checks for cancellation, optimizing performance and preventing unnecessary operations when the timer is no longer needed.
* refactor: update time point calculations for accuracy
Improve the handling of time point arithmetic in the Timer class to ensure precision during execution and scheduling. This revision clarifies the time calculations, preventing potential errors in scheduling tasks.
* feat: add synchronization support to Timer class
Implement SyncWait method to allow for synchronous waiting on timer tasks, enhancing task execution control and reliability.
* refactor: streamline timer execution logging
Improve timer execution logging by incrementing the execution count directly within the log statement. Ensure the timer synchronously waits during shutdown to enhance reliability.
* feat: add SyncWait method to TimerBase for safer resource cleanup
Improve timer behavior by introducing SyncWait to ensure resources are correctly released after cancellation before the next execution point. Update timer intervals for enhanced responsiveness and logging clarity.
* feat: add timer based on executor for scheduled tasks
Introduce a new feature to facilitate scheduled task execution with an executor-based timer, enhancing the flexibility and usability of the task management capabilities.
* refactor: streamline timer initialization and assertion handling
Remove inline assertions from the TimerBase constructor and relocate assertions to the CreateTimer function, enhancing clarity and maintaining execution flow. This simplifies timer initialization while ensuring that critical checks occur before timer creation.
* refactor: simplify timer task management and logging
Improve timer initialization and task execution by streamlining start and reset processes. Enhance logging clarity by aligning messages with timepoints and ensuring the timer cancels correctly after reaching execution limits.
* docs: simplify TimerBase interface documentation
Clarify method descriptions and refine behavior explanation to enhance understanding of TimerBase functionality, particularly around the Reset and Start methods.
* refactor: optimize task forwarding in Timer constructor
Improve task handling by using std::forward to perfect-forward the task parameter, ensuring efficient movement semantics and reducing potential overhead.
---------
Co-authored-by: zhangyi <zhangyi@agibot.com>
2024-11-05 17:49:24 +08:00
|
|
|
|
- 新增了基于执行器的定时器,方便执行定时任务;
|
2024-09-30 17:22:32 +08:00
|
|
|
|
|
|
|
|
|
**次要修改**:
|
|
|
|
|
- 缩短了一些 examples 的文件路径长度;
|
2024-10-14 09:45:07 +08:00
|
|
|
|
- 优化代码结构,移动代码 src/runtime/common/net 至新位置 src/common/net;
|
|
|
|
|
- 升级 jsoncpp 至 1.9.6 版本以优化一些 cmake 问题;
|
2024-10-16 14:03:05 +08:00
|
|
|
|
- 新增了 aimrt_py channel benchmark 示例;
|
2024-10-18 16:33:58 +08:00
|
|
|
|
- 新增了 aimrt_py rpc benchmark 示例;
|
2024-10-16 19:39:38 +08:00
|
|
|
|
- iceoryx 插件在编译前先检查是否存在libacl,不存在则不进行编译;
|
2024-10-17 16:39:35 +08:00
|
|
|
|
- 提供 RPC 服务的插件现在支持指定 service name;
|
2024-10-18 16:41:25 +08:00
|
|
|
|
- 提供一键运行example的脚本,并生成测试报告;
|
2024-10-31 17:57:47 +08:00
|
|
|
|
- 修复 aimrt_py 多线程 rpc 调用 server 端概率性崩溃的问题;
|
|
|
|
|
- 为 aimrt_py 的 channel 功能提供了 Context 支持;
|
|
|
|
|
- 现在支持 install aimrt::runtime::core;
|
|
|
|
|
- 删除一些未使用的协议;
|
2024-10-31 21:26:55 +08:00
|
|
|
|
- 支持日志自定义输出格式;
|
2024-11-15 17:40:21 +08:00
|
|
|
|
- 支持日志定期主动落盘操作;
|
feat: add json and ros2 serialization support for grpc plugin (#81)
* feat: enhance gRPC content-type handling and serialization support
Improve content-type validation in gRPC request headers to support additional types, allowing for JSON serialization. Update the serialization logic to dynamically set the type based on incoming headers, ensuring better compatibility and error handling.
* feat: support ros2 service function names
Enhance service function registration to accept names starting with 'ros2:' in addition to 'pb:'. Update URL path handling and content type mappings accordingly to ensure compatibility with ROS 2 services, improving integration capabilities.
* feat: add gRPC plugin configuration and startup scripts
Introduce configuration files for the gRPC client and server plugins, allowing for easier setup and management of RPC communication. Add shell scripts to launch the client and server with the specified configurations, streamlining the development process.
* refactor: improve service function name validation and error handling
Enhance the clarity of service function name registration by separating the function name variable for improved readability. Update error messages for better guidance on valid prefixes and standardize maps for content types and serialization types. This increases maintainability and reduces the risk of errors during registration.
* refactor: streamline client option lookup and improve code clarity
Simplify the client option lookup by replacing `std::find_if` with `std::ranges::find_if`. Also, enhance readability by cleaning up comment formatting and unnecessary whitespace.
* chore: update copyright information in configuration files
Revise copyright year and licensing details to reflect the current ownership and license for the AimRT project.
* refactor: improve validation logic in options
Enhance option verification by using standard algorithms for consistency and readability. This ensures minimum thresholds for connection numbers and timer durations are respected, improving robustness in client and server configurations.
* docs: update release notes and plugin documentation
Add support for grpc plugin serialization with ros2 messages and json format, enhancing flexibility in data handling. Remove outdated protobuf-only restriction to improve compatibility and user experience.
* docs: add ros2 rpc example details and usage instructions
Expand the README to include a new section on using the grpc plugin with a ros2-based RPC interface. Provide explicit instructions on configuration, core code references, and running the server and client. Enhance the documentation to clarify the differences from the protobuf RPC example.
---------
Co-authored-by: zhangyi <zhangyi@agibot.com>
2024-11-05 11:44:25 +08:00
|
|
|
|
- grpc 插件支持 ros2 消息以及 json 序列化格式;
|
2024-11-15 18:42:59 +08:00
|
|
|
|
- mqtt 新增配置项以支持 ssl/tls 单向认证/双向认证的加密传输;
|
|
|
|
|
- mqtt 插件在broker未启动时,会自动重试异步连接, 并提供重连间隔配置项;
|
|
|
|
|
- ros2 插件支持自定义 rpc 服务名称;
|
2024-11-14 15:32:50 +08:00
|
|
|
|
- asio thread/strand 执行器现在支持是否使用 system clock;
|