大家好,请问SimpleBLEPeripheral例程中,具有notify属性的CHAR4,会周期地发送通知数据,那么,在SimpleBLECentral设备连接上Peripheral设备后,如何才能得到notify的数据呢?谢谢!
Susan Yang:
所有从从机发过来的GATT封包可以在simpleBLECentralProcessGATTMsg()里收到。
user4184198:
回复 Susan Yang:
Susan,你好!
你所说的那个函数,最终调用它的是SimpleBLECentral_ProcessEvent函数。而我在SimpleBLECentral_ProcessEvent函数里,调用了打印函数,只要进入SimpleBLECentral_ProcessEvent中,就必定会打印一串信息。
而我在Peripheral例程中,只要双方连接上以后,就会周期地发送notify信息,如果按照你所说,Central接收到数据后,必定会打印信息,但是,我没有看到这个结果~~
另外,如果我用LightBlue连接Peripheral设备,进入0XFFF4特征值后,点击"Listen for notifications",就会不断收到Peripheral设备中的notify信息。
现在我的疑问点是,LightBlue点击的"Listen for notifications",会执行一些什么数据的交换,Central应该怎么做,才能模拟LightBlue的这个过程,从而能收到Peripheral的信息呢,谢谢!
mark_xu:
回复 user4184198:
1、找到char4的handle,然后下发数据0x001(在app应该写成01:00),然后在设备端,只要CHAR4一有变化 ,就会发送的主机端
2、也可以用BLE Browser这个APP做测试,这个软件的便捷之处在于,搜索到设备端的character以后,character的属性都会显现出来,如果需要notify,只要打开开关就可以了
3、希望可以帮到你,祝你好运!
zheng wang1:
问您一事,我用的官方的SimpleBLECentral工程,却搜不到其他的工程.这是为什么?
Fred Wang:
回复 user4184198:
1:TI的芯片主机模式是可以直接接收到Notify的,会触发static void SimpleBLECentral_ProcessOSALMsg( osal_event_hdr_t *pMsg )事件,pMsg->event过滤为case GATT_MSG_EVENT:,消息过滤为pMsg->method == ATT_HANDLE_VALUE_NOTI || pMsg->method == ATT_HANDLE_VALUE_IND。
2:手机上需要执行打开某特征值的Notify功能才能收到Notify。