1.当BC26结合MQTT进行访问时候,在bc26_socket_send中有一段代码是这样子的
如果单独使用是不会出问题的,但是一旦开启定时检验BC26的联网状态,也就是
会导致在切换线程的时候也就是AT+QISEND发送完毕,已经返回>的时候切换到状态监测发出AT+CEREG代码,导致错乱现象。另外监测联网状态由于BC26的特殊性,DNS解析要超过60S,如果在OTA过程中不断DNS解析,那是不合理的!而且很容易出错。
2.在AT_DEVICE结合DFS+SAL模式下,460800波特率丢包率很高!貌似跟波特率还没多大关系,丢包率就是很高,经常会识别不到AT_URC的内容。client_parse的优先级已经调到最高级别,理论上接收数据都会相应进入URC对应的FUNC,但是经过试验会出现丢包现象
特别是在BC26,中bc26_socket_send这一段!接收不到event,不知道是不是编写者也发现这个情况,源码中的延时也是设定为10S这么长!这个BUG很麻烦!接收不到数据的时候回引发错误判断进入ERROR
非常感谢您的回复。是的,但是实际应用通过串口确实看到>后不是发送数据,而是直接问询状态的情况,所以我也很纳闷。后面我就自己多加了个事件处理就基本OK了。460800在普通发送情况下确实不需要,但是在OTA模式下,如果使用过小的串口波特率,则下载速度特别慢。而且就算 460800 ,BC26也不跟WIFI,EC20那种一样。只能每个包最大512,整体缓存1460个数据,导致实测一秒只能下载1800左右B,对OTA模式非常不友好,如果改小,就更加慢了
通信速度的瓶颈不是串口波特率,提高波特率对于通信速度提升效果微乎其微,带来的弊端是串口易出现误码,造成工作不稳定!可能是不划算的!