开发环境
操作流程:
一个主机,3个从机,主机选择从机1连接工作30秒然后断开,再连接从机2工作30秒断开,如此循环。开发板间的距离在30cm左右!
当某次连接从机的时候先进入:
case GAP_LINK_ESTABLISHED_EVENT: { Util_stopClock(&startLinkEstClock); if (pEvent->gap.hdr.status == SUCCESS) { state = BLE_STATE_CONNECTED; connHandle = pEvent->linkCmpl.connectionHandle; procedureInProgress = TRUE; // If service discovery not performed initiate service discovery if (charHdl == 0) { Util_startClock(&startDiscClock); }
然后马上就进入terminate event:
case GAP_LINK_TERMINATED_EVENT: { state = BLE_STATE_IDLE; connHandle = GAP_CONNHANDLE_INIT; discState = BLE_DISC_STATE_IDLE; charHdl = 0; procedureInProgress = FALSE; keyPressConnOpt = DISCONNECT; scanIdx = -1; // Cancel RSSI reads SimpleCentral_CancelRssi(pEvent->linkTerminate.connectionHandle);zhu
主机这边的到的信息是pEvent->linkTerminate.reason = 0x3e ,并且一对一通讯,其它的从机断电不工作就不会出现以上情况。