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