https://mp.weixin.qq.com/s/oe89XpRO7-9bdmCaAhyYAw
1. BLE廣播
BLE設備可以通過廣播(Advertisement)周期性的向周圍的設備發送消息,廣播消息格式展開如下:
廣播通道上的PDU數據總共有7個類型,分別為4Advertising + 2 Scanning +1 Connect-request。進一步的展開ADV_IND消息格式如下:
最終,看到AdvData由一個個ADStructure組成,每個advStructure包括三個部分:
-
AD length,AD Type和AD Data的長度
-
AD Type:AD Data的數據含義,
-
AD Data:AD Type所指示的數據
AD type 定義在Core Specification Supplement(CSS) v7
BLE規范允許廠商定義自己的ADtype,此時AD type值為0xFF,基於此,Apple和Google公司分別定義了一種特殊的BLE廣播,這就是iBeacon和EddystoneBeacon,即Beacon是一種廠商自己定義的廣播數據,這種廣播類型是不可連接,不可掃描的,即類型為ADV_NONCON_IND。
2. iBeacon
iBeacon 規范定義在 https://developer.apple.com/ibeacon/
其ADV data定義如下
例如 一個iBeacon的ADVdata如下:
0x0201061AFF4C0002151048E70A5D61492525698305449030901005A77C0
就可以嘗試對比上面的結果分析。
3. Google Eddystone
Google Eddystone Beacon定義在:
https://developers.google.com/beacons/eddystone
其ADV data定義如下
4. 應用
基於iBeacon的定位:
https://developer.apple.com/ibeacon/Getting-Started-with-iBeacon.pdf