Ejemplo n.º 1
0
BtStatus time_gatt_destroy_link(TimeCTransport *pChnl) {
	BtStatus status;

	status = CMGR_RemoveDataLink(&pChnl->handler);
	status = CMGR_DeregisterHandler(&pChnl->handler);

	// Always return success
	return BT_STATUS_SUCCESS;
}
Ejemplo n.º 2
0
void hdp_tp_disconnect(HdpChannel *channel)
{
	if (NULL == channel)
	{
		return;
	}
	CMGR_RemoveDataLink(&(channel->cmgrHdlr));
	CMGR_RemoveCmgrWithDevice(&(channel->cmgrHdlr));
	CMGR_DeregisterHandler(&(channel->cmgrHdlr));
}
Ejemplo n.º 3
0
void FmpClearConnection(FmpChannel *channel, BtStatus status)
{
    kal_trace(BT_TRACE_BLE_PROFILES, FMP_CLEAR_CONNECTION_STATUS, status);

    /* Release all resources in packet pool */


    /* Notify the application */
    FmpAppCallback(channel, FMPEVENT_CLOSED, status, 
			channel->link, sizeof(BtRemoteDevice));

    CMGR_RemoveDataLink(&channel->cmgr_handler);
    CMGR_RemoveCmgrWithDevice(&channel->cmgr_handler);

    FmpFreeChannel(channel);
}
Ejemplo n.º 4
0
void l2capTesterCmgrCallback(CmgrHandler *cHandler, 
                      CmgrEvent Event, 
                      BtStatus Status)
{
    L2capChannelId l2ChannelId;
    BtStatus status;
    
    //add by stanley:2006-0721
    local_para_struct* msg;
    bt_test_cmd_rsp_struct  *param_ptr;
    
    switch (Event) {

    case CMEVENT_DATA_LINK_CON_CNF:
        if (Status == BT_STATUS_SUCCESS) 
        {
            /* ACL is connected, start SDP Query */
            switch(L2CAPTS(pending_command))
            {
                case L2CAP_TESTER_CONNECT_REQ:
                    cHandler->remDev->discFlag = FALSE;
                    status = L2CAP_ConnectReq(&L2CAPTS(Protocol), BT_PSM_TESTING, cHandler->remDev, 0, &l2ChannelId);
                    bt_trace(BT_TRACE_G1_PROTOCOL, BT_L2CAPTS_CONNECTREQ,l2ChannelId);                    
                    L2CAPTS(cid) = l2ChannelId;

                    //add by stanley:2006-0721
   
		     param_ptr = (bt_test_cmd_rsp_struct *)construct_local_para(
															(U16)sizeof(bt_test_cmd_rsp_struct),
															TD_CTRL);  

                    memset(param_ptr->test_cmd_rsp_buf,0,256);

                    param_ptr->test_cmd_rsp_buf[0]=0x03; //logs type
                    param_ptr->test_cmd_rsp_buf[1]=0x02; //L2cap category
    
                    kal_sprintf((kal_char*)(param_ptr->test_cmd_rsp_buf+4),"L2CA_ConnectReq,using cid=%d",l2ChannelId);
                    Report(("str data send to L4C:%s",param_ptr->test_cmd_rsp_buf+4));
                    param_ptr->length= strlen((kal_char*)param_ptr->test_cmd_rsp_buf+4);
                    bt_trace(TRACE_GROUP_1,STR_DATA_LENxD ,param_ptr->length);

                    //fill the data length field of string data for rsp
                    param_ptr->test_cmd_rsp_buf[2]= (U8)(param_ptr->length  & 0x00ff);
                    param_ptr->test_cmd_rsp_buf[3]= (U8)((param_ptr->length >> 8) & 0x00ff);

                    //rsp_buf's total length = param_ptr->length + 4 bytes header
                    param_ptr->length += 4;
    
                    msg = (local_para_struct*)param_ptr;

                    bt_trace(TRACE_GROUP_1,CALL_BTTESTER_SENDMSG);
    
#if 0    
                    btTester_sendMsg(MSG_ID_BT_L4C_TEST_CMD_CNF, 
#ifdef __GEMINI__
                                                    Get_DualSim_Uart_Default_Owner(),
#else
                                                    MOD_ATCI, 
#endif 
                                                    INVALID_SAP, 
                                                    msg, 
                                                    NULL);
#endif                                                    
                    
                    return;
                case L2CAP_TESTER_PING_REQ:
                    memset( (U8 *)L2CAPTS(common_data), 0x55, sizeof(L2CAPTS(common_data)));
                    status = L2CAP_Ping(
                                            &(L2CAPTS(Protocol)), 
                                            L2CAPTS(cmgrHandler).remDev, 
                                            (U8 *)L2CAPTS(common_data),
                                            sizeof(L2CAPTS(common_data)));
                    return;
                case L2CAP_TESTER_INFO_REQ:
                    status = L2CAP_GetInfo(&(L2CAPTS(Protocol)), L2CAPTS(cmgrHandler).remDev, L2CAPTS(info_type));
                    return;
                default:
                    status = BT_STATUS_FAILED;
                    break;
            }
            if (Status == BT_STATUS_PENDING) 
            {
                return;
            }
        }
        /* Disconnect and call the application */
        (void)CMGR_RemoveDataLink(&L2CAPTS(cmgrHandler));
        (void)CMGR_DeregisterHandler(&L2CAPTS(cmgrHandler));
        break;
    }
}