iOS低功耗藍牙 BLE 編程代理方法流程

本文介紹了Apple 公司提供的 CoreBluetooth 框架中的藍牙編程流程。
閱讀后推薦閱讀:iOS低功耗藍牙BLE編程實戰(zhàn)

藍牙中心模式流程:

一、創(chuàng)建 CBCentralManager 中心對象
二、central掃描外設(shè) discover
三、central連接外設(shè) connect
四、掃描外設(shè)中的服務(wù)和特征discover
4.1、獲取外設(shè)的 services:
  • 執(zhí)行:discoverServices
  • 成功后執(zhí)行:peripheral:didDiscoverServices
    委托方法
4.2、獲取外設(shè)的 Characteristics,獲取 Characteristics 的值:
  • 執(zhí)行:discoverCharacteristics:forService
  • 成功后執(zhí)行:peripheral:didDiscoverCharacteristicsForService:error
    委托方法
4.3、獲取外設(shè)的Characteristics 的 Descriptor 和 Descriptor 的值:
  • 讀特征值:readValueForCharacteristic
  • 讀到后進入:didUpdateValueForCharacteristic:error委托方法
  • 搜索 Characteristic:discoverDescriptorsForCharacteristic
  • 搜到后進入:didDiscoverDescriptorsForCharacteristic:error委托方法
  • 獲取到 Descriptors 的值:peripheral:didUpdateValueForDescriptor:error

Descriptors 是對 characteristic 的描述,一般是字符串

4.4、把數(shù)據(jù)寫到 Characteristic:writeCharacteristic:charactericstic:value
4.5、讀 RSSI,用通知的方式訂閱數(shù)據(jù)等。
五、與外設(shè)做數(shù)據(jù)交互 explored interact
六、訂閱 Characteristic 的通知:notifyCharacteristic:characteristic

取消通知:cancelNotifyCharacteristic:characteristic

七、斷開連接 disconnect:disconnnectPeripheral:peripheral

藍牙外設(shè)模式流程:

一、創(chuàng)建一個 Peripheral 管理對象。
peripheralManager = [[CBPeripheralManager alloc] initWithDelegate:self queue:nil];
  • 藍牙設(shè)備打開成功后會進入委托方法:peripheralManagerDidUpdateState:
二、本地 Peripheral 設(shè)置服務(wù)、特性、描述、權(quán)限等。
  • 創(chuàng)建 Characteristics 及其 description,創(chuàng)建 service,把 characteristics 添加到 service 中,再把 service 添加到 peripheralManager 中。
三、Peripheral 發(fā)送廣播 advertising:peripheralManagerDidStartAdvertising:error
  • Peripheral 添加 service:peripheralManager:didAddService:error
四、對 central 的操作進行響應(yīng)
  • 讀 characteristics 請求:peripheralManager:didReceiveReadQuest:
  • 寫characteristics 請求:peripheralManager:didReceiveWriteRequests:
  • 訂閱特征:peripheralManager:central:didSubscribeToCharacteristic:
  • 取消訂閱:peripheralManager:central:didUnsubscribeFromCharacteristic:

一些基本屬性:

  • RSSI:信號強弱值,防丟器會用到。
  • UUID:唯一標識符,用于區(qū)分設(shè)備
  • service UUID:服務(wù),一個 Server 會包含多個characteristic,用 UUID 來區(qū)分。
  • characteristic:特征,用 UUID 來區(qū)分

如果覺得本文有趣或者實用,請點擊“喜歡”鼓勵下作者哦
當然也接受打賞鼓勵咯 :)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容