你好!
在一对多中,从机需要发送的数据很大,想分包,分包的操作是如何的呢? 我把MTU的大小协商为了253那么每包的大小是253吗?
如果主机向从机读取,1s内能做到读取到10K数据吗?
你好,
若 MTU 为 253,则“一包”数据是 253 bytes。
以 gatt read 的方式实现 从机向主机发送方式,效率比 gatt notify 应会低很多;理论上,一对一的方式,使用 585 芯片,打开数据 DLE (Data length extend)特性,应是可行的;具体需要实测。
我把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吗?
谢谢!
DLE 特性只有 585 (586) 支持,580 (581, 583)不支持,故无法使用 580 + 585 组合使用 DLE 特性。
另外,在数据吞吐率方面,并不是 MTU 越大越高,还要结合连接参数的设置。
官网有个 DSPS 工程,包括 580 和 585,能实现接近极限的吞吐率:
//www.wsdof.com/products/dialog-serial-port-service...
你好,
若 MTU 为 253,则“一包”数据是 253 bytes。
以 gatt read 的方式实现 从机向主机发送方式,效率比 gatt notify 应会低很多;理论上,一对一的方式,使用 585 芯片,打开数据 DLE (Data length extend)特性,应是可行的;具体需要实测。
你好,
我把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吗?
谢谢!
你好,
DLE 特性只有 585 (586) 支持,580 (581, 583)不支持,故无法使用 580 + 585 组合使用 DLE 特性。
另外,在数据吞吐率方面,并不是 MTU 越大越高,还要结合连接参数的设置。
官网有个 DSPS 工程,包括 580 和 585,能实现接近极限的吞吐率:
//www.wsdof.com/products/dialog-serial-port-service...