纬图虚拟仪器论坛

 找回密码
 立即注册
搜索
查看: 6728|回复: 3

使用sniffer抓包,Slave端发送超过20个字节时抓到的Airlog就不是ATT类型了也被分包了

[复制链接]
发表于 2020-4-16 17:54:52 | 显示全部楼层 |阅读模式
我现在是从Slave端的BT向手机端发送,Slave端发送超过20个字节时抓到的Airlog就不是ATT类型了,也被分包了
QQ图片20200416175356.jpg
QQ图片20200416175420.jpg
这是我们发01 02 03......21 共21个BLE数据的Airlog,如上,抓到的包被分成20 byte + 1 byte 两包了
回复

使用道具 举报

发表于 2020-4-16 18:06:07 | 显示全部楼层
本帖最后由 lxk 于 2020-4-23 10:35 编辑

1.首先确定两边的BLE是否是一样的比如都是(4.2,BLE4.2 可以抓取到251 BYTES,最大每次。),如果是发送小于20一定的数量(与OS相关,有的100多或者200多)的数据包是不会分包的;如果只有一边是BLE4,2,另外一边不是,就可能出现分包的现象。

2.提供的解决方法是:
如果发送大数据包(N>20),建议设计整个包的方法是:包的长度是2个字节(n),数据是N ,附加一个cs(效验和2个字节),所以数据包的总长为(N+4).
接着按20个字节,分包发送,直到发完;
当收完所有数据包,把所有数据包拼在一起,然后根据校验和判断是否正确。
如果正确则发送完成,如果不正确,则申请重发。

回复 支持 反对

使用道具 举报

发表于 2020-4-17 10:08:45 | 显示全部楼层
hello 发表于 2020-4-16 18:06
1.首先确定两边的BLE是否是一样的比如都是(4.2),如果是发送大于20小于一定的数量(与OS相关,有的100多或 ...

1.   确认了,一端是蓝牙设备 原厂说是4.2的蓝牙,一端用iiPhone11(>4.2)的手机。
2.   目前我们是N+3, cs校验和是1位。(详情见附件)
回复 支持 反对

使用道具 举报

发表于 2021-8-26 10:48:56 | 显示全部楼层
Cool stuff…thanks for the post. Saved this blog!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|纬图虚拟仪器

GMT+8, 2024-12-22 12:10 , Processed in 0.450002 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表