嗨,对话框中,
我正在开发一个使用DA14580的BLE中央设备,并以DSPS主机应用为参考。
我注意到在“gapm_adv_report_ind_handler”函数中,您根据设备是否在其广告数据中声明DSPS服务来过滤设备。
我想知道为什么if语句中的条件是¶m->report。数据[3]但不是¶m->报告。我的意思是为什么这里有个偏移量3。
如果(! memcmp (param - >报告。数据[3]、APP_DFLT_ADV_DATA APP_DFLT_ADV_DATA_LEN))
在DSPS设备应用程序中,似乎它将广告数据直接复制到缓冲区中,偏移量为0:
cmd - > info.host。adv_data_len = APP_DFLT_ADV_DATA_LEN;
memcpy (cmd - > info.host。adv_data [0], APP_DFLT_ADV_DATA cmd - > info.host.adv_data_len);
谢谢!
设备:
你好,
发布报告中发布数据的前3个字节包含标志。第一个字节是数据长度(0x02 -长度本身不计算),第二个字节是数据的类型旗帜(0x01)和第三个字节包含标志(0x06)。
当您在外设中构建广告数据包时,三个字节{0x02,0x01,0x06}被SDK自动放置——您不需要考虑它。
Flags数据类型八位描述
0 LE有限的可发现模式
1 LE通用发现模式
2不支持BR/EDR。
3同时LE和BR/EDR
4同时LE和BR/EDR相同
5 . . 7保留
设置为0x06的标志表示
LE一般发现模式&BR /功能不支持。
嗨MHv_Dialog,
谢谢!这对我很有帮助。