请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC2640R2F 工具/软件:
我发现 SimpleLink SDK 中有一个名为 FPGA_AUTO_CONNECT 的新 Marco for CC2640R2F 版本 5.30.0.11 示例代码、用于控制对 SimpleCentral_startGapDiscovery () 的函数调用。 我注意到当我手动调用这个函数时、程序将停止在函数 GAPCentral Role_Start 发现中工作。 有人能告诉我这个 simplelink SDK 中 Marco FPGA_AUTO_CONNECT 的确切含义吗? 是否需要启用 GAP 发现?
以下是相关 SDK 示例代码:
#ifdef FPGA_AUTO_CONNECT
/*********************************************************************
* @fn SimpleCentral_startGapDiscovery
*
* @brief Start discovering devices
*
* @param none
*
* @return none
*/
static void SimpleCentral_startGapDiscovery(void)
{
// Start discovery
if ((state != BLE_STATE_CONNECTED) && (!scanningStarted))
{
scanningStarted = TRUE;
scanRes = 0;
Display_print0(dispHandle, 2, 0, "Discovering...");
Display_clearLines(dispHandle, 3, 4);
GAPCentralRole_StartDiscovery(DEFAULT_DISCOVERY_MODE,
DEFAULT_DISCOVERY_ACTIVE_SCAN,
DEFAULT_DISCOVERY_WHITE_LIST);
}
}
/*********************************************************************
* @fn SimpleCentral_connectToFirstDevice
*
* @brief Connect to first device in list of discovered devices
*
* @param none
*
* @return none
*/
static void SimpleCentral_connectToFirstDevice(void)
{
uint8_t addrType;
uint8_t *peerAddr;
scanIdx = 0;
if (state == BLE_STATE_IDLE)
{
// connect to current device in scan result
peerAddr = devList[scanIdx].addr;
addrType = devList[scanIdx].addrType;
state = BLE_STATE_CONNECTING;
GAPCentralRole_EstablishLink(DEFAULT_LINK_HIGH_DUTY_CYCLE,
DEFAULT_LINK_WHITE_LIST,
addrType, peerAddr);
Display_print0(dispHandle, 2, 0, "Connecting");
Display_print0(dispHandle, 3, 0, Util_convertBdAddr2Str(peerAddr));
Display_clearLine(dispHandle, 4);
}
}
#endif // FPGA_AUTO_CONNECT
case GAP_DEVICE_INIT_DONE_EVENT:
{
maxPduSize = pEvent->initDone.dataPktLen;
Display_print0(dispHandle, 1, 0, Util_convertBdAddr2Str(pEvent->initDone.devAddr));
Display_print0(dispHandle, 2, 0, "Initialized");
// Prompt user to begin scanning.
Display_print0(dispHandle, 5, 0, "Discover ->");
#ifdef FPGA_AUTO_CONNECT
SimpleCentral_startGapDiscovery();
#endif // FPGA_AUTO_CONNECT
}
break;