v0.7.0

重要修改

  • App 模式下支持直接 create 模块;

  • 【非兼容性修改】去除 channel 的 context manager,现在可以直接 new 一个 context;

  • 【非兼容性修改】去除 rpc 的 context manager,现在可以直接 new 一个 context;

  • 【非兼容性修改】原来的协程 RPC Proxy/Service 接口重命名为 CoProxy/CoService,不再支持老命名方式;

  • 【非兼容性修改】所有的插件二进制文件都加了”aimrt_”前缀;

  • 【非兼容性修改】移除了 async_wrapper.h;

  • 【非兼容性修改】移除了 aimrt::util::Function<R(Args…)>,现在 aimrt::util::Function 仅能用于 C 接口 Function 的封装,普通场景请用 std::function;

  • 【非兼容性修改】重命名了 pkg 配置中 disable_module -> disable_modules;并新增了 enable_modules 配置。

  • 【非兼容性修改】重命名了 rpc_filter.h -> rpc_co_filter.h,重命名 RpcHandle/RpcFilter/FilterManager -> CoRpcHandle/CoRpcFilter/CoFilterManager。

  • 优化了 python 接口中 rpc context 部分,升级接口风格与 CPP 版本对齐;

  • local rpc backend 支持 timeout 功能;

  • 新增 rpc/channel 框架侧过滤器功能;

  • 新增 log_control_plugin:

    • 提供了运行时查看、修改日志等级的接口;

    • 添加了相关示例;

    • 添加了相关文档;

  • 添加了 channel publisher proxy 和 subscriber proxy,现在可以使用带类型的 proxy 发布订阅 topic;

  • 基于 sphinx 重构了文档系统;

  • 添加了 guard_thread,作为默认日志线程;

  • 移动 lcm、sm 插件至独立仓库;

  • 新增 opentelemetry_plugin:

    • 提供 rpc 和 channel 的 trace 能力;

次要修改

  • 优化了 rpc status Tostring 方法的输出;

  • 为 rpc context、channel context 添加了 Tostring 方法;

  • rpc context 现在可以设置/获取 func name;

  • ros2_plugin:

    • ros2 RPC / Channel 现在支持配置 QOS;

    • 添加了相关示例;

    • 完善了相关文档;

    • 修复了一些轻微 BUG;

  • mqtt_plugin:

    • 修复了 mqtt 插件断线重连时的一些问题;

    • mqtt rpc backend 添加指定 mqtt_client_id 的功能;

  • 修复了 RPC Server Handle 生命周期的 Bug;

  • 修复了使用 std::format 作为日志 format 方法时的乱码问题;

  • 修复了配置文件中替换环境变量的 BUG;

  • 升级 fmt 库,v9.1.0 -> v10.2.1,并将引用方式改为 header-only;

  • 升级 tbb 库,v2021.12.0-rc2 -> v2021.13.0;

  • 优化了 example 体系,简化了 example 配置;

  • 添加了一些单元测试;

  • 修改了几个代码生成插件的名称;

  • 新增 simple_thread 类型执行器;

  • 新增了打包 aimrt-py 的选项;

  • 新增了未使用配置检查功能;

  • aimrt_main 新增了指定运行时间的选项;