This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于GATT Client 和 GATT Server 的疑问



各位哥们请问:

在SimpleBLEPeripheral范例里面是属于GATT Server 端,

在SimpleBLECentral范例里面是属于GATT Client端,

现在我想要让他们两个专案同时存在Client及Server,

所以在SimpleBLEPeripheral_Init() 添加 :

VOID GATT_InitClient();

GATT_RegisterForInd( simpleBLEPeripheral_TaskID );

以及 SimpleBLECentral_Init() 添加 :

SimpleProfile_AddService( GATT_ALL_SERVICES );

那么现在我在Peripheral 里面呼叫 GATT_DiscPrimaryServiceByUUID() ;

 响应了 pMsg->method == ATT_FIND_BY_TYPE_VALUE_RSP , 事件里面的代码如下:

arr[0] = pMsg->msg.findByTypeValueRsp.handlesInfo[0].handle; 
arr[1] = pMsg->msg.findByTypeValueRsp.handlesInfo[0].grpEndHandle;
uint16 cHandle;
GAPRole_GetParameter( 0x30E, &cHandle);
attReadByTypeReq_t req;
req.startHandle = arr[0];
req.endHandle = arr[1];
req.type.len = ATT_BT_UUID_SIZE;
req.type.uuid[0] = LO_UINT16(SIMPLEPROFILE_CHAR1_UUID); 
req.type.uuid[1] = HI_UINT16(SIMPLEPROFILE_CHAR1_UUID);
GATT_ReadUsingCharUUID( cHandle, &req, simpleBLEPeripheral_TaskID );

这个 GATT_ReadUsingCharUUID() 方法会响应 ATT_READ_BY_TYPE_RSP or ATT_ERROR_RSP

但是我添加了这两个事件都没有进入判断式子里,所以我找不到Central的特征值,

可以确定的是在呼叫GATT_ReadUsingCharUUID() 后 osal 有发送 GATT_MSG_EVENT 事件,

怎样才能找到Central的特征呢?