如果用户采用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文件。
关键参数解释如下: