4 posts / 0 new
Last post
GGQ_in
Offline
Last seen:2 months 5 days ago
加入:2019-07-23 04:41
关于数据分包问题

你好!

在一对多中,从机需要发送的数据很大,想分包,分包的操作是如何的呢? 我把MTU的大小协商为了253那么每包的大小是253吗?

如果主机向从机读取,1s内能做到读取到10K数据吗?

Device:
CYibin
Offline
Last seen:3 months 2 weeks ago
工作人员
加入:2017-12-14 02:48
你好,

你好,

若 MTU 为 253,则“一包”数据是 253 bytes。

以 gatt read 的方式实现 从机向主机发送方式,效率比 gatt notify 应会低很多;理论上,一对一的方式,使用 585 芯片,打开数据 DLE (Data length extend)特性,应是可行的;具体需要实测。

GGQ_in
Offline
Last seen:2 months 5 days ago
加入:2019-07-23 04:41
你好,

你好,

我把MTU改为大于255时,当我用gatt notify方式向主机发送时,从机会挂掉,数据无法正常传输发生也不跳转到disconnect state。采用gatt read方式时也无法进行传输。

更新属性值的函数接口为attmdb_att_set_value(uint16_t handle, att_size_t length, uint8_t* value); 是否因为把value设为uint8_t类型导致value的长度为255而无法到达512?我想自己写一个更新属性值的函数接口但不知道它的msg结构体参数。

如果使用585芯片作为主机,580芯片作为从机,打开DLE特性,主机1s内收到10000B的效率比583作为主机580作为从机这个方案要高吗? 后者这个方案也能在1s内收到10000B吗?

谢谢!

CYibin
Offline
Last seen:3 months 2 weeks ago
工作人员
加入:2017-12-14 02:48
你好,

你好,

DLE 特性只有 585 (586) 支持,580 (581, 583)不支持,故无法使用 580 + 585 组合使用 DLE 特性。

另外,在数据吞吐率方面,并不是 MTU 越大越高,还要结合连接参数的设置。

官网有个 DSPS 工程,包括 580 和 585,能实现接近极限的吞吐率:

//www.wsdof.com/products/dialog-serial-port-service...