如果在项目中同时添加AT组件和MQTT组件,那AT组件只负责联网吗?也就是如果要实现MQTT协议发送数据,AT组件直接使用官方提供的sample就可以吗?自己在应用层还需要添加吗?
AT组件是AT协议的通讯组件,MQTT软件包是在TCP/IP基础上实现MQTT通讯,如果你要理解这二者的关系则是
用户<—->AT组件<—->MQtt协议包<——>TCP/IP协议包<——>网络链接层
|<————net组件————————>|
这样就可以用AT命令发送数据/接受应答数据。
如果将net组件改成蓝牙、WIFI、Cat1、Nb_lot就可以实现这些模块的通讯功能。
官方提供的sample只是简单的通过finsh组件的msh模式测试对应的AT组件和IP模块,
at_exec_cmd(resp, “AT”);//AT测试
result = at_exec_cmd(resp, “AT+CIFSR”);//返回AT模块的IP地址
如果你想通过msh模式下与AT模块进行通讯,可以用at_cli.c文件中的at函数
具体执行如下:
上图中的AT模块挂在uart1,console控制台对应的串口是uart0
实现的AT client功能
如果你要做项目,则需要自己建立线程来执行对应的操作。
感谢!