开发环境
操作流程:
一个主机,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 ,并且一对一通讯,其它的从机断电不工作就不会出现以上情况。