CC2540主機獲取各個從機廣播

在藍牙BLEcc2540的程序有一個函數用於記錄周圍正在發廣播的藍牙的地址,並且生成地址列表,以供後面的選擇連接。我們可以對比着這個函數來寫一個接受周圍藍牙從機發出的廣播,並且生成相應的廣播數據列表。

我先來看看廣播的地址在何處被接收到:


在回調函數simpleBLECentralEventCB( gapCentralRoleEvent_t *pEvent )中,調用接收廣播地址的函數用來保存地址。



我們再來看原先用於接收廣播地址的函數:



該函數裏面的for語句用於判斷髮出此消息的藍牙地址是否已經被記錄過,若是已經被記錄過了,就return忽略此消息,接着判斷下一個廣播消息。我們跟蹤到simpleBLEDevList[i].addr去看看它如何被定義的:


繼續跟蹤gapDevRec_t這個結構體:



也就是先定義了一個結構體,裏面的成員有記錄地址的數組、地址類型等。

那麼我們來整理一下思路:

1、先定義了一個含有地址數組等成員的結構體。

2、用此結構體去定義出一個具體的結構體變量(地址列表)。

3、寫一個函數接收從機發過來的廣播數據並且保存其地址到地址列表中。

整理好思路後我們就不難寫出一個函數用於接收廣播信息了。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章