通知数据长度和MTU大小。

7个帖子/ 0个新
最后发表
zwang308
离线
最后看到:4年6个月前
主
加入:2014-07-02福音14:15
通知数据长度和MTU大小。

嗨,对话框中,

在我最近的项目中,我有一个100字节的特征,我想通过通知将其发送到客户端。

在客户端,除非更改MTU大小,否则只能接收20个字节。我搜索了我的BLE书(Bluetooth Low Energy The Developer’s Handbook),没有找到任何关于通知数据大小与MTU大小相关的地方。

我有点想知道通知数据大小和MTU大小之间的关系(对我来说,似乎我们只能通知MTU大小- 3字节的数据)?这是BLE堆栈约束还是Dialog约束。

非常感谢,

设备:
Joacimwe
离线
最后看到:1年7个月前
大师
加入:2014-01-14 06:45
根据蓝牙4

根据蓝牙4.0规范Vol 3 Part F 3.4.7.1“如果属性值大于(ATT_MTU-3)字节,则只能在通知中发送该属性值的第一个字节(ATT_MTU-3)。”

所以你是对的。最大大小是MTU大小- 3字节。

zwang308
离线
最后看到:4年6个月前
主
加入:2014-07-02福音14:15
嗨Joacimwe,

嗨Joacimwe,

非常感谢你提供的信息。我注意到在规范3.4.4.5“Read Blob Request”章节中,我们可以发现“the Read Blob Request is used to Request server to Read the value of an attribute at a given offset and return a specific part of the value in a Read Blob Response.”。使用Dialog的SDK读取特性的一部分是可能的吗?

非常感谢

Joacimwe
离线
最后看到:1年7个月前
大师
加入:2014-01-14 06:45
是,da14580支持

是的,da14580支持传入的读blob请求。它会自动响应对应部分的特征值。

你用什么设备作为中心?智能手机、电脑还是另一台da14580?是否可以发出自定义的Read blob请求取决于中央。通常,sdk提供读取整个特征的方法,然后它会发出多个读取blob请求来检索整个特征值。

zwang308
离线
最后看到:4年6个月前
主
加入:2014-07-02福音14:15
嗨Joacimwe,

嗨Joacimwe,

目前,我使用一对DA14580作为服务器和客户端。

我想有一个长的特点。255个字节长)。每次服务器向客户端发送数据时,首先发送一个20字节的通知。在客户端,它可以得到一个“
长度”从这个20字节通知和只读“长度”字节的数据的特征。

例如,服务器发送一个通知给客户端,并告诉它从它读取50字节的数据。然后,客户端不是读取整个特征,而是使用read blob命令读取255字节特征中的50个字节。这有可能吗?

非常感谢。

Joacimwe
离线
最后看到:1年7个月前
大师
加入:2014-01-14 06:45
你就不能用

难道不能直接使用通知并发送想要发送的数据吗?只要确保你有一个大的MTU。然后你可以发送50个字节。

zwang308
离线
最后看到:4年6个月前
主
加入:2014-07-02福音14:15
我们可以增加MTU

我们可以将MTU的大小增加到50,但是数据包的大小可以从8到255。因此,如果我们能够根据在通知包中发送的长度信息动态地读取部分特征,那将会更好。