/*****************************************************************************
 函 数 名  : at_ftm_ltcommcmd_set
 功能描述  : ID_MSG_FTM_SET_LTCOMMCMD_REQ 处理函数
             进行LTE频段切换
 输入参数  : 无
 输出参数  : 无
 返 回 值  : 成功返回ERR_MSP_SUCCESS, 否则返回其他结果
*****************************************************************************/
VOS_UINT32 at_ftm_ltcommcmd_set(VOS_VOID* pParam)
{
	/*lint -save -e813*/
    FTM_SET_LTCOMMCMD_CNF_STRU  stCnf = { 0 };
    FTM_SET_LTCOMMCMD_REQ_STRU* pstFtmReq   = (FTM_SET_LTCOMMCMD_REQ_STRU*)pParam;
    OM_PHY_COMM_CMD_SET_REQ_STRU stReqToDsp = { 0 };
	/*lint -restore*/
    VOS_UINT32 ulRet = ERR_MSP_SUCCESS;
    VOS_UINT32 i     = 0;

    VOS_MemSet(&ftm_GetMainInfo()->stRdLtCommCmdCnf, 0, sizeof(FTM_RD_LTCOMMCMD_CNF_STRU));
    ftm_GetMainInfo()->stRdLtCommCmdCnf.ulErrCode = ERR_MSP_SUCCESS;

    stReqToDsp.ulMsgId   = OM_PHY_COMM_CMD_SET_REQ;
    stReqToDsp.ulDataLen = pstFtmReq->ulDataLen;
    VOS_MemCpy(stReqToDsp.cData, pstFtmReq->cData, stReqToDsp.ulDataLen);  

    vos_printf("at_ftm_ltcommcmd_set: 1\n");
    for(i=0; i<pstFtmReq->ulDataLen; i++)
    {
       if(i%10 == 0)
       {
          vos_printf("\n");
       }
       vos_printf("%02X", stReqToDsp.cData[i]);     
    }
    vos_printf("\n");

    switch(pstFtmReq->ulCmdDest)
    {
        case EN_LTCOMMCMD_DEST_LDSP_CT:
            ulRet = ftm_mailbox_ltect_write(&stReqToDsp, sizeof(OM_PHY_COMM_CMD_SET_REQ_STRU));
            break;

        case EN_LTCOMMCMD_DEST_LDSP_BT:
            ulRet = ftm_mailbox_ltebt_write(&stReqToDsp, sizeof(OM_PHY_COMM_CMD_SET_REQ_STRU));
            break;

        case EN_LTCOMMCMD_DEST_TDSP_CT:
            ulRet = ftm_mailbox_tdsct_write(&stReqToDsp, sizeof(OM_PHY_COMM_CMD_SET_REQ_STRU));
            break;

        case EN_LTCOMMCMD_DEST_TDSP_BT:
            ulRet = ftm_mailbox_tdsbt_write(&stReqToDsp, sizeof(OM_PHY_COMM_CMD_SET_REQ_STRU));
            break;

        default:
            ulRet = ERR_MSP_FAILURE;
    }

    if (ERR_MSP_SUCCESS != ulRet)
    {
        stCnf.ulErrCode = ERR_MSP_UNKNOWN;
        stCnf.ulDataLen = 0;
        
        return ftm_comm_send(ID_MSG_FTM_SET_LTCOMMCMD_CNF,
            (VOS_UINT32)&stCnf, sizeof(FTM_SET_LTCOMMCMD_CNF_STRU));
    }  
    return ERR_MSP_WAIT_ASYNC;
}
/*****************************************************************************
 函 数 名  : ftm_mailbox_bt_write
 功能描述  : 写LTE BT类型数据到邮箱
 输入参数  : param 原语内容
             ulLen 原语长度
 输出参数  : 无
 返 回 值  : 无
*****************************************************************************/
VOS_UINT32 ftm_mailbox_bt_write(VOS_UINT32 mode, VOS_VOID* param,VOS_UINT32 ulLen)
{
    VOS_UINT32 ulRet = ERR_MSP_SUCCESS;

    if(EN_FCHAN_MODE_TD_SCDMA == mode)
    {
        ulRet = ftm_mailbox_tdsbt_write(param, ulLen);
    }
    else
    {
        ulRet = ftm_mailbox_ltebt_write(param, ulLen);
    }

    return ulRet;
}