CC2540 central与peripheral之间的通信
您好,我们正在开发一款支持BLE4.0的设备,思路是central发送characteristic给peripheral,peripheral根据characteristic的信息决定回什么样的数据给central,
peripheral向central发送数据采用notification。开发过程中有以下几个疑问,麻烦Ti员工帮忙解答以下:
(1)、主机向从机发送数据的疑问:
通信过程是不是首先peripheral会规划好自己的attribute table,central通过write function修改characteristic value,peripheral重新读取characteristic value即可?
central最大可以向peripheral发送多少数据?如果数据比较多是不是需要分批发送?最好选用哪一个函数实现?
(2)、peripheral回复central的疑问:
如果采用notification,数据包的大小最大是多少?是不是23 to 517?如果数组比较多是不是也需要分批发送?还是只需要把数组的指针给GATT_Notification (),CC2540会自动分批发送?
项目比较紧急,希望您能及时回复,谢谢帮忙。
hi
主向从差不多使用服务中的char n这个自己定),你说的差不多。
主向从 可以使用GATT_WriteCharValue(虽然他说这个可以自动分包,但是也没见过这种例子,所以。。。)和GATT_writeLongCharvalue这两个函数,长度18 和20,数据太多的话,就得分包,两个都差不多,函数发送是有时间间隔的,要想快速发送,那就得更改从机的连接间隔,功耗增加。
从机使用那个notification的话,也是20,没有自动分批发送的,分包。
2540不适合大数据的传输,它最大好像也就几k,而且这时候功耗应该要高几倍到十几倍吧。
hi,river:
连接间隔要怎么改啊?为什么有两个,min和max?
hi
你调小就好了,这个好像是有个公式的,我记得也不是很清楚了,之后再告诉你吧,我记得好像是调下max,调小就好了
还有,之前问过你那个GATT_writeLongCharValue的问题,我那个offset怎么也实现不了,是怎么回事,数据就是发的不对,一次可以发送50个了,但数据只显示第一次发送的18个,后面的就是那18个重复。
数据只显示第一次发送的18个,后面的就是那18个重复? 这个是什么意思?
hi
效果是这样的,如果我如果发生这种数据吧(hex发送):
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
37 38 39 40 41 42 43 44 45 46 47 48 49 50
然后我收到的数据时(hex):
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18
01 02 03 04 05 06 07 08 09 10 11 12 13 14
我想知道你在从机中是怎么处理这个offset的。
634754484
贴一下你的代码看看啊
你好,打扰一下,请问该问题解决没?我也碰到了这样的问题,GATT_WriteLongCharValue每次发送数据时,目标机只能收到前面的18个字节的数据