//*****************************************************************************
// 功能描述: 设置发射机的发射功率
//
// 参数说明:
//   ulIndex [in] ...
//                ...
//
// 返 回 值:
//    TODO: ...
//*****************************************************************************
VOS_UINT32 atSetFPOWPara(VOS_UINT8 ucClientId)
{
    FTM_FPOW_REQ_STRU stFPOWSetReq = {0};
    VOS_UINT32 ulRst = 0;
    VOS_INT16 sPower = 0;

    /*lint -e516*/
    HAL_SDMLOG("-----enter:[%s] \n", __FUNCTION__);
    /*lint -e516*/

    // 参数检查
    if(AT_CMD_OPT_SET_PARA_CMD != g_stATParseCmd.ucCmdOptType)
    {
        return AT_CME_INCORRECT_PARAMETERS;
    }

    if(1 != gucAtParaIndex)
    {
        return AT_CME_INCORRECT_PARAMETERS;
    } 

    if(0 != gastAtParaList[0].usParaLen)
    {
        //sPower = (S16_T)atoi((CONST CHAR_T*)(gastAtParaList[0].aucPara));
        //sPower = gastAtParaList[0].ulParaValue;
        ulRst = initParaListS16((AT_PARSE_PARA_TYPE_STRU *)(&(gastAtParaList[0])),1,(VOS_INT16*)(&sPower));

        if(ulRst != ERR_MSP_SUCCESS)
        {
            return AT_CME_INCORRECT_PARAMETERS;
        }
        
        if(-60 > sPower || 24 < sPower)
        {
            return AT_CME_INCORRECT_PARAMETERS;
        }
    }
    else
    {
        return AT_CME_INCORRECT_PARAMETERS;
    }

    stFPOWSetReq.sPower = sPower;
      
    //(S16_T)(gastAtParaList[0].ulParaValue);
    HAL_SDMLOG("-----[%s]:send data to C-core \n", __FUNCTION__);

    ulRst = atSendFtmDataMsg(MSP_SYS_FTM_PID, ID_MSG_FTM_FPOW_REQ, ucClientId, (VOS_VOID*)(&stFPOWSetReq), sizeof(stFPOWSetReq));

    if(AT_SUCCESS == ulRst)
    {
        // 设置当前操作类型
        gastAtClientTab[ucClientId].CmdCurrentOpt = AT_CMD_FPOW_SET;

        return AT_WAIT_ASYNC_RETURN;    
        // 返回命令处理挂起状态
     }

    return AT_ERROR;
}
VOS_UINT32 atSetFCHANPara(VOS_UINT8 ucClientId)
{
    FTM_SET_FCHAN_REQ_STRU stFCHANSetReq = {(FCHAN_MODE_ENUM)0, };
    VOS_UINT32 ulRst;
    /* 参数检查
 */
    if(AT_CMD_OPT_SET_PARA_CMD != g_stATParseCmd.ucCmdOptType)
    {
        return ERR_MSP_INVALID_PARAMETER;
    }

    if(3 != gucAtParaIndex)
    {
        return ERR_MSP_INVALID_PARAMETER;
    }

    if(0 == gastAtParaList[0].usParaLen)
    {
        return ERR_MSP_INVALID_PARAMETER;
    }

    if(0 == gastAtParaList[1].usParaLen)
    {
        return ERR_MSP_INVALID_PARAMETER;
    }

    if(0 == gastAtParaList[2].usParaLen)
    {
        return ERR_MSP_INVALID_PARAMETER;
    }

    stFCHANSetReq.enFchanMode = (FCHAN_MODE_ENUM)(gastAtParaList[0].ulParaValue);
    stFCHANSetReq.ucBand = (VOS_UINT8)(gastAtParaList[1].ulParaValue);
	stFCHANSetReq.usChannel = (VOS_UINT16)(gastAtParaList[2].ulParaValue);

	(VOS_VOID)AT_SetGlobalFchan((VOS_UINT8)(gastAtParaList[0].ulParaValue));



    ulRst = atSendFtmDataMsg(MSP_SYS_FTM_PID, ID_MSG_FTM_SET_FCHAN_REQ,ucClientId, (VOS_VOID*)(&stFCHANSetReq), sizeof(stFCHANSetReq));

    if(AT_SUCCESS == ulRst)
    {
        /* 设置当前操作类型
 */
        gastAtClientTab[ucClientId].CmdCurrentOpt = AT_CMD_FCHAN_SET;
        return AT_WAIT_ASYNC_RETURN;    /* 返回命令处理挂起状态
 */
    }

    return AT_ERROR;
}
VOS_UINT32 atSetVCTCXOPara(VOS_UINT8 ucClientId)
{
    FTM_SET_FVCTCXO_REQ_STRU stVCTCXOSetReq = {0};
    VOS_UINT32 ulRst;

    /* 参数检查
 */
    if(AT_CMD_OPT_SET_PARA_CMD != g_stATParseCmd.ucCmdOptType)
    {
        return AT_CME_INCORRECT_PARAMETERS;
    }

    if(1 != gucAtParaIndex)
    {
        return AT_CME_INCORRECT_PARAMETERS;
    }

    if(0 == gastAtParaList[0].usParaLen)
    {
        return AT_CME_INCORRECT_PARAMETERS;
    }

    stVCTCXOSetReq.ulVol = gastAtParaList[0].ulParaValue;

    /* TO DO, 待VCTCXO电压范围确定后需对电压是否过高做出判断
 */
    /* 如设置电压值过高,则返回提示用户
 */
    /* 和深圳老高初步确认
 */
#if 0
    if(((0x8200 - 200) > stVCTCXOSetReq.ulVol) || ((0x8200 + 200) < stVCTCXOSetReq.ulVol))
    {
        return ERR_MSP_VCTCXO_OVER_HIGH;
    }
#endif


    ulRst = atSendFtmDataMsg(MSP_SYS_FTM_PID, ID_MSG_FTM_SET_FVCTCXO_REQ,ucClientId, (VOS_VOID*)(&stVCTCXOSetReq), sizeof(stVCTCXOSetReq));

    if(AT_SUCCESS == ulRst)
    {
        /* 设置当前操作类型
 */
        gastAtClientTab[ucClientId].CmdCurrentOpt = AT_CMD_FVCTCXO_SET;
        return AT_WAIT_ASYNC_RETURN;    /* 返回命令处理挂起状态
 */
    }

    return AT_ERROR;
}
/* added by b00258643, 2014-04-25 */
VOS_UINT32 atQryFPllStatusPara(VOS_UINT8 ucClientId)
{
    FTM_RD_FPLLSTATUS_REQ_STRU stFPLLSTATUSQryReq = {0};
    VOS_UINT32 ulRst;

    ulRst = atSendFtmDataMsg(MSP_SYS_FTM_PID, ID_MSG_FTM_RD_FPLLSTATUS_REQ,ucClientId, (VOS_VOID*)(&stFPLLSTATUSQryReq), sizeof(stFPLLSTATUSQryReq));
    if(AT_SUCCESS == ulRst)
    {
        gastAtClientTab[ucClientId].CmdCurrentOpt = AT_CMD_FPLLSTATUS_READ;
        return AT_WAIT_ASYNC_RETURN;
    }

    return AT_ERROR;
}
VOS_UINT32  AT_SetLteSdloadPara(VOS_UINT8 ucClientId)
{
    FTM_RD_SDLOAD_REQ_STRU stSdloadSetReq = {0};
    VOS_UINT32 ulRst;

    ulRst = atSendFtmDataMsg(MSP_SYS_FTM_PID, ID_MSG_FTM_SET_SDLOAD_REQ, ucClientId, (VOS_VOID*)(&stSdloadSetReq),
        sizeof(stSdloadSetReq));

    if(AT_SUCCESS == ulRst)
    {
        gastAtClientTab[ucClientId].CmdCurrentOpt = AT_CMD_SDLOAD_SET;
        return AT_WAIT_ASYNC_RETURN;
    }

    return AT_ERROR;
}
VOS_UINT32 atSetFWAVEPara(VOS_UINT8 ucClientId)
{
    VOS_UINT32 ulRst;
    FTM_SET_FWAVE_REQ_STRU stFWaveSetReq = { 0 };

    /* 参数检查
 */
    if(AT_CMD_OPT_SET_PARA_CMD != g_stATParseCmd.ucCmdOptType)
    {
        return ERR_MSP_INVALID_PARAMETER;
    }

    if(2 != gucAtParaIndex)
    {
        return ERR_MSP_INVALID_PARAMETER;
    }

    if(0 == gastAtParaList[0].usParaLen)
    {
        return ERR_MSP_INVALID_PARAMETER;
    }

    if(0 == gastAtParaList[1].usParaLen)
    {
        return ERR_MSP_INVALID_PARAMETER;
    }

    stFWaveSetReq.usType  = gastAtParaList[0].ulParaValue;
    stFWaveSetReq.usPower = gastAtParaList[1].ulParaValue;

    ulRst = atSendFtmDataMsg(MSP_SYS_FTM_PID, ID_MSG_FTM_SET_FWAVE_REQ,ucClientId,
        (VOS_VOID*)(&stFWaveSetReq), sizeof(stFWaveSetReq));


	if(AT_SUCCESS == ulRst)
    {
        /* 设置当前操作类型
 */
        gastAtClientTab[ucClientId].CmdCurrentOpt = AT_CMD_FWAVE_SET;
        return AT_WAIT_ASYNC_RETURN;    /* 返回命令处理挂起状态
 */
    }

    return AT_ERROR;
}
Exemplo n.º 7
0
VOS_UINT32 AT_SetIsmcoexPara(VOS_UINT8 ucIndex)
{
    VOS_INT32  ret;
    VOS_UINT32 ulRet, i, j;
    VOS_UINT32 *pulVal;     /* 将要存储的值指针 */
    VOS_UINT8 *pucPara;     /* 参数字符串头指针 */
    VOS_UINT8 *pucCur;      /* 解析字符串时的当前指针 */

    if((AT_CMD_OPT_SET_PARA_CMD != g_stATParseCmd.ucCmdOptType)
            ||(L4A_ISMCOEX_BANDWIDTH_NUM != gucAtParaIndex))
    {
        return AT_CME_INCORRECT_PARAMETERS;
    }

    for(i = 0; i < L4A_ISMCOEX_BANDWIDTH_NUM; i++)
    {
        pucCur = gastAtParaList[i].aucPara;
        pulVal = &(g_astIsmcoex[i].ulFlag);

        for(j = 0; j < sizeof(ISMCOEX_INFO_STRU)/sizeof(VOS_UINT32); j++)
        {
            pucPara = pucCur;
            ret = IsmcoexGetParaValue(pucPara, &pucCur);
            if(AT_COEX_INVALID == ret)
            {
                return AT_CME_INCORRECT_PARAMETERS;
            }
            *pulVal = (VOS_UINT32)ret;
            pulVal++;
        }
    }

    /* 发送消息给命令处理模块 */
    if(atSendFtmDataMsg(MSP_SYS_FTM_PID, ID_MSG_FTM_ISMCOEXSET_REQ,
                        ucIndex ,  (VOS_VOID*)(&g_astIsmcoex), sizeof(g_astIsmcoex)) != AT_SUCCESS)
    {
        return AT_ERROR;
    }

    gastAtClientTab[ucIndex].CmdCurrentOpt = AT_CMD_ISMCOEX_SET;
    return AT_WAIT_ASYNC_RETURN;
}
VOS_UINT32 atSetFRXONPara(VOS_UINT8 ucClientId)
{
    FTM_SET_RXON_REQ_STRU stFRXONSetReq = {0};
    VOS_UINT32 ulRst;

    /* 参数检查
 */
    if(AT_CMD_OPT_SET_PARA_CMD != g_stATParseCmd.ucCmdOptType)
    {
        return AT_CME_INCORRECT_PARAMETERS;
    }

    if(1 != gucAtParaIndex)
    {
        return AT_CME_INCORRECT_PARAMETERS;
    }

    if(0 == gastAtParaList[0].usParaLen)
    {
        return AT_CME_INCORRECT_PARAMETERS;
    }


    stFRXONSetReq.ulRxSwt = gastAtParaList[0].ulParaValue;


    ulRst = atSendFtmDataMsg(MSP_SYS_FTM_PID, ID_MSG_FTM_SET_RXON_REQ,ucClientId, (VOS_VOID*)(&stFRXONSetReq), sizeof(stFRXONSetReq));

    if(AT_SUCCESS == ulRst)
    {
        /* 设置当前操作类型
 */
        gastAtClientTab[ucClientId].CmdCurrentOpt = AT_CMD_FRXON_SET;
        return AT_WAIT_ASYNC_RETURN;    /* 返回命令处理挂起状态
 */
    }

    return AT_ERROR;
}
VOS_UINT32 atSetTselrfPara(VOS_UINT8 ucClientId)
{
    FTM_SET_TSELRF_REQ_STRU stTselrfSetReq = { 0 };
    VOS_UINT32 ulRst = AT_SUCCESS;
    VOS_UINT32 Rst;
    VOS_UINT8 ulPath = 0 ;


    VOS_CHAR acCmd[200]={0};



    if(AT_CMD_OPT_SET_PARA_CMD != g_stATParseCmd.ucCmdOptType)
    {
        return ERR_MSP_INVALID_PARAMETER;
    }

    if((1 != gucAtParaIndex) &&
       (2 != gucAtParaIndex))
    {
        return ERR_MSP_INVALID_PARAMETER;
    }

    if(0 == gastAtParaList[0].usParaLen)
    {
        return ERR_MSP_INVALID_PARAMETER;
    }

    ulPath = (VOS_UINT8)(gastAtParaList[0].ulParaValue);

    if((FTM_TSELRF_FDD_LTE_MAIN     == ulPath)
        || (FTM_TSELRF_TDD_LTE_MAIN == ulPath)
        || (FTM_TSELRF_FDD_LTE_SUB  == ulPath)
        || (FTM_TSELRF_TDD_LTE_SUB  == ulPath)
        || (FTM_TSELRF_TD           == ulPath))
    
    {
        stTselrfSetReq.ucPath  = ulPath;
        stTselrfSetReq.ucGroup = (VOS_UINT8)gastAtParaList[1].ulParaValue;
    
    }
    else if(FTM_TSELRF_WIFI == ulPath)
    {
#ifdef VERSION_V7R1_C010
        ulRst=BSP_HwIsSupportWifi();
#endif
        if(ulRst == ERR_MSP_SUCCESS)
        {
            /*WIFI未Enable直接返回失败*/
            if(VOS_FALSE == (VOS_UINT32)WIFI_GET_STATUS())
            {
                return AT_ERROR;
            }

            if((0 != gastAtParaList[1].ulParaValue) && (1 != gastAtParaList[1].ulParaValue))
            {
                return AT_ERROR;
            }

            g_ulWifiRF = gastAtParaList[1].ulParaValue;


            Rst = (VOS_UINT32)VOS_sprintf(acCmd, "wl txchain %d", (gastAtParaList[1].ulParaValue + 1));
            if(Rst != ERR_MSP_SUCCESS)
            {

            }

            WIFI_TEST_CMD(acCmd);

            Rst = (VOS_UINT32)VOS_sprintf(acCmd, "wl rxchain %d", (gastAtParaList[1].ulParaValue + 1));
            if(Rst != ERR_MSP_SUCCESS)
            {

            }

            WIFI_TEST_CMD(acCmd);


            Rst = (VOS_UINT32)VOS_sprintf(acCmd, "wl txant %d", gastAtParaList[1].ulParaValue);
            if(Rst != ERR_MSP_SUCCESS)
            {

            }

            WIFI_TEST_CMD(acCmd);

            Rst = (VOS_UINT32)VOS_sprintf(acCmd, "wl antdiv %d", gastAtParaList[1].ulParaValue);
            if(Rst != ERR_MSP_SUCCESS)
            {

            }

            WIFI_TEST_CMD(acCmd);

            return AT_OK;
        }
    }
    else
    {
        return ERR_MSP_INVALID_PARAMETER;
    }

    ulRst = atSendFtmDataMsg(MSP_SYS_FTM_PID, ID_MSG_FTM_SET_TSELRF_REQ, ucClientId,(VOS_VOID*)(&stTselrfSetReq), sizeof(stTselrfSetReq));

    if(AT_SUCCESS == ulRst)
    {
        /* 设置当前操作类型
 */
        gastAtClientTab[ucClientId].CmdCurrentOpt = AT_CMD_TSELRF_SET;
        return AT_WAIT_ASYNC_RETURN;    /* 返回命令处理挂起状态
 */
    }

    return ulRst;
}
VOS_UINT32 atSetTBATPara(VOS_UINT8 ucClientId)
{
    FTM_SET_TBAT_REQ_STRU stTbatSet ={0};
    FTM_RD_TBAT_REQ_STRU  stTbatRd={0};

    VOS_UINT8  ucType = 0;
    VOS_UINT8  ucOpr = 0;
    VOS_UINT16 usValue = 0;
    VOS_UINT32 ulRst=0;

    /* 参数检查
 */
    if(AT_CMD_OPT_SET_PARA_CMD != g_stATParseCmd.ucCmdOptType)
    {
        return AT_CME_INCORRECT_PARAMETERS;
    }

    if(4 < gucAtParaIndex)
    {
        return AT_CME_INCORRECT_PARAMETERS;
    }

    if((0 == gastAtParaList[0].usParaLen) ||
       (0 == gastAtParaList[1].usParaLen) )
    {
        return AT_CME_INCORRECT_PARAMETERS;
    }

    ucType = (VOS_UINT8)(gastAtParaList[0].ulParaValue);
    ucOpr = (VOS_UINT8)(gastAtParaList[1].ulParaValue);

    if( ucOpr == 1 )
    {
        /*设置
 */
        if(0 != gastAtParaList[2].usParaLen)/* [false alarm]:fortify */
        {
            usValue = gastAtParaList[2].usParaLen;/* [false alarm]:fortify*/

            stTbatSet.ucOpr = ucOpr;/* [false alarm]:fortify */
            stTbatSet.ucType = ucType;/* [false alarm]:fortify */
            stTbatSet.usValueMin = (VOS_UINT16)gastAtParaList[2].ulParaValue;/* [false alarm]:fortify */
            stTbatSet.usValueMax = (VOS_UINT16)gastAtParaList[3].ulParaValue;/* [false alarm]:fortify */

            HAL_SDMLOG("\n stTbatSet.usValueMin=%d,stTbatSet.usValueMax=%d\n",stTbatSet.usValueMin,stTbatSet.usValueMax);

            ulRst = atSendFtmDataMsg(MSP_SYS_FTM_PID, ID_MSG_FTM_SET_TBAT_REQ,ucClientId, (VOS_VOID*)(&stTbatSet), sizeof(stTbatSet));/* [false alarm]:fortify */
            if(AT_SUCCESS == ulRst)
            {
                gastAtClientTab[ucClientId].CmdCurrentOpt = AT_CMD_TBAT_SET;
                return AT_WAIT_ASYNC_RETURN;
            }
            return AT_ERROR;
        }
        else
        {
            return AT_ERROR;
        }
    }
    else if( ucOpr == 0 )
    {
        /*查询
 */
        usValue = (VOS_UINT16)gastAtParaList[2].usParaLen;/* [false alarm]:fortify */

        stTbatRd.ucOpr = ucOpr;/* [false alarm]:fortify */
        stTbatRd.ucType = ucType;/* [false alarm]:fortify */
        stTbatRd.usValue = usValue;

        ulRst = atSendFtmDataMsg(MSP_SYS_FTM_PID, ID_MSG_FTM_RD_TBAT_REQ,ucClientId, (VOS_VOID*)(&stTbatRd), sizeof(stTbatRd));
        if(AT_SUCCESS == ulRst)
        {
            gastAtClientTab[ucClientId].CmdCurrentOpt = AT_CMD_TBAT_READ;
            return AT_WAIT_ASYNC_RETURN;
        }
        return AT_ERROR;

    }
    else
    {
        return AT_CME_INCORRECT_PARAMETERS;
    }
}