buhuiming / BleCore

Android蓝牙低功耗(BLE)快速开发框架
172 stars 32 forks source link

关于分包 #10

Closed MinatoHikari closed 1 year ago

MinatoHikari commented 1 year ago

是否可以增加一个包发送前的hook来处理每一个包的数据结构? 参数可以是发送的包整id和第几个分包 这样更方便实现分包协议

buhuiming commented 1 year ago

分包是业务层处理,sdk不处理分包、不处理封包和解包

MinatoHikari commented 1 year ago

分包是业务层处理,sdk不处理分包、不处理封包和解包

问题是sdk也会根据长度截断数据啊,业务层封装如果要知道是第几包如何处理,只能自己按20字节重新分包发了 这样sdk的分包不就鸡肋了

buhuiming commented 1 year ago

dk对数据包的长度会根据mtu的范围进行拦截,mtu范围通常是23到517字节。业务层分包后要清楚第几包,可以在分包的时候在协议头中增加字段,例如包编号、包标识等。 假如mtu设置为500,那每个发送的数据包长度为最大为497(mtu长度包含了ATT的opcode一个字节以及ATT的handle2个字节)。 下图为发送的数据包的协议格式(参考),业务层在做封包、解包以及组包,可以通过协议中包标识和包编码进行解析。 image