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_modules
和pkgs[i].disable_modules
用于配置要加载/屏蔽的模块,其生效逻辑如下:如果没有配置
enable_modules
或disable_modules
,则加载全部模块;如果仅配置了
enable_modules
,则加载enable_modules
中的所有模块;如果仅配置了
disable_modules
,则加载除了disable_modules
中的其他所有模块;如果同时配置了
enable_modules
和disable_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