完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
接触RT-thread以来,一直觉得RT-thread是一个不错的操作系统,然而在项目中使用时就遇到诸多难题, 比如现在客户提出的一个要求,就让我很难理解。 要求是: 使用MQTT协议进行数据交互,但是数据格式要使用JSON。 但是现在使用AT组件对EC200S进行控制,而AT命令中对数据的\r\n很敏感,这就为我的数据解析带来困难,因为从平台下发的数据很多时候不知道长度,也不知道数据中有多少\r\n,目前只能希望Mqtt软件包能够弥补这个缺点。 还有一个问题就是平台随时会下发命令,我如何去实时接收这些数据呢? 希望有做项目的朋友们能给点建议。十分感谢! |
|
相关推荐
5个回答
|
|
如果用at组件,配合sal的话,很好解决的,可以用mqtt软件包(不依赖模块的mqtt命令)
个人觉得kawaii-mqtt比较好用,有mqtt软件包,服务器发回的数据直接在回调函数处理就行,无论服务器发的是什么 要解析json的话要稍微麻烦一点,但json也有软件包 |
|
|
|
解析没有什么问题,主要是实时接收的事情,很难搞。
|
|
|
|
如果用mqtt软件包就不需要考虑这些东西,有回调函数,软件包收到数据就调用回调函数
如果想用模块的at mqtt指令,就得自己写接收发送函数,添加相关的接收urc做处理 |
|
|
|
使用AT Client,配合SAL(Socket Abstract Layer),实现TCP/IP的稳定连接;
使用Kawaii-MQTT软件包,实现MQTT Client; 调用mqtt_connect, mqtt_subscribe实现MQTT Client连接远程MQTT Broker; Kawaii-MQTT中有丰富的回调函数,如上线回调、收到订阅主题消息的回调等。在订阅回调函数中,收到数据后,写数据到Ringbuffer,发信号量/事件(视你需求而定); 新建一个线程,读取ringbuffer数据,完成数据解析。RT-Thread也有对应的cjson软件包帮助处理。 上述流程,我除了5没有做之外,其他都很轻松能完成。 |
|
|
|
EC200 AT指令模式接收数据应该有string和hex两种方式,用string方式会存在解析rn会出问题,但是用hex模式就可以避免这种问题。
建议使用模块自带的mqtt功能,做产品的话多一个软件包会增加可能出错的点,特别是网络相关的,吃过大亏 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
788 浏览 0 评论
4271 浏览 0 评论
如何使用python调起UDE STK5.2进行下载自动化下载呢?
2529 浏览 0 评论
开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束
2929 浏览 0 评论
获奖公布!2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
31479 浏览 11 评论
72913 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 11:04 , Processed in 0.744086 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号