5 AT 命令解析框架设计
5.1 角色图

我们的解析框架是单片机端的AT命令解析框架,显然单片机是Master,4G模块是Slaver。
5.2 整体框架

1)处说明:
从串口接收到的数据,字节流。
2)处说明:
从字节流解析出完整的一帧命令,
AT+CSQ +CSQ: 17,99 OK
对应hex为 41 54 2B 43 53 51 0D 0A 2B 43 53 51 3A 20 31 37 2C 39 39 0D 0A 0D 0A 4F 4B 0D 0A
3)4)5)处说明:
API接口函数,通信,通过发送消息进行网络的打开和关闭等。
6)处说明:
通过发送指定的消息ID,进行AT命令的组帧。
7)处说明:
AT+CSQ
41 54 2B 43 53 51 0D
5.3 功能划分

整体框架设计采用驱动和协议分立的思想,分为驱动部分和协议部分。驱动部分实现控制4g模块入网,获取到ip地址;协议部分提供tcp/udp协议,mqtt协议等协议的API,供应用层调用。
如果支持TCP协议,则对外提供tcp.h,里面包含tcp协议相关的函数供用户层调用,如果提供MQTT协议支持,则对外提供mqtt.h,里面包含mqtt协议相关的函数供用户层调用。

此处实现了驱动程序与应用程序的分离,网卡驱动是驱动,应用程序是应用程序,两者分开,驱动程序之上可以是tcp 应用,也可以是mqtt 应用。