This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

cc2640r2f在调用连接函数后,连接从机没有成功后,底层一直在尝试连接,怎么能停止

Other Parts Discussed in Thread: CC2640R2F

1。cc2640r2f在调用 下面函数后,连接从机,但未连接成功。底层一直在尝试连接,能否让不要在连?因为我的场景是两个主机同时扫描到一个从机,其中一个主机连接成功了,另一个听到mac但没成功。

// Connect to current device in scan result
status = GAPRole_EstablishLink(DEFAULT_LINK_HIGH_DUTY_CYCLE,
DEFAULT_LINK_WHITE_LIST,
label_parameter.addrType, label_parameter.label_mac);

2。我在调用这个API后也能得到善 GAP_TerminateLinkReq(selfEntity,connHandle,HCI_DISCONNECT_AUTH_FAILURE);//

3。HCI_DISCONNECT_REMOTE_USER_TERM 和 HCI_DISCONNECT_AUTH_FAILURE参数传进上面函数效果相当,

4。HCI_DISCONNECT_UNACCEPTABLE_CONN_INTERVAL这个没有定义???不知道是不是用不着呢。

5。当主机扫描到从机mac时,去连接却没连接成功后,怎么能让主机不要在尝试连接,能否把连接的动作直接关闭啊??????

  • 可以设置超时时间或者用GAPRole_TerminateConnection取消操作,具体请看这边的类似问题: e2echina.ti.com/.../547475
  • 多谢解答,GAPRole_EstablishLink这个函数是不是没有超时,只要调用就会不停止的去连接。
    2。GAPRole_TerminateConnection我调用了,也没起作用,主机没有建立连接,也可以调用这个函数嘛?我是在主任务中的定时事件中调用的。如下:
    multi_role_taskFxn中调用的

    else if (events & MR_START_CONNECT_EVT)//当前标签传图超时处理 连接事件
    {
    //mod lhj 191010
    //mr_doDisconnect(); //断开连接
    //#ifdef BROLINK
    // ap_ack[4] = 0x01; ap_ack[5] = 0xFB;ap_ack[6] = connectFlag;
    // send_package_toap(UART_TEST_CMD, 4, ACK_SUCCESS);
    //#endif

    if(loginTimeOutFlag)//add lhj 190928 添加入网超时处理,因多bt收到同一标签入网广播倒至bt状态错误
    {
    //GAP_TerminateLinkReq(selfEntity,connHandle,HCI_DISCONNECT_AUTH_FAILURE);//add lhj 191011
    GAPRole_TerminateConnection(connHandle);

    GAPRole_CancelDiscovery(); //停止监听 191011 不加这个扫描到mac连接不上
    //memset(label_parameter.label_mac,0,6);//mod lhj 191009 因多bt刷标签会倒至交差错连
    loginTimeOutFlag = false; //add lhj 190928

    //AP_ble_workstate = AP_BLE_LOGIN_START ;
    mr_doScan();//开始监听 mod lhj 191011
    }
  • 1、是的
    2、可以