nt9856x/code/application/sifarsdk/at-command
2023-07-14 15:14:43 +08:00
..
eg91 add sifarsdk source code. 2023-07-14 15:14:43 +08:00
README.md add sifarsdk source code. 2023-07-14 15:14:43 +08:00

1. AT指令差异化代码适配

1.1. 概述

由于不同厂家的移动网络模块的AT指令有较大差异暂时使用独立的文件对AT指令和相关逻辑进行维护。架构设计上满足任意芯片芯片可适配任意的AT指令集所以独立目录管理仅仅源码独立目录存放使用时和依赖AT指令集接口的模块源码一起编译成目标文件。

1.2. 添加新AT指令集方法

通过在芯片的工具链配置cmake文件添加路径来选择使用哪个模块或者版本的AT指令集源码实现任意平台可配置任意的AT指令集进行编译链接。

以./at-command/eg91为例

  1. 在此目录新建一个目录例如“eg91”存放新模块或者新指令集的代码
  2. 创建AT指令相关接口类文件参考eg91目录创建一一对应的cpp文件
  3. 创建名为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目录下的源码文件。