CoreBluetooth外设需要很长时间才能将特征值写入

时间:2018-08-19 10:59:28

标签: ios core-bluetooth cbperipheral cbcentralmanager

我正在编写一个需要使用iOS CBPeripheral将字节值写入CoreBluetooth的应用程序。我能够读取值,并且写入成功,并且像应该的那样触发didWriteValueFor委托。基本上,它确实有效,但 But 却需要很长时间(大约3秒,报告超过10次)。当我在另一个应用程序(nRF Connect)中测试写入过程时,写入几乎是瞬时的。这是我用来写特征的代码:

func setConfigurationValue(_ i:UInt8){

    guard peripheral != nil, configurationStateCharacteristic != nil else { return }
    var vint:UInt8 = i
    let intData = Data(bytes: &vint, count: MemoryLayout<UInt8>.size)

        isWriting = true
        peripheral?.writeValue(intData, for: configurationStateCharacteristic!, type: CBCharacteristicWriteType.withResponse)
        // Notify any views that they should show a progress overlay
        NotificationName.showProgressOverlay.post(userInfo: ["message":"Device configuring".localized], object: self)

}

请注意,peripheral是对CBPeripheral对象的存储引用,而configurationStateCharacteristic是对我正在写的CBCharacteristic的引用。这段代码确实有效,但是是什么导致外围BLE设备花费这么长时间写入数据并发送响应呢?

有什么想法吗?

0 个答案:

没有答案