生活随笔
收集整理的這篇文章主要介紹了
BLE主机主动扫描和被动扫描
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.目的
? ? ?識(shí)別什么是主動(dòng)掃描 什么是被動(dòng)掃描
2.分析
? ? ? 在實(shí)際中如果需要獲得掃描響應(yīng),需要主機(jī)設(shè)置為主動(dòng)掃描。如果僅僅是需要廣播數(shù)據(jù)則設(shè)置為被動(dòng)掃描。主動(dòng)掃描和被動(dòng)掃描的區(qū)別在于:主動(dòng)掃描可以獲得廣播數(shù)據(jù)和掃描回應(yīng)數(shù)據(jù)。而被動(dòng)掃描只能獲得廣播數(shù)據(jù)不能獲得掃描數(shù)據(jù)。
3.平臺(tái):
協(xié)議棧版本:SDK10.0.0
編譯軟件:keil 5.12
硬件平臺(tái):微雪開發(fā)板nrf51822
例子:SDK10.0\examples\ble_central_and_peripheral\experimental\ble_app_hrs_rscs_relay\pca10028\s130\arm4
4.步驟
? 參考資料:《低功耗藍(lán)牙開發(fā)權(quán)威指南》
1.被動(dòng)掃描?
2.主動(dòng)掃描
?
詳細(xì)參考書籍《低功耗藍(lán)牙開發(fā)權(quán)威指南》 第114頁
接下來實(shí)驗(yàn):
?掃描參數(shù)設(shè)置:
[cpp]?view plaincopy
?? static?const?ble_gap_scan_params_t?m_scan_param?=?? {?? ????0,???????????????? ????0,???????????????? ????NULL,????????????? ????SCAN_INTERVAL,?? ????SCAN_WINDOW,?? ????0x0000???????????? };??
[cpp]?view plaincopy
????case?BLE_GAP_EVT_ADV_REPORT:?? ????{?? ????????uint32_t?err_code;?? ????????data_t???adv_data;?? ????????data_t???type_data;?? ?? ?????????? ????????const?ble_gap_addr_t??*?const?peer_addr?=?&p_gap_evt->params.adv_report.peer_addr;?? ?? ?????????? ????????adv_data.data_len???=?p_gap_evt->params.adv_report.dlen;?? ???????? ????????NRF_LOG_PRINTF("?peer_addr??=?%d?%d?%d?%d?%d?%d\r\n",?peer_addr->addr[0],peer_addr->addr[1],peer_addr->addr[2],peer_addr->addr[3],peer_addr->addr[4],peer_addr->addr[5]?);?? /?NRF_LOG_PRINTF("?p_gap_evt->params.adv_report.type??=?%d\r\n",?p_gap_evt->params.adv_report.type?);?????????????????????????????? NRF_LOG_PRINTF("?p_gap_evt->params.adv_report.scan_rsp??=?%d\r\n",?p_gap_evt->params.adv_report.scan_rsp?);??????????????????????????? NRF_LOG_PRINTF("?adv_data.p_data?=?%s\r\n",?adv_data.p_data?);??
因?yàn)橹車泻芏嗨{(lán)牙設(shè)備 。現(xiàn)在就來掃描了。
可以看到p_gap_evt->params.adv_report.scan_rsp = 0 表示是廣播包。
再看把掃描改為主動(dòng)掃描
[cpp]?view plaincopy
?? static?const?ble_gap_scan_params_t?m_scan_param?=?? {?? ????1,???????????????? ????0,???????????????? ????NULL,????????????? ????SCAN_INTERVAL,?? ????SCAN_WINDOW,?? ????0x0000???????????? };??
結(jié)果如下:
掃描回應(yīng)數(shù)據(jù)了。。。ok 實(shí)驗(yàn)成功!!!!!
總結(jié)
以上是生活随笔為你收集整理的BLE主机主动扫描和被动扫描的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。