本文介绍了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 来区分
如果觉得本文有趣或者实用,请点击“喜欢”鼓励下作者哦
当然也接受打赏鼓励咯 :)
网友评论