如果用户采用yaml格式保存系统中涉及的配置参数,需要准备以下yaml文件:
用户需设置CFGMGR_ENV_PATH环境变量来指定cfgmgr_env.yaml文件路径,以便配置管理系统通过读取CFGMGR_ENV_PATH环境变量来识别yaml文件的存放位置,进而识别到保存参数的yaml文件的存放位置。
该文件用于保存系统的配置参数,格式遵循通用的yaml文件规范,即key:value键值对格式,key和value值均可修改,配置示例如下:
1 2 3 4 5 | param1:
a: 12
b: true
c: "node"
param2: 234
|
配置管理模块在解析yaml文件时,需通过CfgMgr::Get接口获取参数值。原理是根据设定的key值(冒号前的内容为key值)获取相应value值。解析示例如下,其中namespace定义请参见yaml_path.yaml配置示例)。
1 2 3 4 | /namespace/param1/a: 12
/namespace/param1/b: true
/namespace/param1/c: "node"
/namespace/param2: 234
|
如果yaml文件中保存的参数是数组形式,则需通过短横杠“-”来区分每一组参数,配置示例如下:
1 2 3 4 5 6 7 | module:
-
key1: aaa
key2: bbb
-
key1: ccc
key2: ddd
|
配置管理模块在解析yaml文件时,key值需要添加下划线及序号(从上往下,数组序号从0开始),解析示例如下:
1 2 3 4 | /namespace/module_0/key1: aaa
/namespace/module_0/key2: bbb
/namespace/module_1/key1: ccc
/namespace/module_1/key2: ddd
|
该文件用于指定参数文件param.yaml的存放路径和相关属性信息,配置示例如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | yaml_path:
- path: /etc/param.yaml
namespace: /demo
group: global
version: 1.0
- path: /etc/cfg/robot_sensor_config/${robot_type}/${robot_id}/pnc_configs/parking_params.yaml
namespace: /pnc
group: global
version: 1.0
- path: ${parameters_path}/robot_sensor_config/${robot_type}/${robot_id}/pnc_configs
namespace: /pnc
group: global
version: 1.0
|
均为固定参数名,不可修改,具体含义如下:
该文件用于配置yaml_path.yaml的存放路径和相关变量,配置示例如下:
1 2 3 4 5 6 7 8 9 10 11 | cfgmgr_env: # 固定字段,不可修改
yaml_path: # 固定字段,不可修改
- /etc/yaml/pnc_yaml_path.yaml
- /etc/yaml/fusion_yaml_path.yaml
# 以下是变量的配置举例,可按需进行增、删、改操作
robot_factory: xxxxx
robot_type: vw_magotan_1.1
robot_sensor: xxx
robot_id: LFV3A23C5J3010804
scenario: map
|
cfgmgr_env名称域下面的参数,支持用户修改,修改后需通过CfgMgr::Reload接口重新加载yaml文件。
关键参数解释如下: