文章目錄
- 1、藍牙廣播數據格式
- 2、掃描響應數據
1、藍牙廣播數據格式
藍牙廣播包的最大長度是37個字節,其中設備地址占用了6個字節,只有31個字節是可用的。這31個可用的字節又按照一定的格式來組織,被分割為n個AD Structure。如下圖所示:
(BLE5.0廣播包最大可用長度是254個字節)
每個AD Structure包含又包含三部分,分別是:
Length(1字節),AD Type(1字節),AD Data(n字節)
其中Length = AD Type 長度 + AD Data 長度
AD Type 由藍牙組織聯盟指定并發布,可以在藍牙官方網站上下載相關文檔,常用的 AD Type 及其含義如下:
常用的有:格式定義字段(Flags), UUID字段,設備名稱字段,廠商自定義字段等
這些字段中,除了格式定義字段是必須存在,且需要放在廣播內容中,其他字段都是可選的,并且位置并不重要,放在廣播內容或掃描回復內容中都可以,效果基本相同。
格式定義字段
格式定義字段(Flags)是一個字節的配置字段,是唯一一個必須包含的字段,用于指示設備是否可以被搜到、是否支持傳統藍牙,是否支持可被連接等。
UUID字段
UUID是一種唯一代號,一般每個service會對應一個UUID,一個設備可以有多個UUID。
一個完整的UUID是128bit,也可以以32bit或16bit縮寫的方式表示。
通過此字段,可以選擇將全部或部分UUID廣播出來。
名稱字段
名稱字段(Local Name)決定了設備在手機中搜索出來的名字
特別注意:
ADType 0x01 表示的是設備標識,其含義如下:
BLE(低功耗藍牙),不支持BR/EDR(經典藍牙),一般都將設備設為處于普通發現模式,所以只設置 bit1和 bit2,即0x06(b00000110)。
2、掃描響應數據
掃描響應是, 當藍牙主機收到從機的廣播數據后,如果想要進一步了解該從機設備的信息,可以向從機設備發送掃描請求,從機收到掃描請求后,向對應的主機回復掃描響應。