CC2642R: 关于特征值发现过程的疑惑

Part Number: CC2642R

环境:simplelink_cc13xx_cc26xx_sdk_7_40_00_77

示例:simple_central

关于特征值发现过程的疑问点:

在SimpleCentral_processGATTDiscEvent中处理特征值发现的时候,需要将成功发现到的特征值charHandle进行存储,用于后续的特征值读写,如下面语句:

  else if (discState == BLE_DISC_STATE_CHAR)
  {
    // Characteristic found, store handle
    if ((pMsg->method == ATT_READ_BY_TYPE_RSP) &&
        (pMsg->msg.readByTypeRsp.numPairs > 0))
    {
      uint8_t connIndex = SimpleCentral_getConnIndex(scConnHandle);

      // connIndex cannot be equal to or greater than MAX_NUM_BLE_CONNS
      SIMPLECENTRAL_ASSERT(connIndex < MAX_NUM_BLE_CONNS);

      // Store the handle of the simpleprofile characteristic 1 value
      connList[connIndex].charHandle
        = BUILD_UINT16(pMsg->msg.readByTypeRsp.pDataList[3],
                       pMsg->msg.readByTypeRsp.pDataList[4]);

      ... ...
    }

    discState = BLE_DISC_STATE_IDLE;
  }

其中存储特征值charHandle的时候:

connList[connIndex].charHandle = BUILD_UINT16(pMsg->msg.readByTypeRsp.pDataList[3], pMsg->msg.readByTypeRsp.pDataList[4]); 

pDataList中数据对应的格式是怎样的?为什么pDataList[3]和pDataList[4]组成了charHandle?关于这个问题,哪里有文档说明?或者代码上有相关定义吗?