iOS低功耗蓝牙 BLE 编程代理方法流程

本文介绍了Apple 公司提供的 CoreBluetooth 框架中的蓝牙编程流程。
阅读后推荐阅读:iOS低功耗蓝牙BLE编程实战

蓝牙中心模式流程:

一、创建 CBCentralManager 中心对象
二、central扫描外设 discover
三、central连接外设 connect
四、扫描外设中的服务和特征discover
4.1、获取外设的 services:
  • 执行:discoverServices
  • 成功后执行:peripheral:didDiscoverServices
    委托方法
4.2、获取外设的 Characteristics,获取 Characteristics 的值:
  • 执行:discoverCharacteristics:forService
  • 成功后执行:peripheral:didDiscoverCharacteristicsForService:error
    委托方法
4.3、获取外设的Characteristics 的 Descriptor 和 Descriptor 的值:
  • 读特征值:readValueForCharacteristic
  • 读到后进入:didUpdateValueForCharacteristic:error委托方法
  • 搜索 Characteristic:discoverDescriptorsForCharacteristic
  • 搜到后进入:didDiscoverDescriptorsForCharacteristic:error委托方法
  • 获取到 Descriptors 的值:peripheral:didUpdateValueForDescriptor:error

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

4.4、把数据写到 Characteristic:writeCharacteristic:charactericstic:value
4.5、读 RSSI,用通知的方式订阅数据等。
五、与外设做数据交互 explored interact
六、订阅 Characteristic 的通知:notifyCharacteristic:characteristic

取消通知:cancelNotifyCharacteristic:characteristic

七、断开连接 disconnect:disconnnectPeripheral:peripheral

蓝牙外设模式流程:

一、创建一个 Peripheral 管理对象。
peripheralManager = [[CBPeripheralManager alloc] initWithDelegate:self queue:nil];
  • 蓝牙设备打开成功后会进入委托方法:peripheralManagerDidUpdateState:
二、本地 Peripheral 设置服务、特性、描述、权限等。
  • 创建 Characteristics 及其 description,创建 service,把 characteristics 添加到 service 中,再把 service 添加到 peripheralManager 中。
三、Peripheral 发送广播 advertising:peripheralManagerDidStartAdvertising:error
  • Peripheral 添加 service:peripheralManager:didAddService:error
四、对 central 的操作进行响应
  • 读 characteristics 请求:peripheralManager:didReceiveReadQuest:
  • 写characteristics 请求:peripheralManager:didReceiveWriteRequests:
  • 订阅特征:peripheralManager:central:didSubscribeToCharacteristic:
  • 取消订阅:peripheralManager:central:didUnsubscribeFromCharacteristic:

一些基本属性:

  • RSSI:信号强弱值,防丢器会用到。
  • UUID:唯一标识符,用于区分设备
  • service UUID:服务,一个 Server 会包含多个characteristic,用 UUID 来区分。
  • characteristic:特征,用 UUID 来区分

如果觉得本文有趣或者实用,请点击“喜欢”鼓励下作者哦
当然也接受打赏鼓励咯 :)

你可能感兴趣的:(iOS低功耗蓝牙 BLE 编程代理方法流程)