外设peripheral模式的流程

2018-02-09  本文已影响12人  Dayu大鱼

外设peripheral模式的流程
1> 框架 CoreBluetooth
2> 初始化外设管理者 peripheralManager

3>添加服务进外设中 ==> peripheral.addService()
4>添加服务成功后 调用 ==> didAddService: 外设管理方法 ,在该方法中==> 开始广播peripheral.startAdvertising()
4.1>设置完广播 触发了一个外设管理的方法 ==> peripheralManagerDidStartAdvertising: ==> 该方法中可以追踪广告的发送成败

Tip: 接下来就是与中心模式的交互问题
5> 对central的操作进行响应 ==> 什么操作?
5.1 读characteristics请求
5.2 写 characteristics请求
5.3 订阅和取消订阅 characteristics 特征
5.3.1 因为该外设管理者添加了 读取写入等的服务, 所以能够处理中心设备过来的相应请求


中心设备订阅外设管理者中的特征时候调用的方法

 func peripheralManager(peripheral: CBPeripheralManager, central: CBCentral, didSubscribeToCharacteristic


  中心设备取消订阅某特征调用的方法
    func peripheralManager(peripheral: CBPeripheralManager, central: CBCentral, didUnsubscribeFromCharacteristic characteristic: CBCharacteristic)


外设管理者更新特征值

 // 发送一个更新的特征值给订阅了特征的中心设备
        let characteristic = timer.userInfo as! CBMutableCharacteristic
     
        pMgr.updateValue(nowData!,
                         forCharacteristic: characteristic,
                         onSubscribedCentrals: nil)
        

其实可以理解为 , 外设管理者被订阅, 被取消订阅内部特征值的时候调用这两个方法

总结:

  1. 导入CoreBluetooth框架
  2. 初始化外设管理者
  3. 监听状态 如果poweredOn ==> 添加服务(服务中包括 read write等)
  4. 添加服务 ==> 触发服务被添加相应方法
  5. 服务被添加,广播
  6. 与中心设备进行交互
    6.1 外设管理者收到==>读请求
    6.2 外设管理者收到==> 写请求
    6.3 中心设备订阅外设管理者的特征值
    6.4 中心设备取消订阅外设管理者的特征值

2018-2-9

蓝牙续集

外设管理者收到中心设备读请求 :
1> 拿到特征值 request.characteristic.value
2> 将特征值赋值给请求值 request.value
3> 外设响应这个请求

外设管理者收到中心设备写请求:
1> 取出请求
2> 取出请求值 request.value
3> 赋值给特征值 request.characteristic.value

总结:

读: 特征值赋值给请求值 , 写: 请求值赋值给特征值

上一篇下一篇

猜你喜欢

热点阅读