CC2541发送超长字节内容的处理方式?(500~1000字节)
GATT_Notification 我测试了可以一次发送20个字节,超过20个字节就没有反应,手机端接受不到消息
GATT_WriteNoRsp 也可以一次发送20个字节,这两个函数有什么区别呢?
另外在http://e2e.ti.com/support/low_power_rf/f/538/t/111465.aspx#394585 提到,快速调用GATT_WriteNoRsp 发送消息,循环几次后就会出现
MSG_BUFFER_NOT_AVAIL ,那么合理的间隔应该是多少呢?
烦请建议一下一秒钟内发送500~1000个字节的流程(包括接受)和注意事项,谢谢。
Hi yu,
如果是peripheral, 端,那么只能以GATT_Notification 每次发送20个字节。
GATT_WriteNoRsp 是central端的接口, 在central你可以尝试 GATT_WriteLongCharValue()去写超过20个字节每包。
就是说peripheral, 端 要发送500个字节,就只能拆分为20个字节,多次发送,所以对收到内容的完整性校验 要自己处理 对吗?
Hi Yan,
GATT_WriteCharValue() 能否连续调用?是否有次数限制?
我在central端连续发送512字节数据后,速度突然变慢?
(我是每包20字节,连续调用GATT_WriteCharValue() 直至发送完1K字节)
这个bStatus_t GATT_WriteCharValue( uint16 connHandle, attWriteReq_t *pReq, uint8 taskId ); taskId 是那个 task的 id ?
San,
可以连续调用。
taskID可以是你的应用层的taskID,比如说SimpleBLECentral 工程,那么就是 simpleBLETaskId。
http://processors.wiki.ti.com/index.php/CC2540_Data_Throughput 这个是TI自己测试的数据吞吐量程序,最高可到5.9KB/s ,你可以参考一下,提供了测试的源代码。利用这个程序进行修改,研发进程要快的多。notification 的字节数20 是蓝牙技术联盟规定的BLE 协议,是标准,根本改不了。这不是TI定的
HI YAN; 问一个问题: 我用GATT_WriteCharValue往peripheral发送数据, 我看上面很多人说可以一次发送20个字节,但是我测试的结果是: 如果发送20个字节每次,peripheral端会返回错误, 19个字节就ok;
下面是抓包结果:
请问是什么原因导致的呢
谢谢
找到原因了
你好,可是Notify和Write的最大大小不都是20B吗?
Charisticter定义为大小20B,怎么去写GATT_WriteLongCharValue()去写超过20个字节每包
难道Charisticter可以定位为>20B?
我可以定义Charisticter大小为500,然后直接用GATT_WriteLongCharValue()一次性写500B吗?
你好,可是Notify和Write的最大大小不都是20B吗?
Charisticter定义为大小20B,怎么去写GATT_WriteLongCharValue()去写超过20个字节每包
难道Charisticter可以定位为>20B?
我可以定义Charisticter大小为500,然后直接用GATT_WriteLongCharValue()一次性写500B吗?
上面说的有问题 最大是251字节 notification可以是251字节
参考蓝牙协议规范vol6 partB
可是CC2541似乎是最大20B
cc2541 蓝牙协议栈 理论上251b
你好 lenli LENLI,
非常感谢回复!
请问251B是在哪里看到的,能否发给我看一下。
不胜感激。
Frank
自己在工程中搜寻MTU的东西就找到了
2541不支持Core 4.2,哪里来的251一说。。。