将值写入BLE特性时响应缓慢目标C

问题描述

我正在尝试使用Objective C和CoreBluetooth更新BLE设备上的特性。它可以工作(写入操作会导致设备上的LED亮起,因此我可以看到更新发生的时间),但是写入值和设备上的响应之间的延迟约为15到25秒(!)。>

我正在使用以下值写值:

[peripheral writeValue:data forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse];

15秒钟后,我得到didWriteValueForCharacteristic的回叫。

我注意到,这似乎与我存储CBPeripheral对象的方式有关。我认为这是因为,如果我尝试直接从CBPeripheralDelegate(例如diddiscovercharacteristicsForService)中的回调函数之一(将外围设备作为参数传递)写入设备,则设备的响应是即时的。仅当我尝试使用存储的版本将值写入外围设备时,才会发生长时间的延迟。

我尝试将外围设备作为属性存储在数组中,并且尝试使用dispatch_async通过队列执行写操作(因为写值的操作来自C ++程序中的用户界面操作)。

您对我为什么遇到这些问题有任何想法或建议吗?

谢谢, 亚当

p.s。我要写入的设备是micro:bit

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)