Hi all,
我的環境如下:
central: cc2640 multi role(服務是 0xFFF0,兩個特徵值 0xFFF1(read/write),0xFFF2(notification))
peripheral: cc2640 simple_peripheral(服務是 0xFFF0,只開一個特徵值 0xFFF1)
peripheral 已經調適完成,使用手機可以正常連接、使用
但 central 跟 peripheral 連接就有問題,當連接後,會進入 multi_role_processGATTDiscEvent(),
else if (discState == BLE_DISC_STATE_SVC) { // Service found, store handles if (pMsg->method == ATT_FIND_BY_TYPE_VALUE_RSP && pMsg->msg.findByTypeValueRsp.numInfo > 0) { svcStartHdl = ATT_ATTR_HANDLE(pMsg->msg.findByTypeValueRsp.pHandlesInfo, 0); svcEndHdl = ATT_GRP_END_HANDLE(pMsg->msg.findByTypeValueRsp.pHandlesInfo, 0); } // If procedure complete if (((pMsg->method == ATT_FIND_BY_TYPE_VALUE_RSP) && (pMsg->hdr.status == bleProcedureComplete)) || (pMsg->method == ATT_ERROR_RSP)) { if (svcStartHdl != 0) { attReadByTypeReq_t req; // Discover characteristic discState = BLE_DISC_STATE_CHAR; req.startHandle = svcStartHdl; req.endHandle = svcEndHdl; 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); VOID GATT_ReadUsingCharUUID(connHandle, &req, selfEntity); } } }
得到
svcStartHdl = 28
svcEndHdl = 65535
這兩個值表示什麼?
並且我一直無法進入底下的判斷式內,pMsg->method 始終為 1
else if (discState == BLE_DISC_STATE_CHAR) { // Characteristic found, store handle if ((pMsg->method == ATT_READ_BY_TYPE_RSP) && (pMsg->msg.readByTypeRsp.numPairs > 0)) { //find index to store handle uint8_t connIndex = multi_role_mapConnHandleToIndex(connHandle); charHdl[connIndex] = BUILD_UINT16(pMsg->msg.readByTypeRsp.pDataList[0], pMsg->msg.readByTypeRsp.pDataList[1]); //Display_print0(dispHandle, LCD_PAGE6, 0, "Simple Svc Found"); } discState = BLE_DISC_STATE_IDLE; }
想請問以上是什麼問題,我有哪些沒注意到的,該如何解決?
謝謝