请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: CC2340R5
在 cc2340R53 中、使用 simplelink_lowpower_f3_SDK_9_14_00_41 运行 key_node 示例、发现当 car_node(主器件)断电时、key_node(从器件)应超时并再次开始广播。 不过、通过断点调试、可以发现:
在app_key_node.c文件中、使用以下函数:
void KeyNode_handleConnectionEvent (BLEAppUtil_eventHandlerType_e eventType、Uint32 event、BLEAppUtil_msgHdr_t *pMsgData)
{
if ( pMsgData != NULL )
{
if (event == BLEAPPUTIL_LINK_TERMINATE_EVENT)
{
#if defined ( HOST_CONFIG )&&( HOST_CONFIG &( IOMENTER_CFG ))
//连接已终止。 再次开始广告
KeyNode_startAdvertising ();
#endif
#if defined ( host_config )&&( host_config &( central_CFG ))
//包括中央配置。 再次开始扫描
KeyNode_StartScan();
#endif
}
else if ( event == BLEAPPUTIL_LINK_RESIDEND_EVENT )
{
gapEstLinkReqEvent_t *pGapEstMsg =(gapEstLinkReqEvent_t *) pMsgData;
//呼叫 MTU 交换
appGATT_exchangeMTU (pGapEstMsg->connectionHandle、MAX_PDU_SIZE);
}
else if (event == BLEAPPUTIL_CONNECTING_CANCELLed_event)
{
//连接尝试超时。 重新启动扫描
#if defined ( host_config )&&( host_config &( central_CFG ))
KeyNode_StartScan();
#endif
}
}
}
BLEAPPUTIL_LINK_TERMINATED_EVENT主器件断电后、不会触发分支。 这可能是什么原因?
谢谢你。