nRF51822 Beacon 掃描請求包的設置


Nordic 公司自己做有 iBeacon的板子和 SDK,很少有人擁有這個SDK,我最近在朋友那也拿到了一個,但是還沒有時間看。

現在我們用普通的SDK自帶的 Beacon 例程來做開發,開發的時相信很多人是這樣的:買別人已經做好的產品,拿回來操作幾下,用nRF MCP 調試一下,就開始修改SDK了。

我也是這樣子的,老實地說,然后就會碰到各種問題。

1、如何在SDK 自帶的Beacon上設置 掃描請求包?

  其實有個地方比較關鍵,就是將m_adv_params.type 寫成 BLE_GAP_ADV_TYPE_ADV_IND,不然你怎么設置,MCP 都掃不到 請求包的。

1  memset(&m_adv_params, 0, sizeof(m_adv_params));
2 
3     m_adv_params.type        = BLE_GAP_ADV_TYPE_ADV_IND;
4     m_adv_params.p_peer_addr = NULL;                             
5     m_adv_params.fp           = BLE_GAP_ADV_FP_ANY;
6     m_adv_params.interval   =NON_CONNECTABLE_ADV_INTERVAL;
7     m_adv_params.timeout  =APP_CFG_NON_CONN_ADV_TIMEOUT;

2、為什么iOS 的MCP 掃描不到 advdata.p_manuf_specific_data?

呵呵。這個相信令很多不會開發 APP 的人來說是一個很頭疼的事情,搞半天都母雞抖是怎么回事。

iBeacon要求manuf_specific_data.company_identifier 值是 0x004C, 這樣微信搖一搖才能搖得到。這個值是蘋果公司的,Nordic 公司的是 0x0059。

iOS 系統 的MCP 會把0x004C進行過濾,所以你如果要用 MCP 或者lightblue其他調試工具來掃描的話,得不到 advdata.p_manuf_specific_data,怎么辦呢?

將manuf_specific_data.company_identifier避開 0x004C咯? 可是微信搖一搖又不起作用了,咋辦呢?

自己想辦法,我只能告訴你,0x004C 是掃不到的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM