BLE 中 Blob Request 的偏移量是否超过 512?
Does Blob Request's offset goes beyond 512 in BLE?
如果我在 android(服务器)中有一个包含大约 900 个字符(900 字节)的长属性。当我尝试通过来自计算机(客户端)的读取 Blob 请求读取它时,偏移量增加 22从 0.(0,22,44...512) 开始,Blob 响应将相应地发送。但是,即使属性(特征)仍有数据要读取,我也看不到 534。我想了解 1) 这是 BLE 中的最大限制吗和 2) 如何从相同的特性一次性发送剩余数据。
属性值的最大长度为 512 字节。这就是为什么无法读取超出此偏移量的原因。如果您尝试为特性分配一个比允许的值更大的值,那么适当的蓝牙堆栈应该会抱怨,但是 Android.. 好吧.. 是 Android...
因此您无法读取偏移量 512 之外的那些“额外字节”,因为它们不存在。
如果你协商一个更大的MTU,你可以一次阅读更大的部分。如果将其设置为 517,则始终可以在单个事务中使用任何 GATT 过程读取最大大小的值。
如果我在 android(服务器)中有一个包含大约 900 个字符(900 字节)的长属性。当我尝试通过来自计算机(客户端)的读取 Blob 请求读取它时,偏移量增加 22从 0.(0,22,44...512) 开始,Blob 响应将相应地发送。但是,即使属性(特征)仍有数据要读取,我也看不到 534。我想了解 1) 这是 BLE 中的最大限制吗和 2) 如何从相同的特性一次性发送剩余数据。
属性值的最大长度为 512 字节。这就是为什么无法读取超出此偏移量的原因。如果您尝试为特性分配一个比允许的值更大的值,那么适当的蓝牙堆栈应该会抱怨,但是 Android.. 好吧.. 是 Android...
因此您无法读取偏移量 512 之外的那些“额外字节”,因为它们不存在。
如果你协商一个更大的MTU,你可以一次阅读更大的部分。如果将其设置为 517,则始终可以在单个事务中使用任何 GATT 过程读取最大大小的值。