[英]IOS:Write command values to corebluetooth peripheral device to get the response
[英]CoreBluetooth peripheral response to write request
我在外圍管理器委托中有以下代碼
func peripheralManager(_ peripheral: CBPeripheralManager, didReceiveWrite requests: [CBATTRequest]) {
print ("received write request")
for request in requests {
if request.characteristic.uuid.isEqual(self.primaChar.uuid) {
// extract data from write request
// TODO: validate data
let str = String(data: request.value!, encoding: .utf8)!
print ("received:", str)
peripheralManager.respond(to: request, withResult: .success)
} else {
print ("Unknown write request")
}
}
}
響應電話后
peripheralManager.respond(to: request, withResult: .success)
在中心側不調用 didWrite
func peripheral(_ peripheral: CBPeripheral, didWriteValueFor descriptor: CBDescriptor, error: Error?) {
#if DEBUG
CLog.debug ("Did write value for \(descriptor.characteristic)")
#endif
}
我需要發起多個寫請求,但需要知道上一個寫是否成功,然后再發送下一個寫請求。
兩個設備都已配對。
為什么中央經理的 didWriteValueFor() 沒有被調用?
使用 didWriteValueForCharscteristic() 解決了@Paulw11 在評論中建議的問題。 謝謝保羅。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.