hi 各位:
我用cc2540 从机代码,稍微修改了一下使用gatt_notification发送数据。
当我按下按键,发送一帧数据(gatt_notification发送),在手机(三星gs3)端接收notify回调触发3次左右,请问这问题可能出现在哪?
Yan:
Hi T_MAC,
你可以先用SmartRF Packet Sniffer 抓空中的包看一下 你的 notification 是否是被发送了三次, 如果只有一次, 再检查一下GS3 里面的代码是怎么接受notify 的.
T_MAC:
回复 Yan:
hi yan:
我试试
T_MAC:
回复 T_MAC:
hi yan :
我抓包调查过,从机只发送了一次,安卓手机却触发N多次的notify 读取数据。
之前用信驰达模块 ,手机UUID设置如下:
#define SIMPLEPROFILE_CHAR1_UUID 0xFFE1
#define SIMPLEPROFILE_CHAR2_UUID 0xFFE2
#define SIMPLEPROFILE_CHAR3_UUID 0xFFE3
#define SIMPLEPROFILE_CHAR4_UUID 0xFFE4
#define SIMPLEPROFILE_CHAR5_UUID 0xFFE5
可以正常收发数据,而且手机端notify不会被触发多次。
现在使用TI 从机demo。
手机UUID设置和从机一样:
#define SIMPLEPROFILE_SERV_UUID 0xFFF0
#define SIMPLEPROFILE_CHAR1_UUID 0xFFF1
#define SIMPLEPROFILE_CHAR2_UUID 0xFFF2
#define SIMPLEPROFILE_CHAR3_UUID 0xFFF3
#define SIMPLEPROFILE_CHAR4_UUID 0xFFF4
#define SIMPLEPROFILE_CHAR5_UUID 0xFFF5
手机notify就会被触发多次,但是抓包出来看,不是从机发送多次导致的。 现在我不懂了,是不是有什么设置notify 重发机制,还是ACK应答什么的?
T_MAC:
回复 T_MAC:
HI
问题解决了,不过根源问题还不清楚。
之前主从机只使用1个服务UUID,可能导致手机 发送时触发自己notify接收导致一个循环接收发送。
现在主从机使用两个服务UUID,手机就不会导致notify误触发。