CH573例程內(nèi)沒(méi)有關(guān)于解讀分析從機(jī)廣播數(shù)據(jù)的方式,如果在從機(jī)的廣播數(shù)據(jù)內(nèi)加入其MAC地址,主機(jī)怎么可以進(jìn)行分析讀取并保存其MAC地址為后續(xù)自動(dòng)連接
主機(jī)可以獲取到從機(jī)的廣播包和掃描應(yīng)答包信息,這個(gè)結(jié)構(gòu)體中包含該成員
建議連接是需要通過(guò)MAC地址發(fā)起的,在此之前已經(jīng)獲取到從機(jī)的廣播包信息,包含MAC地址。因此可以對(duì)這個(gè)MAC地址發(fā)起連接。
藍(lán)牙BLE主機(jī)Central講解一(建立連接) - SweetTea_lllpc - 博客園 (cnblogs.com)
例程從機(jī)的廣播數(shù)據(jù)內(nèi)是沒(méi)有包含其自身的MAC的吧,應(yīng)該用哪個(gè)類(lèi)型進(jìn)行區(qū)別
這個(gè)應(yīng)該就是廣播包吧,有個(gè)類(lèi)型啥的這些,應(yīng)該怎么改呢
主機(jī)可以獲取到從機(jī)的MAC地址和廣播信息,這兩者可以對(duì)應(yīng)上,也就是在上面結(jié)構(gòu)體截圖的地方加上這兩部分的打印。
將MAC放在廣播包也可以實(shí)現(xiàn),先使用接口函數(shù)獲取芯片本身MAC(如果自定義則自行填入):GetMACAddress。然后填入廣播包。廣播包內(nèi)容修改:
意思是從機(jī)廣播的MAC地址是指在初始化函數(shù)已經(jīng)進(jìn)行設(shè)置?
廣播內(nèi)容本身不帶有MAC地址,可以自行將MAC地址填入到廣播包中。
MAC地址獲取,可以獲取芯片本身的MAC地址,這是全球唯一的MAC,通過(guò)FLASH例程的接口函數(shù)獲取?;蛘咦远x的MAC地址,既然是自定義的MAC地址,則自己是知道MAC地址的,直接填入就可以了。
還是沒(méi)懂具體是怎么實(shí)現(xiàn)的,能詳細(xì)講一下么
首先廣播數(shù)據(jù)包內(nèi)寫(xiě)入從機(jī)MAC地址后,從機(jī)這邊的數(shù)據(jù)類(lèi)型也是自己定義還是有標(biāo)準(zhǔn)的 ?
然后主機(jī)掃描到數(shù)據(jù)后 ,按你之前發(fā)的那個(gè)對(duì)應(yīng)結(jié)構(gòu)體查到最后面的結(jié)構(gòu)體里有一個(gè)addr[_addr_len],這個(gè)內(nèi)的數(shù)據(jù)是自動(dòng)識(shí)別進(jìn)去的嗎,還是怎么樣的
“通過(guò)讀取從機(jī)廣播內(nèi)MAC地址進(jìn)行連接”是只要在連接前,BLE主機(jī)可以獲取到MAC地址就可以了嗎?如果“是”,可以直接在圖中的addr[B_ADDR_LEN]數(shù)組中獲取。這與“通過(guò)讀取從機(jī)廣播內(nèi)MAC地址進(jìn)行連接”設(shè)想中不同的是,addr[B_ADDR_LEN]是BLE協(xié)議規(guī)定的包頭中規(guī)定存在的,而非由廣播包/掃描應(yīng)答包內(nèi)容攜帶。
如果您一定要在從機(jī)端MCU的廣播包(advertData數(shù)組)/掃描應(yīng)答包(scanRspData數(shù)組)內(nèi)容中攜帶MAC地址,可以在上述兩數(shù)組之一中添加數(shù)據(jù)類(lèi)型為0xFF(GAP_ADTYPE_MANUFACTURER_SPECIFIC)的自定義字段,而后主機(jī)端可以在圖中的*pEvtData數(shù)組中解析出0xFF字段中的內(nèi)容。如果用于存放BLE的MAC地址,在我看來(lái)是重復(fù)工作了,addr[B_ADDR_LEN]中已存在。
沒(méi)理解第一段話(huà)的具體意思。你的意思是不是:addr[B_ADDR_LEN]是BLE協(xié)議規(guī)定的,是對(duì)應(yīng)從機(jī)例程初始化中定義的MAC地址,如下圖這部分。
然后主機(jī)收到廣播數(shù)據(jù)中,就可以通過(guò)下圖deviceinfo結(jié)構(gòu)體中對(duì)應(yīng)到的地址addr[B_ADDR_LEN]
是不是以上這樣的一個(gè)過(guò)程呢?
如上的MAC地址對(duì)應(yīng)關(guān)系沒(méi)問(wèn)題。此處的MAC地址就可以直接用起來(lái),不用修改(advertData數(shù)組)或是(scanRspData數(shù)組)。