ble

2022-06-20 16:08 更新

概述

背景

蓝牙的适用场景

  • 可用于第三方蓝牙设备交互,必须要支持蓝牙 4.0。
  • iOS上:硬件至少是 iphone4s,系统至少是 iOS6。
  • android上:系统版本至少是 android4.3。

蓝牙 4.0 以低功耗著称,一般也叫 BLE(BluetoothLowEnergy)。目前应用比较多的案例:运动手坏、嵌入式设备、智能家居

蓝牙通讯原理概述

在蓝牙通讯中有两个主要的部分,Central 和 Peripheral,有一点类似Client Server。Peripheral 作为周边设备是服务器。Central 作为中心设备是客户端。所有可用的蓝牙设备可以作为周边(Peripheral)也可以作为中央(Central),但不可以同时既是周边也是中央。

一般手机是客户端, 设备(比如手环)是服务器,因为是手机去连接手环这个服务器。周边(Peripheral)是生成或者保存了数据的设备,中央(Central)是使用这些数据的设备。你可以认为周边是一个广播数据的设备,他广播到外部世界说他这儿有数据,并且也说明了能提供的服务。另一边,中央开始扫描附近有没有服务,如果中央发现了想要的服务,然后中央就会请求连接周边,一旦连接建立成功,两个设备之间就开始交换传输数据了。

除了中央和周边,我们还要考虑他俩交换的数据结构。这些数据在服务中被结构化,每个服务由不同的特征(Characteristics)组成,特征是包含一个单一逻辑值的属性类型。

服务和特性

上文中提到了特征(Characteristics),这里简单说明下什么是特征。

特征是与外界交互的最小单位。蓝牙4.0设备通过服务(Service)、特征(Characteristics)和描述符(Descriptor)来形容自己,同一台设备可能包含一个或多个服务,每个服务下面又包含若干个特征,每个特征下面有包含若干个描述符(Descriptor)。比如某台蓝牙4.0设备,用特征A来描述设备信息、用特征B和描述符b来收发数据等。而每个服务、特征和描述符都是用 UUID 来区分和标识的。

注意:

若要支持后台使用蓝牙功能需配置 config.xml 文件 bluetooth-central、bluetooth-peripheral 字段。

不能同时添加的模块:beecloud

本模块源码已开源,地址为:https://github.com/apicloudcom/ble

模块接口

sysAuth initManager scan getPeripheral
getPeripheralRssi isScanning stopScan connect
disconnect isConnected retrievePeripheral retrieveConnectedPeripheral
discoverService discoverCharacteristics setNotify stopNotify
readValueForCharacteristic readValueForDescriptor writeValueForCharacteristic writeValueForDescriptor
connectPeripherals setSimpleNotify getAllSimpleNotifyData clearAllSimpleNotifyData
clean openBluetooth setBluetoothListener discoverDescriptorsForCharacteristic
removeBlueToothListener
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号