嗨对话框,
我正在使用DA14580开发一个BLE中央设备,并将DSPS主机应用程序作为参考。
我注意到“GAPM_ADV_REPORT_IND_HANDLER”功能中,根据他们是否在其广告数据中索取DSP服务,过滤设备。
我想知道为什么如果是语句的条件是&param-> report.data [3]但不是&param-> report.data [0]。我的意思是为什么我们在这里有一个偏移量3。
if(!memcmp(&param-> report.data [3],app_dflt_addata,app_dflt_add_data_len)))
在DSPS设备应用程序中,似乎它将在偏移0中直接将宣传数据复制到缓冲区中:
cmd-> info.host.adv_data_len = app_dflt_add_data_len;
memcpy(&cmd-> info.host.addata [0],app_dflt_add_data,cmd-> info.host.adv_data_len);
非常感谢!
设备:
嗨,
广告报告中的广告数据的前3个字节包含标志。第一个字节是数据长度(0x02 - 长度本身未计入),第二个字节是数据的类型旗帜(0x01)和第三个字节包含标志(0x06)。
当您在外设中构建广告数据包时,SDK自动放置三个字节{0x02,0x01,0x06} - 您不需要考虑它。
标志数据类型八位字节位描述
0 Le Limited可发现模式
1 LE General可发现模式
2 BR / EDR不支持。
3同时le和br / edr
4同一le和br / edr同一个
5..7保留
标志设置为0x06表示
LE General可发现模式&BR / EDR不支持。
嗨mhv_dialog,
非常感谢!这有助于。