最后两个字节在通知中丢失,但在读取中没有

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
3个帖子/ 0个新
最后发表
Ulf Soderberg
离线
最后看到:5个月20个小时前
加入:2014-02-14二十16
最后两个字节在通知中丢失,但在读取中没有

我遇到了一些奇怪的问题,当发送64字节的数据到一个特征。
当客户端在数据发送后执行读取操作时,所有64字节都被正确接收。
当客户端订阅了通知时,通知只接收到62个字节,但是如果执行额外的读取,则所有64字节都在那里。因此,由于某些原因,最后两个字节在通知中丢失了。

是什么导致了这种行为?

设备:
MT_dialog
离线
最后看到:三个月两个星期前
工作人员
加入:2015-06-08 34
嗨Ulf Soderberg,

嗨Ulf Soderberg,

对于通知,一个设备可以通过一个特征发送的通知的字节数是由MTU (Maximum Transfer Unit)限制的,MTU默认为23字节,包括ATT层开销,所以一个通知的有效载荷是20字节。通过增加MTU大小,这意味着您可以在一个通知上发送更多字节,因此在您的情况下,最大传输单元应该是您想要发送的字节数量+ 3个额外字节。读取过程(当主机从外设读取一个值时)不受MTU大小的限制,这就是为什么您可以读取尽可能多的字节。

由于MT_dialog

Ulf Soderberg
离线
最后看到:5个月20个小时前
加入:2014-02-14二十16
啊。非常感谢。那

啊。非常感谢。这就解释了它。