问题描述
我正在尝试使用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 (将#修改为@)