ios - 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];
顺便说一句,所有其他配置文件/控制点都可以成功读取和写入。这已经在 Android 上成功测试了 - 而不是我。
解决方案
返回该错误代码的是您的远程设备。规范提到设备何时应发送此代码,如下所示:
2.3 客户端特性配置描述符配置不当(0xFD)
当未根据配置文件或服务的要求配置客户端特征配置描述符时,将使用客户端特征配置描述符错误配置错误代码。
如果错误代码被正确使用——我不知道。请阅读您的远程设备的文档如何使用它。因为现在有点像你在问为什么随机 http 服务器响应错误 500。
“控制点”或多或少只是意味着您写入的特征。
推荐阅读
- sqlite - 根据变量递增值
- javascript - Mongoose - 为什么我们在设置 mongoose 模块时使用“mongoose.Promise = global.Promise”?
- graphql - 嵌套在类型中的 Apollo 服务器订阅
- python - 在 Flask-SQLAlchemy 中加入后过滤
- listview - 使用 kotlin 和 tornadofx 在 listview 上无限滚动
- javascript - javascript on blur检测是否按下按钮
- arrays - 如何访问嵌套 JSON 数组中的所有值?
- asp.net - ASP.NET Core 2 TagHelper 代码未执行
- python - 居中数据框图
- google-chrome - Jenkins 中的 TestCafe 无法建立浏览器连接