コード例 #1
0
ファイル: dms_core.c プロジェクト: rgmabs19357/Huawei-
VOS_UINT32 dms_UdiRead(DMS_PHY_BEAR_ENUM enCOM,VOS_UINT8 * ucRedBuf, VOS_UINT32 ulToReadSize,  VOS_UINT32 * pulRealySize)
{
    VOS_UINT32 ret = ERR_MSP_SUCCESS;
    VOS_INT32  slReadlen = 0;

    if (UDI_INVALID_HANDLE != g_stDmsMainInfo.stPhyProperty[enCOM].slPortHandle)
    {
        DMS_DEBUG_SDM_FUN(EN_SDM_DMS_UDI_READ_START, (VOS_UINT32)slReadlen, (VOS_UINT32)ulToReadSize, (VOS_UINT32)ucRedBuf);

        slReadlen = udi_read(g_stDmsMainInfo.stPhyProperty[enCOM].slPortHandle,ucRedBuf,ulToReadSize);

        DMS_DEBUG_SDM_FUN(EN_SDM_DMS_UDI_READ_END, (VOS_UINT32)slReadlen, (VOS_UINT32)ulToReadSize, (VOS_UINT32)ucRedBuf);

        /*串口设备失败的返回值并非都是-1*/
        if (slReadlen < 0 )
        {
            * pulRealySize = 0;
            ret = ERR_MSP_FAILURE;
        }
        else
        {
            * pulRealySize = (VOS_UINT32)slReadlen;
        }
    }
    else
    {
        ret = ERR_MSP_FAILURE;
    }
    return ret;
}
コード例 #2
0
ファイル: dms_core.c プロジェクト: rgmabs19357/Huawei-
VOS_VOID dms_UsbDisableEvtProc(VOS_VOID)
{
    VOS_UINT32                          ulRet;

    g_usbPlugFlag = 0;

    DMS_DEBUG_SDM_FUN(EN_SDM_DMS_DISABLE,0, 0, 0);

    /* nv值为1表示有at sever,非1表示无at sever,无at sever关闭pcui和ctrl口 */
    if (TRUE == g_stDmsMainInfo.bPortOpenFlg)
    {
        /*关闭AT PCUI通道*/
        ulRet = dmsVcomAtPcuiClose();
        if(ERR_MSP_SUCCESS!=ulRet)
        {
            DMS_DEBUG_SDM_FUN(EN_SDM_DMS_DISABLE_ERR,0, 0, 3);
        }

        /*关闭AT CTRL通道*/
        ulRet = dmsVcomCtrlClose();
        if(ERR_MSP_SUCCESS!=ulRet)
        {
            DMS_DEBUG_SDM_FUN(EN_SDM_DMS_DISABLE_ERR,0, 0, 5);
        }
    }

    /*关闭NDIS TRCL通道*/
    ulRet =  dms_NcmClose();
    if(ERR_MSP_SUCCESS!=ulRet)
    {
        DMS_DEBUG_SDM_FUN(EN_SDM_DMS_DISABLE_ERR,0, 0, 4);
    }

    return ;
}
コード例 #3
0
ファイル: dms_ndis.c プロジェクト: herryfan/kernel-huawei-h60
VOS_UINT32 dms_NcmSendData(VOS_UINT8 *pData, VOS_UINT32 ulLen)
{

    VOS_INT32 ret = ERR_MSP_SUCCESS;
    NCM_AT_RSP_S stATResponse = {0};
    DMS_PHY_BEAR_PROPERTY_STRU  *pstComCfg =NULL;

    DMS_PHY_BEAR_PROPERTY_STRU* aenPhyBear = dmsgetPhyBearProperty();

    /*检查NDIS通道状态*/
    if(aenPhyBear[EN_DMS_BEARER_USB_NCM].ucChanStat == ACM_EVT_DEV_SUSPEND)
    {
        return ERR_MSP_FAILURE;
    }

    if((pData==NULL)||(ulLen==0)||(ulLen > 2048))
    {
        return ERR_MSP_INVALID_PARAMETER;
    }

    pstComCfg = dmsgetPhyBearProperty();

    stATResponse.pu8AtAnswer = pData;
    stATResponse.u32Length = ulLen;

    if(UDI_INVALID_HANDLE ==pstComCfg[EN_DMS_BEARER_USB_NCM].slPortHandle)
    {
        return ERR_MSP_FAILURE;
    }

    DMS_DEBUG_SDM_FUN(EN_SDM_DMS_NCM_SEND_TO_DRV, (VOS_UINT32)pData, ulLen, 0);

    ret=udi_ioctl(pstComCfg[EN_DMS_BEARER_USB_NCM].slPortHandle, NCM_IOCTL_AT_RESPONSE, &stATResponse);


    if(ret !=ERR_MSP_SUCCESS)
    {
        return ERR_MSP_FAILURE;
    }

    DMS_DEBUG_SDM_FUN(EN_SDM_DMS_NCM_SEND_TO_DRV_SUCC, 0, 0, 0);

    return ERR_MSP_SUCCESS;

}
コード例 #4
0
ファイル: dms_core.c プロジェクト: rgmabs19357/Huawei-
VOS_VOID dms_UsbEnableEvtProc(VOS_VOID)
{
    VOS_UINT32                          ulRet;
    NVE_INFO_S                          stAtServerNv;
    VOS_INT32                           lReadNvRet;

    VOS_MemSet(&stAtServerNv, 0, sizeof(NVE_INFO_S));
    VOS_MemCpy(stAtServerNv.nv_name, "ATSERV", sizeof("ATSERV"));
    stAtServerNv.nv_number      = NVE_AT_SERVER_INDEX;
    stAtServerNv.nv_operation   = NVE_READ_OPERATE;
    stAtServerNv.valid_size     = 1;

    g_usbPlugFlag = 1;

    DMS_DEBUG_SDM_FUN(EN_SDM_DMS_INIT,0, 0, 0);

    /* NVE只读取一次,读取后不再读取 */
    if (FALSE == g_stDmsMainInfo.bPortCfgFlg)
    {
        lReadNvRet = DRV_NVE_ACCESS(&stAtServerNv);
        g_dms_debug_atserv_nv_info.lOperatRet       = lReadNvRet;
        g_dms_debug_atserv_nv_info.ulNvValue        = stAtServerNv.nv_data[0];

        g_stDmsMainInfo.bPortCfgFlg                 = TRUE;

        /* nv值为1表示有at sever,非1表示无at sever,无at sever打开pcui和ctrl口 */
        if(1 != stAtServerNv.nv_data[0] || ERR_MSP_SUCCESS != lReadNvRet)
        {
            g_stDmsMainInfo.ulPortCfgValue = DMS_TEST_MODE;
        }
        else
        {
            g_stDmsMainInfo.ulPortCfgValue = DMS_NORMAL_MODE;
        }
    }

    if (DMS_TEST_MODE == g_stDmsMainInfo.ulPortCfgValue)
    {
        g_stDmsMainInfo.bPortOpenFlg = TRUE;

        /*打开 AT PCUI 通道*/
        ulRet = dmsVcomAtPcuiOpen();
        if(ERR_MSP_SUCCESS!=ulRet)
        {
            DMS_DEBUG_SDM_FUN(EN_SDM_DMS_INIT_ERR,0, 0, 3);
        }

        /*打开 AT CTRL 通道*/
        ulRet = dmsVcomCtrolOpen();
        if(ERR_MSP_SUCCESS!=ulRet)
        {
            DMS_DEBUG_SDM_FUN(EN_SDM_DMS_INIT_ERR,0, 0, 5);
        }
    }

    /*打开 NDIS CTRL 通道*/
    ulRet =  dms_NcmCfg();
    if(ERR_MSP_SUCCESS!=ulRet)
    {
        DMS_DEBUG_SDM_FUN(EN_SDM_DMS_INIT_ERR,0, 0, 4);
    }

    g_ulNdisCfgFlag = 1;

    return ;

}