コード例 #1
0
U8 L2CA_EchoReq(L2capEchoRequest *parms)
{
    BtStatus status = BT_STATUS_SUCCESS;
    BD_ADDR bd_addr;
    

    memset( (U8 *)L2CAPTS(common_data), 0x55, sizeof(L2CAPTS(common_data)));
    /* Establish the ACL link */
    memcpy((U8 *)bd_addr.addr, (U8 *)parms->bd_addr,6);

    (void)CMGR_RegisterHandler(&L2CAPTS(cmgrHandler), l2capTesterCmgrCallback);
    status = CMGR_CreateDataLink(&L2CAPTS(cmgrHandler), &bd_addr);
    L2CAPTS(pending_command) = L2CAP_TESTER_PING_REQ;

    if (status == BT_STATUS_SUCCESS) 
    {
        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 status;
}
コード例 #2
0
BtStatus hdp_tp_connect(HdpChannel *channel)
{
	BtStatus ret;
	OS_Report("[HDP]hdp_tp_connect");

	ret = CMGR_RegisterHandler(&channel->cmgrHdlr, hdp_cmgr_callback);
	if (BT_STATUS_SUCCESS == ret || BT_STATUS_IN_USE == ret)
	{
		ret = CMGR_CreateDataLink(&channel->cmgrHdlr, &channel->bdAddr);	
	}	
	OS_Report("[HDP]hdp_tp_connect result %d", ret);
	
	return ret;
}
コード例 #3
0
U8 L2CA_InfoReq(L2capInfoRequest *parms)
{
    BtStatus status = BT_STATUS_SUCCESS;
    BD_ADDR bd_addr;
    

    memcpy((U8 *)bd_addr.addr, (U8 *)parms->bd_addr,6);
    (void)CMGR_RegisterHandler(&L2CAPTS(cmgrHandler), l2capTesterCmgrCallback);
    status = CMGR_CreateDataLink(&L2CAPTS(cmgrHandler), &bd_addr);
    L2CAPTS(pending_command) = L2CAP_TESTER_INFO_REQ;
    L2CAPTS(info_type) = parms->info_type;

    if (status == BT_STATUS_SUCCESS) 
    {
        status = L2CAP_GetInfo(&(L2CAPTS(Protocol)), L2CAPTS(cmgrHandler).remDev, L2CAPTS(info_type)); 
    }
    return status;
}
コード例 #4
0
U8 L2CA_ConnectReq(L2capConnectRequest *parms)
{
    BtStatus status = BT_STATUS_SUCCESS;
    BD_ADDR bd_addr;
    U16 l2ChannelId;

    /* Establish the ACL link */
    memcpy((U8 *)bd_addr.addr, (U8 *)parms->bd_addr,6);

    (void)CMGR_RegisterHandler(&L2CAPTS(cmgrHandler), l2capTesterCmgrCallback);
    status = CMGR_CreateDataLink(&L2CAPTS(cmgrHandler), &bd_addr);
    L2CAPTS(pending_command) = L2CAP_TESTER_CONNECT_REQ;
    if (status == BT_STATUS_SUCCESS) 
    {
        status = L2CAP_ConnectReq(&L2CAPTS(Protocol), BT_PSM_TESTING, L2CAPTS(cmgrHandler).remDev, 0, &l2ChannelId);
    }
    return status;
}
コード例 #5
0
FmpChannel *FmpNewChannel(void)
{
    FmpChannel *ch;
    U8 i;

    ch = (FmpChannel *)fmp_malloc(sizeof(FmpChannel));
    if (ch != NULL)
    {
        OS_MemSet((U8 *)ch, 0, sizeof(FmpChannel));
        InsertTailList(&FMP(dev_list), &(ch->node));
        CMGR_RegisterHandler(&ch->cmgr_handler, FmpCmgrCallback);	   

        /* Initialize packet pool for each device */
        InitializeListHead(&ch->packet_pool);
        for (i = 0; i < FMP_NUM_TX_PACKETS; i++) 
        {
            InsertTailList(&ch->packet_pool, &ch->packets[i].node);
        }
    }

    return ch;	
}
コード例 #6
0
U8 L2CA_AddGroup(L2capGroupAddr *parms)
{
    BtStatus status = BT_STATUS_SUCCESS;
    BD_ADDR bd_addr;
    U16 l2ChannelId;
    CmgrHandler     *cmgrHandler; 
    /* Establish the ACL link */
    
    memcpy((U8 *)bd_addr.addr, (U8 *)parms->bd_addr,6);
    if(L2CAPTS(cmgrHandler1).bdc !=0)
        cmgrHandler = &L2CAPTS(cmgrHandler1);
    else
        cmgrHandler = &L2CAPTS(cmgrHandler2);
    (void)CMGR_RegisterHandler(cmgrHandler, l2capTesterGroupCmgrCallback);
    status = CMGR_CreateDataLink(cmgrHandler, &bd_addr);
    if((cmgrHandler->bdc !=0) && (cmgrHandler->bdc->link !=0))
        CMGR_DisableSniffTimer(cmgrHandler);
    if (status == BT_STATUS_SUCCESS) 
    {
        L2CAP_GroupAddMember(L2CAPTS(groupId), &bd_addr);
    }
    return status;
}