1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近项目上需要用到MQTT组件,看到rtthread丰富的组件,觉得非常合适。 现在用AT组件+EC20模块的方式进行socket通信,正常流程下,设备可以4G通信连接服务器了。 但是我没有看到at_socket_ec20.c对异常的处理,比如: 1.设备因为网络问题,初始阶段未完成入网的处理 我谈下我的理解 1.类似第一种处理,是否需要增加硬件相关接口,对EC20进行初始化操作 还请熟悉这方面的专家看到以后,能够解答下。 |
|
相关推荐
5个回答
|
|
硬件相关接口初始化应该和 AT 组件没什么关系,只要确保EC20 设备在初始化函数之前串口能正常运行就行,还有初始化为完成建议在应用层设置重连机制比较合适吧
现在 EC20 数据收发过程以及断开的情况,应该都是有 URC 处理吧,如果需要什么异常情况处理,可以修改 URC 处理函数来完成 |
|
|
|
感谢您的回复,我这里还有个疑问:
1,串口是在EC20模块启动之前使能了,但是EC20模块启动有一段时间,而且不能保证一次启动成功;但是我看后面数据发送的时候也都能获取到DNS,IP信息,这点跟数据手册不符,觉得很奇怪(这里AT组件未重新初始化EC20模块,但是EC20模块能继续使用,让我很疑惑) URC的处理确实有,因为我RAW原始数据调试打开了,导致接收不完整导致了异常。已经解决。 再次感谢您的答复。 |
|
|
|
at_device 软件包中的初始化只是对 EC20 设备的默认状态的设置,如检查网络连接、设备连接模式等等,期间由于设备连接或者信号差等原因可能有初始化失败的情况也正常,可以使用手动重连。至于初始化未成功也能正常连接网络获取 DNS 信息,可能是已经执行了网络相关的初始化但是后面的初始化失败,导致整理初始化失败。
|
|
|
|
发现 at cmd 很容易发生 timeout 的问题
[229527] E/at.clnt: execute command (AT+QISEND=0,0) timeout (5000 ticks)! [236593] E/at.clnt: execute command (AT+QISEND=0,40) timeout (5000 ticks)! 而,该( AT+QISEND=0,40) timeout后,如果忽略是可以继续发送数据的;而在打开 raw 时,发现,是没有 timeout 的。modem 模块是有回复 ">" 的。很不理解呀 |
|
|
|
">" 结束符比较特殊,需要设置之后才能被识别为行结束,可以调用at_set_end_sign设置,还有响应结构体中行数注意限制为 1 行,然后也可能也是命令响应时间短问题,可以注意这几个问题
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
529 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
2000 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1174 浏览 0 评论
1674 浏览 0 评论
1439 浏览 0 评论
74737 浏览 21 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 18:35 , Processed in 0.701374 second(s), Total 77, Slave 61 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号