介绍Bluetooth的文章比较多,现在从个人的理解记录一些内容。
单模和双模的概念
Bluetooth 一般分为Classic Bluetooth(经典蓝牙,EDR/BDR)和 Bluetooth Low Energy(蓝牙低功耗,BTLE/2BT LE)。
单模:只支持经典蓝牙(EDR/BDR);只支持低功耗蓝牙(BTLE);只支持低功耗蓝牙(2BTLE)
双模:支持经典蓝牙(EDR/BDR)+低功耗蓝牙(BTLE)支 持 经 典蓝牙(EDR/BDR)+低 功 耗 蓝 牙 (BTLE+2BT LE),官方用Smart Ready来代表;
官方用Smart Ready来代表双模蓝牙,用Smart代表低功耗类蓝牙,从给出的图标就可以看出来;
双模与单模蓝牙设备之间的兼容性是这样的:
Smart Ready 可以和 Smart Ready、传统蓝牙,以及 Smart 之间相互连接和通信。
传统蓝牙可以和 Smart Ready、传统蓝牙之间连接和通信
Smart 可以和 Smart、Smart Ready 之间连接和通信
Smart 可以和 Smart、Smart Ready 之间连接和通信
从上边可以看出来,Smart Ready是母亲,classic是大哥,low energe是二弟。
这里说一个误区,BLE不是Bluetooth的简写,而是Bluetooth Low Energy的简写。
应用层UUID、Services、Characteristics、Descriptors概念
官方解释 https://www.bluetooth.com/blog/a-developers-guide-to-bluetooth/
下面说一下自己的理解
首先Service包含Characteristic,Characteristic包含Descriptor;
service理解为一个容器,Characteristic是容器中的数据,而escriptor作为characteristic的补充;
UUID是全球独一无二的128位的数字,各种各样的service、characteristic、descriptor都有各自的UUID值;
有些UUID值是蓝牙官方协会固定分配的,有些是厂商自己设计申请的;
UUID值可以看这里 https://btprodspecificationrefs.blob.core.windows.net/assigned-values/16-bit%20UUID%20Numbers%20Document.pdf
大家在查看资料的时候,尽量看英文的,因为中文的描述不够准确,例如属性,英文可以用property,还可以用Attribute;协议,英文可以用Protocol,还可以用profile,但是要表达的意思可能差一些,理解有偏差。
推荐几个关于Bluetooth讲的比较好的blog地址
http://blog.chinaunix.net/uid-21411227-id-5750680.html,有一个关于bluetooth的主题;
https://blog.csdn.net/u011011827/article/details/90117818
知乎上的一个专栏 https://www.zhihu.com/column/c_124940078
QT关于蓝牙的example, https://doc-snapshots.qt.io/qt5-5.12/qtbluetooth-index.html
https://blog.csdn.net/u013378580/article/details/52891462
msdn上关于BLE的介绍,https://docs.microsoft.com/en-us/windows/uwp/devices-sensors/bluetooth-low-energy-overview
新兴技术Web BLE的协议说明,https://webbluetoothcg.github.io/web-bluetooth,有空要学习,新的趋势,Web Brower访问BLE;
Windows蓝牙编码的一个小例子,但是要调试修改,https://www.codeproject.com/Questions/1193565/Bluetooth-low-energy-windows-programming
https://www.cnblogs.com/yongdaimi/p/11507397.html
https://www.cnblogs.com/iini/p/12334646.html
以上内容不定时更新。