美文网首页iOS蓝牙开发物联网iOS Developer
iOS低功耗蓝牙 BLE 编程代理方法流程

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

作者: midmirror | 来源:发表于2016-01-09 12:54 被阅读2482次

    本文介绍了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 编程代理方法流程

      本文链接:https://www.haomeiwen.com/subject/etcqkttx.html