ble

2022-06-20 16:08 更新

概述

背景

藍(lán)牙的適用場(chǎng)景

  • 可用于第三方藍(lán)牙設(shè)備交互,必須要支持藍(lán)牙 4.0。
  • iOS上:硬件至少是 iphone4s,系統(tǒng)至少是 iOS6。
  • android上:系統(tǒng)版本至少是 android4.3。

藍(lán)牙 4.0 以低功耗著稱,一般也叫 BLE(BluetoothLowEnergy)。目前應(yīng)用比較多的案例:運(yùn)動(dòng)手壞、嵌入式設(shè)備、智能家居

藍(lán)牙通訊原理概述

在藍(lán)牙通訊中有兩個(gè)主要的部分,Central 和 Peripheral,有一點(diǎn)類似Client Server。Peripheral 作為周邊設(shè)備是服務(wù)器。Central 作為中心設(shè)備是客戶端。所有可用的藍(lán)牙設(shè)備可以作為周邊(Peripheral)也可以作為中央(Central),但不可以同時(shí)既是周邊也是中央。

一般手機(jī)是客戶端, 設(shè)備(比如手環(huán))是服務(wù)器,因?yàn)槭鞘謾C(jī)去連接手環(huán)這個(gè)服務(wù)器。周邊(Peripheral)是生成或者保存了數(shù)據(jù)的設(shè)備,中央(Central)是使用這些數(shù)據(jù)的設(shè)備。你可以認(rèn)為周邊是一個(gè)廣播數(shù)據(jù)的設(shè)備,他廣播到外部世界說(shuō)他這兒有數(shù)據(jù),并且也說(shuō)明了能提供的服務(wù)。另一邊,中央開(kāi)始掃描附近有沒(méi)有服務(wù),如果中央發(fā)現(xiàn)了想要的服務(wù),然后中央就會(huì)請(qǐng)求連接周邊,一旦連接建立成功,兩個(gè)設(shè)備之間就開(kāi)始交換傳輸數(shù)據(jù)了。

除了中央和周邊,我們還要考慮他倆交換的數(shù)據(jù)結(jié)構(gòu)。這些數(shù)據(jù)在服務(wù)中被結(jié)構(gòu)化,每個(gè)服務(wù)由不同的特征(Characteristics)組成,特征是包含一個(gè)單一邏輯值的屬性類型。

服務(wù)和特性

上文中提到了特征(Characteristics),這里簡(jiǎn)單說(shuō)明下什么是特征。

特征是與外界交互的最小單位。藍(lán)牙4.0設(shè)備通過(guò)服務(wù)(Service)、特征(Characteristics)和描述符(Descriptor)來(lái)形容自己,同一臺(tái)設(shè)備可能包含一個(gè)或多個(gè)服務(wù),每個(gè)服務(wù)下面又包含若干個(gè)特征,每個(gè)特征下面有包含若干個(gè)描述符(Descriptor)。比如某臺(tái)藍(lán)牙4.0設(shè)備,用特征A來(lái)描述設(shè)備信息、用特征B和描述符b來(lái)收發(fā)數(shù)據(jù)等。而每個(gè)服務(wù)、特征和描述符都是用 UUID 來(lái)區(qū)分和標(biāo)識(shí)的。

注意:

若要支持后臺(tái)使用藍(lán)牙功能需配置 config.xml 文件 bluetooth-central、bluetooth-peripheral 字段。

不能同時(shí)添加的模塊:beecloud

本模塊源碼已開(kāi)源,地址為: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
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)