# 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()函数)。