70 AT组件连接BC26并使用Webclient软件包解析数据错误。URC问题

发布于 2020-07-24 14:49:08

AT组件的URC数据收到回车换行就结束了。但http通信时候一条数据中如果包含回车换行导致解析数据错误。这应该怎么解决呢。是我配置使用问题么?

具体情况是:移远的bc26 http通信返回数据如下图
54c9d44ab5801bfc30f45691dfaba6b.png
urc返回的数据大约是200多字节,但进入到at_socket_bc26.c中的urc_recv_func函数中,它只会收到第一个回车换行之前的数据长度如下图,大约30多字节。756aafbc124b5da173f58b004c085cb.png
但urc_recv_func函数再往下走。走到解析+qiurc的时候会解析成收到200多字节image.png
继续走到at_client_obj_recv的时候 传入的参数字符串长度只有30多,而size参数传入比实际的长。导致解析错误。29b95cf6d4700ec6e6e9eed22d663cb.png

这该如何解决呢?

结帖:绕了很多弯路。最后发现是移远BC26通信返回格式是可配的。image.png
bc26软件包认为数据返回是这个格式
image.png

但如果没有配置view_mode数据返回可能是这个格式
image.png

这样会导致进入urc数据解析函数的时候 http/1.1 200不会被解析。webclient则认为包头解析失败,导致认为http通信失败。感谢两位给予的帮助。JQRR_7669专家的回答引导我走到正确的方向。
注意:采纳的答案只是为了给分,正确的解决方案在结帖这。

查看更多

关注者
0
被浏览
403
JQRR_7669
JQRR_7669 认证专家 2020-07-24

像是串口接收有丢数据,串口fifo配置略大些,主频高些

3 个回答
xiangxistu
xiangxistu 2020-07-24

每一段以 \r\n结尾的数据,均会先判断是不是 URC 数据;
这些不是 URC 的数据也没有被丢弃,只是放在对应的 at_client 中了,在后续仍然是可以使用的。

200多个字节不是一次性读完的。至于你说解析错误,是 sync receive data这里的错误吗?

李子成
李子成 2020-07-24

image.png

撰写答案

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

发布
问题

分享
好友

手机
浏览

扫码手机浏览