20 AT_DEVICE中BC26各项BUG反馈

发布于 2020-11-19 19:46:32

1.当BC26结合MQTT进行访问时候,在bc26_socket_send中有一段代码是这样子的
image.png
如果单独使用是不会出问题的,但是一旦开启定时检验BC26的联网状态,也就是
image.png
image.png
会导致在切换线程的时候也就是AT+QISEND发送完毕,已经返回>的时候切换到状态监测发出AT+CEREG代码,导致错乱现象。另外监测联网状态由于BC26的特殊性,DNS解析要超过60S,如果在OTA过程中不断DNS解析,那是不合理的!而且很容易出错。
2.在AT_DEVICE结合DFS+SAL模式下,460800波特率丢包率很高!貌似跟波特率还没多大关系,丢包率就是很高,经常会识别不到AT_URC的内容。client_parse的优先级已经调到最高级别,理论上接收数据都会相应进入URC对应的FUNC,但是经过试验会出现丢包现象image.png
特别是在BC26,中bc26_socket_send这一段!接收不到event,不知道是不是编写者也发现这个情况,源码中的延时也是设定为10S这么长!这个BUG很麻烦!接收不到数据的时候回引发错误判断进入ERROR

查看更多

关注者
0
被浏览
76
1 个回答
JQRR_7669
JQRR_7669 认证专家 2020-11-20

问题1:请注意343行有rt_mutex_take(lock, RT_WAITING_FOREVER),即在进行数据发送时client是被锁住的,其它线程再调用at_obj_exec_cmd时会被阻塞在rt_mutex_take处。

问题2:串口波特率460800,这很高,对应你的MCU要有相应处理数据的速度,不然串口会有丢数据情况发生,从而造成工作异常。BC26是IOT模块空中速率25k左右且网络延时较大,设置如此高波特率是出于什么考虑呢?

AT设备是基于串口通信而工作的,所以欲令其稳定可靠工作,首先要确保串口通信的稳定可靠。

BC26适用于低速率、低数据量、低功耗的应用场景,不适合高速率、大数据量通信应用,IOT模块网络延时较大且不确定,不适用于实时性要求高的应用场景,在数据通信较多实时性要求较高时建议使用CAT1或4G模块。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览