Non-connectable mode,不可被连接的模式;Directed connectable mode,可被指定的设备连接;Undirected connectable mode,可被连接(不指定设备);Auto connection establishment procedure,可自动连接模式;General connection establishment procedure,通用的连接过程等。
3.5.2 广播数据格式
BLE协议31个bytes的广播数据和扫描应答数据的格式如下:
图9 广播数据和扫描应答数据的格式
广播数据/扫描应答数据一个个的AD Structure组成,未满31bytes的数据由0填充;每个ADStructure有1byte的长度信息(Data的长度),和剩余的Data组成。
Data由AD Type和AD Data组成。其中AD Type可以指定Service UUID,设备支持哪些profile;Local Name,设备的名称; Flags,设备的GAP发现连接能力等。结合上面的例子,再分析下:
02 01 06,是一个AD Structure:Data的长度是02;Data是01 06;AD Type是01(Flags);AD Data是06,表明支持General Discoverable Mode可被发现、不支持BR。
03 03 aa fe,是一个AD Structure:Data的长度是03;Data是03 aa fe;AD Type是03(16 bits的Service UUID);AD Data是aa fe,是Eddystone profile的Service UUID。
17 16 aa fe 00 -10 00 01 02 03 04 05 06 07 08 09 0a 0b 0e 0f 00 00 00 00,是一个AD Structure:Data的长度是17(23bytes);Data是16 aa fe 00 -10 00 01 02 03 04 05 06 07 08 09 0a 0b 0e 0f 00 00 00 00;AD Type是16(Service Data);AD Data是aa fe 00 -10 00 01 02 03 04 05 06 07 08 09 0a 0b 0e 0f 00 00 00 00,是Eddystone profile具体的Service Data。
总结
读罢全文,如果还有“似懂非懂、欲说还休”的感觉,太正常了,毕竟蓝牙协议是一个历史悠久又比较庞大的协议,本文当一个学习笔记吧,以后遇到相关的问题,来这篇文章查查应该就可以了。
参考文档:
https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile
CSS(Core Specification Supplement)
https://github.com/google/eddystone/blob/master/protocol-specification.md
IPSP SPEC, 1.0, https://www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=296307
IETF RFC7668, IPv6 over BLUETOOTH(R) Low Energy, https://datatracker.ietf.org/doc/rfc7668/?include_text=1
LE_PSM_IPSP, https://www.bluetooth.com/specifications/assigned-numbers/logical-link-control
https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx
https://tools.ietf.org/html/rfc4944