首页 > 解决方案 > iOS BLE 特性控制点写入 - ATT 错误

问题描述

我在执行 awrite时遇到了问题control point characteristic

也许我提供了一个错误的值,因为我不完全理解控制点的性质。我已经注意到一些关于实现旁边的控制点值的规范。

即便如此,我不会收到比 更详细的错误描述ATT Unknown,所以我很难找出根本原因。

char buffer[1];
buffer[0] = 0x01; // opCode - 1 byte
// buffer[1] = 0x00; // Operand - variable length, N/A in this case
// buffer[2] = 0x00; // Crypto Data, 3 bytes, (handled by encryption manager? investigating)
NSData *data = [NSData dataWithBytes:buffer length:1];
NSData *data2 = [self.encryptionManager encrypt:data];
[_peripheral writeValue:data2 forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse];

ATT 错误说明

顺便说一句,所有其他配置文件/控制点都可以成功读取和写入。这已经在 Android 上成功测试了 - 而不是我。

标签: iosobjective-cbluetoothbluetooth-lowenergycharacteristics

解决方案


返回该错误代码的是您的远程设备。规范提到设备何时应发送此代码,如下所示:

2.3 客户端特性配置描述符配置不当(0xFD)

当未根据配置文件或服务的要求配置客户端特征配置描述符时,将使用客户端特征配置描述符错误配置错误代码。

如果错误代码被正确使用——我不知道。请阅读您的远程设备的文档如何使用它。因为现在有点像你在问为什么随机 http 服务器响应错误 500。

“控制点”或多或少只是意味着您写入的特征。


推荐阅读