接触RT-thread以来,一直觉得RT-thread是一个不错的操作系统,然而在项目中使用时就遇到诸多难题,
比如现在客户提出的一个要求,就让我很难理解。
要求是:
使用MQTT协议进行数据交互,但是数据格式要使用JSON。
在项目中使用了EC200S,内部自带了MQTT协议,如果是裸机,当然很好使用。
但是现在使用AT组件对EC200S进行控制,而AT命令中对数据的\r\n
很敏感,这就为我的数据解析带来困难,因为从平台下发的数据很多时候不知道长度,也不知道数据中有多少\r\n
,目前只能希望Mqtt软件包能够弥补这个缺点。
还有一个问题就是平台随时会下发命令,我如何去实时接收这些数据呢?
希望有做项目的朋友们能给点建议。十分感谢!
如果用at组件,配合sal的话,很好解决的,可以用mqtt软件包(不依赖模块的mqtt命令)
个人觉得kawaii-mqtt比较好用,有mqtt软件包,服务器发回的数据直接在回调函数处理就行,无论服务器发的是什么
要解析json的话要稍微麻烦一点,但json也有软件包
上述流程,我除了5没有做之外,其他都很轻松能完成。
另外,使用MQTT软件包的过程,我在今年技术大会上做了一个汇报,你可以参考。在RTT下完成一个MQTT Client,真的就是点击几下鼠标的事情,很轻松。
MQTT客户端案例演示RT-Thread基于抢占式优先级的RTOS
解析没有什么问题,主要是实时接收的事情,很难搞。
@mochen 如果用mqtt软件包就不需要考虑这些东西,有回调函数,软件包收到数据就调用回调函数
如果想用模块的at mqtt指令,就得自己写接收发送函数,添加相关的接收urc做处理
这个等待我研究MQTT软件包后再看看,思考了一下,实在不行就把裸机的那部分拿来用,就是底层驱动需要费点手脚。