- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在运行以下代码:
[peripheral maximumWriteValueLengthForType:CBCharacteristicWriteWithResponse];
在我的例子中(iPhone 7,iOS 10.0.2)它返回 512。这个数字是什么意思?
来自文档:
method maximumWriteValueLengthForType:
The maximum amount of data, in bytes, that can be sent to a characteristic in a single write type.
但如果我尝试发送 500
或 600 字节
,它的工作原理完全相同。目标设备接收所有数据。在这两种情况下都不会调用响应回调。
最佳答案
据我了解,理论上它应该返回 ATT MTU 大小,因为它是从中央请求到外围设备的。从外设来看,类似的值是central.maximumUpdateValueLength
,建议避免发送特征值大于central.maximumUpdateValueLength
的通知。但不幸的是,这没有明确记录,而且 Apple 自己的示例(BTETransfer 应用程序)使用默认的 ATT MTU 大小 20 以确保安全。对于通知,我认为,如果您尝试更改超过 central.maximumUpdateValueLength
字节,则可能会发生不好的事情。
但是从我在 Android 上的实验中,我发现从另一端 - 中央端 - 正在进行某种缓存并且可以发送比当前 ATT MTU 大小更多的字节(在 Android 上,它可用通过 onMtuChanged
并且似乎也在连接后立即协商到 512)。因此,我们可能会假设在 iOS 上正在进行相同类型的缓存,但我不确定它能达到多大。在 Android 上,我们至少有写入回调来知道何时写入更多数据是安全的。在 iOS 上,不确定如果我们尝试写入会发生什么,比方说从中央一侧的可写特征上的 1MB。但我今天会试试看。
此外,iOS 版本之间的行为可能不同,因为 central.maximumUpdateValueLength
自 iOS 7 起可用,但 peripheral maximumWriteValueLengthForType
仅自 iOS 9 起可用。
关于ios - 什么是 [外设 maximumWriteValueLengthForType :CBCharacteristicWriteWithResponse] return?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41289783/
我正在运行以下代码: [peripheral maximumWriteValueLengthForType:CBCharacteristicWriteWithResponse]; 在我的例子中(iPh
我正在使用 CBCharacteristicWriteWithResponse(使用 BGLib 的 BLE112)向外围设备写入/发送 40 个字节,我希望它以两个 20 字节的 block 到达。
我是一名优秀的程序员,十分优秀!