1.Apollo 8.0 配置参数读取源码解析:以 Planning 模块为例
Apollo 8.0 配置参数读取源码解析:以 Planning 模块为例
目录
在本篇讨论中,源码我们将剖析 Apollo 8.0 配置参数的源码读取过程,以 Planning 模块为例进行深入探讨。源码
1. 配置参数分类
了解 Apollo 中各模块的源码启动机制,主要通过主文件 mainboard 编译生成的源码cmake添加源码目录可执行文件以及动态链接库的加载实现。Planning 模块的源码eclipse导入struts源码 DAG 文件 (apollo/modules/planning/dag/planning.dag) 指定了模块的动态链接库和单个组件 PlanningComponent 的配置。
配置参数分为两类:基于 ProtoBuf 的源码参数和 gflags 命令行参数。Planning 模块的源码 ProtoBuf 配置文件为 (apollo/modules/planning/conf/planning_config.pb.txt),与之对应的源码 ProtoBuf 接口文件为 (apollo/modules/planning/proto/planning_config.proto)。而 gflags 命令行参数配置文件为 (apollo/modules/planning/conf/planning.conf)。源码
1.1 ProtoBuf 参数
ProtoBuf 参数通过 module_config.components.config.config_file_path 指定配置文件路径,源码文件中的源码参数在组件初始化时被读入 ProtoBuf 对象。
1.2 gflags 命令行参数
gflags 参数通过 module_config.components.config.flag_file_path 指定,源码买卖股票公式源码文件中的源码命令行参数在初始化时由 gflags 解析。
2. 配置参数读取流程
主入口文件 (apollo/cyber/mainboard/mainboard.cc) 的源码 main 函数负责加载 DAG 文件并启动模块。解析命令行参数、读取 DAG 文件、直播网站php源码执行模块加载逻辑。
2.1 加载 DAG 文件
解析命令行参数形成 ModuleArgument,用于存储参数信息。执行主流程时,linux源码编译安装ModuleController 负责加载所有模块,并处理模块组件的注册、实例化和初始化。
2.2 读取配置参数
ModuleController 通过 LoadModule 方法读取模块配置,具体步骤涉及读取 ProtoBuf 参数和 gflags 命令行参数。
3. 总结
本文通过分析 Planning 模块的配置读取过程,清晰展示了 Apollo 8.0 中配置参数的完整读取流程。通过理解这一过程,开发者能够更深入地掌握 Apollo 的模块启动和配置机制。