完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
大家好,以下是我使用GATT_Notification的做法:
uint16 ConnHandle; attHandleValueNoti_t Notify; GAPRole_GetParameter( GAPROLE_CONNHANDLE, &ConnHandle ); Notify.handle = UartServiceAttTbl[2].handle;//特征值对应的handle Notify.len = UartRxLen;//特征值的长度 osal_memcpy(Notify.value,UartRxData,UartRxLen);//特征值的数据 GATT_Notification(ConnHandle,&Notify,FALSE); 我使用Andriod上位机与Keyfob通信,每次都要上位机先使能Notification之后才会收到通知的数据。 但是当我使用USBDongle与Keyfob通信时,即使未使能Notification,也能监听到Keyfob发送通知数据。如下 [74] : -Type : 0x04 (Event) -EventCode : 0xFF (HCI_LE_ExtEvent) -Data Length : 0x1B (27) bytes(s) Event : 0x051B (ATT_HandleValueNotification) Status : 0x00 (Success) ConnHandle : 0x0000 (0) PduLen : 0x15 (21) Handle : 0x0025 (37) Value : 01:02:04:00:00:00:00:00:00:00:00:00:00:00:00:00: 00:00:00 Dump(Rx): 04 FF 1B 1B 05 00 00 00 15 25 00 01 02 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 问题1:从机使用GATT_Notification发送通知时,不论主机有没有使能Notification,从机都可以发送通知,对吗? 问题2:主机使能Notification只是决定对从机发送的通知要不要处理,对吗? 问题3:如果不是的话,要怎么理解呢?求解~~~ Thanks |
|
相关推荐
13 个讨论
|
|
骑猪去天山 发表于 2019-9-29 22:15 Yan: 不好意思,有点让你误解了: 1. 我说的Keyfob其实不是Keyfob的工程代码,而是Keyfob开发小板,真正使用的工程代码是我在simpleBLEPeripheral基础上进行修改过的——从机不管主机有没有使能Notification,都调用GATT_Notification(); 2. 按您所提议的:从机要听从主机的使能安排(主机没有使能你从机的notification,从机不应该发notification出去),这一点以后我会注意。 3. 我很想知道: 在主机未使能从机Notification时,而从机发送Notification的情况下。 从理论上 链路层还是会发送信号的,对吗?只是这不符合双方的握手协议,也不应该这么做! Thanks |
|
|
|
|
|
|
|
骑猪去天山 发表于 2019-9-29 22:15 Hi,Yan 在使能Notification时,已经得到char4的句柄,该句柄+1得到CCC句柄,但是写入失败,对BLE还不是很熟 |
|
|
|
|
|
|
|
|
Shaokai,
请教: 我使用如下代码发送UUID4的通知给手机,我的手机端为什么总是收不到UUID4的NOTICE更新值(0或1)呢? 代码如下: uint16 ConnHandle; GAPRole_GetParameter( GAPROLE_CONNHANDLE, &ConnHandle ); attHandleValueNoti_t noti; noti.handle = 0x2E; //特征值UUID4对应的handle0x2E, 试过地址0x2F, 0x30也不行的 noti.len = 1; noti.value[0] = loginStatus; // 0 or 1 GATT_Notification( ConnHandle, ¬i, FALSE ); |
|
|
|
|
|
|
|
|
Callon Huang,
问题搞定了,其实TI的例子里面有这个函数,如下: ”SimpleBLEPeripheral“ 项目下, 仔细看看文件"simpleBLEPeripher.c" 里面的函数 static void performPeriodicTask( void ) [ ],将读取到的UUID3的内容换成你自己定义的一个变量的值就可以了。 然后,Enable "performPeriodicTask()" in SBP_PERIODIC_EVT process for UUID4 notification(Dev_resp) sending(every 5s) , This function is very great to this project!!!!! APP一定要勾选UUID4页面里面那个“NOTIFICATION”复选框 。 祝你好运! 我的QQ: 2330708905 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
550 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1514 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1338 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1757浏览 29评论
2783浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1724浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 17:45 , Processed in 1.017099 second(s), Total 70, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
958