|
本帖最后由 yys3210 于 2018-4-10 01:25 编辑
再请教版主几个问题:
Q1:调试中发现BlueNRG的beacon项目中Device_Init()函数内的 aci_gap_init(ROLE, 0x00, 0x08, &service_handle, &dev_name_char_handle, &appearance_char_handle); 的参数ROLE=01(Peripheral)时Packet Sniffer能抓到广播数据;当ROLE=0x02( broadcaster)时就没有广播数据了。
准备扫描部分函数如下:
aci_gap_start_observation_proc(160,160,0,0,0,0);//启动扫描
hci_le_advertising_report_event(1,Test_Advice);//得到广播数据.
//Test_Advice定义:Advertising_Report_t Test_Advice[10]; //10是随便写的,不写数则编译错误
Q2:hci_le_set_scan_parameters(0,160,160,0,0);与aci_gap_start_observation_proc(160,160,0,0,0,0);两个函数的原型基本相同,二者有大的区别吗?
Q3:hci_le_set_scan_parameters(0,160,160,0,0);
hci_le_set_scan_enable(1,0);
上面两句与aci_gap_start_observation_proc功能能等价吗?
Q4:启动扫描后,执行函数hci_le_advertising_report_event即可就能得到广播数据?而不用等待产生了类似中断标志后,才运行该函数后加载广播数据到结构参数体中?
Q5:函数hci_le_advertising_report_event库文件中描述第一参数为什么指定就是“1”而不能是其他大于1的数?
第二个参数是个结构体数组Advertising_Report[],是不是该函数可以同时扫描多个广播?每个广播的event分别存储于Advertising_Report[ ]对应的结构体中?
这样第一个参数是整数 i,则结构体数组就相应的为Advertising_Report[ i ],能这样理解吗? |
|