我在write
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];
顺便说一下,所有其他配置文件/控制点都可以成功读取和写入。并且已经在Android上成功进行了测试-不是我的。
答案 0 :(得分:0)
是您的远程设备返回该错误代码。规范提到了设备何时应发送以下代码:
2.3客户特性配置描述符配置不正确(0xFD)
未根据概要文件或服务的要求配置客户端特征配置描述符时,将使用客户端特征配置描述符配置错误的错误代码。
如果正确使用了错误代码-我不知道。请阅读远程设备的文档,如何使用它。因为现在有点像您在问为什么随机http服务器会以错误500响应。
“控制点”或多或少只是表示您要写入的特征。