.. | ||
eg91 | ||
README.md |
1. AT指令差异化代码适配
1.1. 概述
由于不同厂家的移动网络模块的AT指令有较大差异,暂时使用独立的文件对AT指令和相关逻辑进行维护。架构设计上满足任意芯片芯片可适配任意的AT指令集,所以独立目录管理,仅仅源码独立目录存放,使用时和依赖AT指令集接口的模块源码一起编译成目标文件。
1.2. 添加新AT指令集方法:
通过在芯片的工具链配置cmake文件添加路径来选择使用哪个模块(或者版本)的AT指令集源码,实现任意平台可配置任意的AT指令集进行编译链接。
以./at-command/eg91为例:
- 在此目录新建一个目录,例如“eg91”,存放新模块或者新指令集的代码;
- 创建AT指令相关接口类文件,参考eg91目录创建一一对应的cpp文件;
- 创建名为at-command.cmake的配置文件,负责把源码加入到PeripheralManager模块,如存在多版本继承可构建多个源码目录。
1.3. 项目构建时选择AT指令集方法
#参考./333DE/build/cmake/toolchain/sigmastart_333DE.toolchain.cmake
set(AT_COMMAND_PATH "${CMAKE_SOURCE_DIR}/at-command/eg91")
相关模块会使用上述变量(AT_COMMAND_PATH)把该路径下的源码加入到依赖文件集合里面进行项目构建,在编译时链接该目录的所有源码文件。 例如:./component/PeripheralManager/CMakeLists.txt
# At command src code.
string(COMPARE EQUAL "${AT_COMMAND_PATH}" "" value)
message("The at-command src code path is ${AT_COMMAND_PATH}.")
if (value EQUAL 0) #变量被设置了
message("build at-command src code.")
include(${AT_COMMAND_PATH}/at-command.cmake)
endif()
1.4. 项目客制化实现
at-command目录源码为SifarSDK的公版AT指令集源码,项目在AT指令代码需要修改时,可继承并重载相关函数即可,无需也禁止因为项目需求而修改at-command目录下的源码文件。