3

在我的应用程序中,我发现我的外围设备具有给定的服务。然后,我在继续之前检查是否存在所有想要的特征。

当我向我的特征写入值时,回调didWriteValueForCharacteristic:触发:

- (void) peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error{

    NSLog(@"Did write characteristic value : %@ with ID %@", characteristic.value, characteristic.UUID);
    NSLog(@"With error: %@", [error localizedDescription]);
}  

并产生这个输出:

Did write characteristic value : <005c> with ID Unknown (<00005004 1212efde 1523785f eabcd123>)
With error: Unknown error.

该值是正确的,特征的 128 位 UUID 也是如此,但在我的外围设备中,我从未真正得到写入的值。

有什么建议可能是错的吗?

4

1 回答 1

4

我最初发送了 a WriteWithoutResponse,将其更改为 @Larme 在评论中提到的WriteWithResponse给了我 a 。CoreBluetooth[WARNING] error 13这个值对应于Invalid Attribute Value Length,意味着我发送了错误的数字格式,即我发送了一个16bit的值,而外设期望的是8bit。

更改外设以接受 16 位数据解决了该问题。

于 2013-02-13T07:25:55.263 回答