CSR867x — 广播数据设置接口以及如何添加厂商数据
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XX 作 者:ZHS(文化人)
XX 联系方式:文章末尾Chat快问
XX 版权声明:原创文章,欢迎评论和转载~转载时能告诉我一声就最好了
XX 要说的话:作者水平有限,难免有不足之处,恳请指正!
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
写在前面:CSR8670广播时是怎么填充广播数据呢?又是如何实现添加自定义厂商数据呢?经过与别的协议栈对比,在工程中找到了相应的接口;
一、广播数据设置接口:
sink_ble_gap.c文件中
sinkBleGapReadLocalNameComplete();
sink_ble_advertising.c文件中
bleSetupAdvertisingData();
我们选两个函数,看下:
函数1:setupFlagAdData()
函数2:setupLocalNameAdvertisingData()
注意:return返回的是广播包数据净荷的长度
ad_data[ad_index]:当前AD Structure长度,包含type和data;
AD_DATA_HEADER_SIZE:广播数据头的长度,包含length和type;
ad_index:当前AD Structure之前的数据净荷的长度;
因为多算了一次type,所以减1;
二、添加自定义厂商数据:
仿照上面的函数,自己完成一个接口就可以了;
setupManufacturerDataAdData()