GATT_DiscPrimaryServiceByUUID( simpleBLEConnHandle, uuid, ATT_BT_UUID_SIZE,simpleBLETaskId );
在simpleBLECentral例程中,在建立连接后调用simpleBLECentralStartDiscovery( void ),其中调用了 GATT_DiscPrimaryServiceByUUID( simpleBLEConnHandle, uuid, ATT_BT_UUID_SIZE,simpleBLETaskId );来发现主服务UUID,但没有返回值,如何知道是否发现呢?接着需要发现指定的属性handle,我在simpleBLEGATTDiscoveryEvent()函数中做了串口标记,但似乎并没有出发这函数,请问是什么原因导致的?
yutou,
给的central示例代码,做了点小限制,你是可以修改的。
在 simpleBLECentralStartDiscovery() 函数里,做了
uint8 uuid[ATT_BT_UUID_SIZE] = { LO_UINT16(SIMPLEPROFILE_SERV_UUID),
HI_UINT16(SIMPLEPROFILE_SERV_UUID) };
这个限制。
只能查找对应的simpleBLE service.
所以,你得修改一下这里,改成你想要的,或者是任意的。
恩,但我现在用的就是SIMPLEPROFILE_SERV_UUID服务,在SIMPLEPROFILE里面新建了一个SIMPLEPROFILE_CHAR6_UUID,在simpleBLEGATTDiscoveryEvent( gattMsgEvent_t *pMsg )函数中更改如下:
req.type.uuid[0] = LO_UINT16(SIMPLEPROFILE_CHAR6_UUID);
req.type.uuid[1] = HI_UINT16(SIMPLEPROFILE_CHAR6_UUID);
simpleBLECharHd6 = BUILD_UINT16( pMsg->msg.readByTypeRsp.dataList[0],
pMsg->msg.readByTypeRsp.dataList[1] );
但在建立连接之后却未发现属性Handle,不知是否有遗漏之处?
yan
改为SIMPLEPROFILE_CHAR1_UUID是可以了,新建特性值需要在什么地方更改属性吗?