在将64字节的数据发送到特征时,我有一些奇怪的问题。当客户端在数据发送后执行读取操作时,正确接收到所有64个字节。当客户端订阅通知时只接收到通知时只接收62个字节,但如果执行额外的读取,则存在所有64个字节。因此,由于某种原因,最后两个字节在通知中丢失了。
什么会导致这种行为?
嗨Ulf Soderberg,
关于通知,设备可以通过MTU(最大传输单元)发送设备的字节的量由MTU(最大传输单元)限制,默认情况下MTU是限制在包括ATT层开销的23个字节中,因此通知的有效载荷是20个字节。通过增加MTU大小意味着您可以在一个通知上发送更多字节,因此在您的情况下,最大传输单元应为您想要发送+ 3额外字节的字节数。读取过程(当主机从外设读取值时)不受MTU大小的限制,这就是为什么您能够在特征中读取多个字节的原因。
谢谢mt_dialog.
啊。非常感谢你。这解释了它。
嗨Ulf Soderberg,
关于通知,设备可以通过MTU(最大传输单元)发送设备的字节的量由MTU(最大传输单元)限制,默认情况下MTU是限制在包括ATT层开销的23个字节中,因此通知的有效载荷是20个字节。通过增加MTU大小意味着您可以在一个通知上发送更多字节,因此在您的情况下,最大传输单元应为您想要发送+ 3额外字节的字节数。读取过程(当主机从外设读取值时)不受MTU大小的限制,这就是为什么您能够在特征中读取多个字节的原因。
谢谢mt_dialog.
啊。非常感谢你。这解释了它。