美文网首页
外设peripheral模式的流程

外设peripheral模式的流程

作者: Dayu大鱼 | 来源:发表于2018-02-09 13:08 被阅读12次

    外设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

    总结:

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

    相关文章

      网友评论

          本文标题:外设peripheral模式的流程

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