adapter设计架构代码分析¶
代码分析:¶
主要文件:adapter_manager.cc, adapter_manager.h。
类AdapterManager分析:¶
Init(AdapterManagerConfig &configs)函数:根据传入的AdapterManagerConfig类,配置ros节点,包括创建Nodehandle,创建订阅或者发布话题。
Init(const std::string &adapter_config_filename)函数:根据传入的配置文件路径,通过调用Init(AdapterManagerConfig &configs)函数,配置ros节点。
Initialized()函数:返回此ros nodehandle是否已经初始化,上两个函数中有设置。
CreateTimer()函数创建一个周期timer,以一个类成员函数作为超时函数,在RTK localization函数中有使用到。
node_handle_指针,指向node handle指针,后续话题的发布都是基于此。
Enable##name()函数:创建nodehandle和topic,也就是init调用的函数。
Add##name##Callback函数:添加回调函数。name换成相应的模块名字。
observers_变量和Observe()函数://TODO
类AdapterManager使用:¶
adapter可用于创建node handle及其topic,可通过配置文件配置。
使用时只需要创建相应的配置文件(可参考/apollo/modules/perception/conf/adapter.conf,及相应的BUILD文件),
调用接口(可参考/apollo/modules/perception/perception.cc中的Init()函数)。