一、源代码结构
例如ESP8266:
AT 组件流向:
业务代码→at_socket.c / at_cli.c→at_client.c→at_utils.c
at_socket.c
定位:AT 客户端核心
at_utils.c
定位:纯工具函数集合,无业务逻辑
- AT 字符串匹配、行解析、参数截取
- 字符串分割、跳过空格、查找关键字
- hex 字符串转换、内存安全处理函数
at_socket.c
定位:AT 模组网络能力封装
- 基于
at_client,把 4G/WiFi 模组的 TCP/UDP 能力包装成POSIX 标准 socket 接口 - 对接 RT‑Thread SAL 套接字抽象层,上层 MQTT/HTTP 等组件直接调用
socket()/connect()/send()/recv(),不需要手写 AT 指令 - 维护 socket 链表、接收数据包缓冲、事件通知
at_cli.c
定位:FinSH Shell 调试插件(CLI=Command‑Line Interface)依赖 RT‑Thread FinSH 组件,在控制台提供at系列调试命令:
- 例如
at send "AT+CSQ":手动向模组发送 AT 指令,直接看返回结果 - 例如
at info:查看 AT 设备运行状态
AT 设备适配层:
AT 核心框架层:
AT 扩展服务层: