2024-09-23 16:01:31 +08:00

3.7 KiB
Raw Blame History

aimrt.module

配置项概述

aimrt.module配置项主要用于配置模块的加载信息,以及模块对各个其他组件的特殊配置。这是一个可选配置项,其中的细节配置项说明如下:

节点 类型 是否可选 默认值 作用
pkgs array 可选 [] 要加载的 Pkg 动态库配置
pkgs[i].path string 必选 "" 要加载的 Pkg 动态库路径
pkgs[i].enable_modules string array 可选 [] 此动态库中要加载的模块名称,不可与 disable_modules 选项同时使用
pkgs[i].disable_modules string array 可选 [] 此动态库中要屏蔽的模块名称,不可与 enable_modules 选项同时使用
modules array 可选 [] 模块详细配置
modules[i].name string 必选 "" 模块名称
modules[i].enable bool 可选 True 是否启用
modules[i].log_lvl string 可选 ${aimrt.log.default_module_lvl} 模块日志级别
modules[i].cfg_file_path string 可选 "" 自定义模块配置文件路径

使用时请注意,在aimrt.module节点下:

  • pkg是一个数组,用于要加载的 Pkg 动态库。
    • pkgs[i].path用于配置要加载的 Pkg 动态库路径。不允许出现重复的 Pkg 路径。如果 Pkg 文件不存在AimRT 进程会抛出异常。
    • pkgs[i].enable_modulespkgs[i].disable_modules用于配置要加载/屏蔽的模块,其生效逻辑如下:
      • 如果没有配置enable_modulesdisable_modules,则加载全部模块;
      • 如果仅配置了enable_modules,则加载enable_modules中的所有模块;
      • 如果仅配置了disable_modules,则加载除了disable_modules中的其他所有模块;
      • 如果同时配置了enable_modulesdisable_modules,则加载enable_modules中的所有模块,忽略disable_modules选项,并在初始化时告警;
  • modules是一个数组,用于配置各个模块。
    • modules[i].name表示模块名称。不允许出现重复的模块名称。
    • modules[i].log_lvl用以配置模块日志等级。
      • 如果未配置此项,则默认值是aimrt.log.default_module_lvl节点所配置的值。
      • 关于可以配置的日志等级,请参考aimrt.log文档。
    • modules[i].cfg_file_path用以配置自定义模块配置文件路径,此处配置关系到 Module 接口中configurator组件config_file_path方法返回的结果,其规则如下:
      • 如果使用者配置了此项,则configurator组件的config_file_path方法将返回此处配置的字符串内容;
      • 如果使用者未配置此项,且 AimRT 框架配置文件中也不存在以该模块名称命名的根节点,则configurator组件的config_file_path方法将返回空字符串。
      • 如果使用者未配置此项,但 AimRT 框架配置文件中存在以该模块名称命名的根节点,则configurator组件的config_file_path方法将返回一个临时配置文件路径,此临时配置文件将包含 AimRT 框架配置文件该模块名称节点下的内容。

使用示例

以下是一个简单的示例:

aimrt:
  module:
    pkgs:
      - path: /path/to/libxxx_pkg.so
        enable_modules: [FooModule, BarModule]
    modules:
      - name: FooModule
        enable: True
        log_lvl: INFO
        cfg_file_path: /path/to/foo_module_cfg.yaml
      - name: BarModule
        enable: True
        log_lvl: WARN

BarModule:
  foo_key: foo_val
  bar_key: bar_val