我想通過白名單實(shí)現(xiàn)只允許特定手機(jī)設(shè)備掃描和連接,用的是從機(jī)例程,由于手機(jī)直接連接的話是3類mac地址,不能直接通過LL_AddWhiteListDevice將手機(jī)設(shè)備加入白名單,我發(fā)現(xiàn)有這么個(gè)參數(shù)
按照解釋,我的理解是每次有設(shè)備綁定后就清空解析名單,將該設(shè)備加入解析名單,而解析名單包含在白名單中,當(dāng)我使能該參數(shù)后,當(dāng)有手機(jī)和芯片配對(duì)綁定,之后修改廣播策略為只允許白名單中的設(shè)備掃描和連接,白名單的功能正常。但是默認(rèn)只允許綁定一個(gè)設(shè)備,白名單中就只能有一個(gè)設(shè)備,但我希望白名單設(shè)備數(shù)量可以大于1,我看了config.h中的說明
修改了SNVnum和Lib_Write_Flash
但是依然不能綁定兩個(gè)設(shè)備,如果綁定了一個(gè)設(shè)備,第二個(gè)設(shè)備再綁定時(shí)就會(huì)失敗。
另外我想知道
GAPBOND_AUTO_SYNC_RL和GAPBOND_AUTO_SYNC_WL開啟了到底有什么功能,解析名單和白名單是什么關(guān)系
有沒有獲取白名單設(shè)備數(shù)量和設(shè)備地址的函數(shù),我看那個(gè)藍(lán)牙庫里面似乎沒有
謝謝
二編:
前面的問題基本解決了,我現(xiàn)在想實(shí)現(xiàn)當(dāng)綁定設(shè)備數(shù)量達(dá)到最大值后,后續(xù)設(shè)備的綁定遵循先入先出的規(guī)則,但是我看了這個(gè)參數(shù)
當(dāng)我開啟了,達(dá)到最大設(shè)備后再有設(shè)備配對(duì)的話就會(huì)把之前的設(shè)備都刪除,設(shè)備數(shù)量就變成了1.如果我關(guān)閉,則新設(shè)備雖然會(huì)顯示配對(duì)綁定成功,但是并不會(huì)存到flash中,實(shí)際上沒有綁定。
我看了綁定用到的擦寫flash的函數(shù),
因?yàn)榫唧w的實(shí)現(xiàn)都被封裝了,但我猜測(cè),每次新設(shè)備綁定時(shí),先把原來的綁定信息從flash中讀出,再將新設(shè)備的信息插到后面,然后再擦寫flash。如果想實(shí)現(xiàn)先入先出,我的想法是在Lib_Read_Flash中判斷如果達(dá)到了最大數(shù)量,地址就+0x100,這樣就會(huì)從第二個(gè)設(shè)備開始讀取,但這樣也有問題,因?yàn)槲也恢喇?dāng)我關(guān)閉了GAPBOND_ERASE_AUTO,還會(huì)不會(huì)執(zhí)行綁定操作,而且其他情況也可能會(huì)調(diào)用該函數(shù),比如GAPBOND_AUTO_SYNC_RL,這樣就會(huì)導(dǎo)致遺漏第一個(gè)設(shè)備。所以如果我想實(shí)現(xiàn)先入先出的話能怎么做呢