美文网首页
一、简述 iOS 蓝牙模块的开发

一、简述 iOS 蓝牙模块的开发

作者: LucXion | 来源:发表于2023-03-31 11:36 被阅读0次

    什么是蓝牙BLE?

    BLE是蓝牙4.0(Bluetooth low energy)的简称,特点就是低耗电。

    蓝牙设备间是怎么连接交互的?

    只要是集成了蓝牙BLE模块的设备,都可以通过蓝牙协议栈(GATT、ATT、L2CAP)进行交互。iphone和mac都集成了BLE,我们可以通过<CoreBlueTooth>框架与底层的蓝牙协议栈进行交互。举例:当iPhone作为中心设备时,通过CBCentralManager来管理 Remote Peripheral(CBPeripheral、CBCharacteristic、CBService).当iPhone作为外设时,通过CBPeripheralManager、可变的CBMutableService、CBMutableCharacteristic提供服务。

    中心设备和外设的区别与规范

    \color{blue} {中心设备Central:}是发起蓝牙连接的设备,并对外设Peripheral进行管理。中心设备的规范需要提供三个功能:1.搜索连接外设;2.与外设提供的数据交互;3.订阅一个当数据发生变化就会发出通知的特征Characteristic。
    \color{blue} {外设Peripheral:}通过Radio(无线电广播设备)广播数据包,提供数据的一方。外设的规范也需要提供三个功能:1.发布、广播服务Service;2.响应对特征的读写请求;3.响应对特征的订阅请求。

    APP的状态对蓝牙连接的影响

    当iPhone在后台或处于暂停状态,APP不能进行BLE通信。即便iPhone设置了支持蓝牙在后台运行的选项,数据处理的方式也会有所不同。蓝牙在后台运行时也可能因为内存过低被系统杀死,CoreBlueTooth支持中心设备、外设的状态信息的保存和恢复,可以通过这个来实现长期交互。

    下面将简单叙述iPhone作为中心设备时的代码实现

    关键类 CBCentralManagerDelegate CBPeripheralDelegate

    Characteristic 补充:

    特征值能否被订阅、写入数据,是根据特征值的 properties属性来决定的。
    特征动态的订阅、取消订阅:setNotifyValue:forCharacteristic:
    静态读取特征值:readValueForDescriptor:
    给特征写入数据:writeValue:forCharacteristic:type:

    代码实现在第二篇

    相关文章

      网友评论

          本文标题:一、简述 iOS 蓝牙模块的开发

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