📄 rct_ctrl.cpp
字号:
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2005
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*****************************************************************************
*
* Filename:
* ---------
* RCT_ctrl.cpp
*
* Project:
* --------
* Maui META APP
*
* Description:
* ------------
* Radio Communication Tester control function source
*
* Author:
* -------
* Andy Ueng (mtk00490)
*
*============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* $Revision$
* $Modtime$
* $Log$
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*============================================================================
****************************************************************************/
#include <vcl.h>
#ifndef age1960_INCLUDE
#include "age1960.h"
#endif
#pragma hdrstop
#ifndef _RCT_CTRL_H_
#include "rct_ctrl.h"
#endif
#ifndef _RCT_COMMON_H_
#include "rct_common.h"
#endif
// equipment
#ifndef _AGECOMMON_H_
#include "agecommon.h"
#endif
#ifndef _AGE1960_UTILS_H_
#include "age1960_utils.h"
#endif
#ifndef _AGE1968A_H_
#include "age1968a.h"
#endif
#ifndef _CMU200_SIG_H_
#include "cmu200_sig.h"
#endif
//===========================================================================
//===========================================================================
CRCTCTRL::CRCTCTRL( void )
{
}
//---------------------------------------------------------------------------
CRCTCTRL::~CRCTCTRL()
{
}
//=============================================================================
bool CRCTCTRL::RCT_Init(S_RCT *p_rct, AnsiString asFreqBand)
{
//-----------------------------------------------------------------------
// Agilent
if(p_rct->device_type == AGILENT_8960)
{
ViStatus vistat;
if ((vistat = age1960_init( p_rct->age.ADD.c_str(), 0, 0, &(p_rct->age.vi))) != VI_SUCCESS)
{
return false;
}
//////////////////////////////////////////////////////////////////////////////
if ( (vistat = age_QueryTaModel( p_rct->age.vi, &(p_rct->age.as_TaModel) )) != VI_SUCCESS)
{
return false;
}
//////////////////////////////////////////////////////////////////////////////
Sleep(50);
if ( p_rct->age.vi != VI_NULL)
{
if ( age1960_dcl(p_rct->age.vi)!= VI_SUCCESS)
{
return false;
}
}
//////////////////////////////////////////////////////////////////////////////
Sleep(50);
if ( p_rct->age.vi != VI_NULL)
{
vistat = age1960_reset(p_rct->age.vi);
if (vistat != VI_SUCCESS)
{
return false;
}
}
/////////////////////////////////////////////////////////////////////////////
vistat = age1960_timeOut(p_rct->age.vi, p_rct->age.TMO);
if (vistat != VI_SUCCESS)
{
return false;
}
/////////////////////////////////////////////////////////////////////////////
const AMP_OFFSET_ITEMS = 10;
ViReal64 freqArray[AMP_OFFSET_ITEMS] = { 400000000.0,
641000000.0,
641100000.0,
876000000.0,
876100000.0,
1312000000.0,
1312100000.0,
1880000000.0,
1881000000.0,
2000000000.0 };
ViReal64 offsetArray[AMP_OFFSET_ITEMS] = { p_rct->age.d400,
p_rct->age.d400,
p_rct->age.d850,
p_rct->age.d850,
p_rct->age.d900,
p_rct->age.d900,
p_rct->age.d1800,
p_rct->age.d1800,
p_rct->age.d1900,
p_rct->age.d1900
};
if ((vistat = age1960_amplitudeOffset (
p_rct->age.vi,
freqArray,
offsetArray,
AMP_OFFSET_ITEMS
)) != VI_SUCCESS)
{
return false;
}
}
else if(p_rct->device_type == CMU_200)
{
//--------------To Do CMU200 Functions------------------
//************************************************************
#if 0
cmu.loss_gsm850_i = rct.cmu.dIn850;
cmu.loss_gsm850_o = rct.cmu.dOut850;
cmu.loss_gsm_i = rct.cmu.dIn900;
cmu.loss_gsm_o = rct.cmu.dOut900;
cmu.loss_dcs_i = rct.cmu.dIn1800;
cmu.loss_dcs_o = rct.cmu.dOut1800;
cmu.loss_pcs_i = rct.cmu.dIn1900;
cmu.loss_pcs_o = rct.cmu.dOut1900;
cmu.ADD = p_rct->as_GPIBAddr.SubString(0, p_rct->as_GPIBAddr.Pos("::INSTR")-1);
cmu.TMO = p_rct->i_TimeOut;
#endif
p_rct->cmu.BAND = "GSM";
if( !cmu_init_RCT( &(p_rct->cmu), asFreqBand, p_rct->bReset ) )
{
// Application->MessageBox( "Initial CMU200 fail", "Fail", MB_OK );
return false;
}
Sleep(1500);
}
/////////////////////////////////////////////////////////////////////////////
return true;
}
//--------------------------------------------------------------------------
bool CRCTCTRL::RCT_dcl( S_RCT *p_rct )
{
if(p_rct->device_type == AGILENT_8960)
{
if ( age1960_dcl( p_rct->age.vi )!= VI_SUCCESS)
{
return false;
}
}
return true;
}
//--------------------------------------------------------------------------
bool CRCTCTRL::RCT_reset( S_RCT *p_rct )
{
if(p_rct->device_type == AGILENT_8960)
{
if ((age1960_reset( p_rct->age.vi )) != VI_SUCCESS)
{
return false;
}
}
return true;
}
//--------------------------------------------------------------------------
bool CRCTCTRL::RCT_close(S_RCT *p_rct, AnsiString asFreqBand)
{
if (AGILENT_8960 == p_rct->device_type)
{
if (age1960_close(p_rct->age.vi)!= VI_SUCCESS)
{
return false;
}
p_rct->age.vi = NULL;
}
else
{
if(!cmu_close(&p_rct->cmu, asFreqBand))
{
return false;
}
}
return true;
}
//--------------------------------------------------------------------------
bool CRCTCTRL::RCT_close_RM(S_RCT *p_rct)
{
if (AGILENT_8960 == p_rct->device_type)
{
}
else
{
if (!cmu_close_RM(&(p_rct->cmu)))
{
return false;
}
}
return true;
}
//--------------------------------------------------------------------------
bool CRCTCTRL::RCT_QueryTaModel(S_RCT *p_rct, AnsiString &asTaModel)
{
if(p_rct->device_type == AGILENT_8960)
{
if ( age_QueryTaModel( p_rct->age.vi, &asTaModel ) != VI_SUCCESS )
{
return false;
}
}
else
{
}
return true;
}
//--------------------------------------------------------------------------
bool CRCTCTRL::RCT_operatingMode( S_RCT *p_rct, ViInt16 OperatingMode )
{
if(p_rct->device_type == AGILENT_8960)
{
if( p_rct->age.as_TaModel.AnsiCompareIC( "E1960A" ) == 0)
{
if ((age1960A_operatingMode(
p_rct->age.vi,
OperatingMode
))!= VI_SUCCESS)
{
return false;
}
}
else
{
if (( age1968A_operatingMode(p_rct->age.vi, (E_AGE_OPERATING_MODE)OperatingMode))!= VI_SUCCESS)
{
return false;
}
}
}
return true;
}
//--------------------------------------------------------------------------
bool CRCTCTRL::RCT_cellBand(S_RCT *p_rct, int i_BAND)
{
if(p_rct->device_type == AGILENT_8960)
{
if ( age1960_cellBand(
p_rct->age.vi,
age1960_CELL_1,
i_BAND
) != VI_SUCCESS )
{
return false;
}
}
else if(p_rct->device_type == CMU_200)
{
if( !cmu_cellband(i_BAND, &(p_rct->cmu)) )
{
return false;
}
}
return true;
}
//--------------------------------------------------------------------------
bool CRCTCTRL::RCT_BurstModTran( S_RCT *p_rct )
{
if(p_rct->device_type == AGILENT_8960)
{
}
else if(p_rct->device_type == CMU_200)
{
if( !cmu_mod_tran(&(p_rct->cmu), true) )
{
return false;
}
}
return true;
}
//--------------------------------------------------------------------------
bool CRCTCTRL::RCT_ContModTran( S_RCT *p_rct )
{
if(p_rct->device_type == AGILENT_8960)
{
}
else if(p_rct->device_type == CMU_200)
{
if( !cmu_mod_tran(&(p_rct->cmu), false) )
{
return false;
}
}
return true;
}
//--------------------------------------------------------------------------
bool CRCTCTRL::RCT_BCHARFCN(S_RCT *p_rct, short s_ARFCN)
{
if (AGILENT_8960 == p_rct->device_type)
{
if (age1960_BCHARFCN(p_rct->age.vi,
age1960_CELL_1,
s_ARFCN,
age1960_CURRENT_BAND,
VI_TRUE
) != VI_SUCCESS)
{
return false;
}
}
else
{
if (!cmu_bcharfcn(s_ARFCN, &(p_rct->cmu)))
{
return false;
}
}
return true;
}
//--------------------------------------------------------------------------
bool CRCTCTRL::RCT_GenFreq_CW(S_RCT *p_rct, FrequencyBand FreqBand, short arfcn)
{
if (AGILENT_8960 == p_rct->device_type)
{
if (age1968A_GenFreq_CW(p_rct->age.vi, FreqBand, arfcn) != VI_SUCCESS)
{
}
}
else
{
}
return true;
}
//--------------------------------------------------------------------------
bool CRCTCTRL::RCT_cellPower_CW(S_RCT *p_rct, double d_P_DL)
{
if (AGILENT_8960 == p_rct->device_type)
{
if (age1968A_cellPower_CW(p_rct->age.vi, d_P_DL) != VI_SUCCESS)
{
return false;
}
}
else if(p_rct->device_type == CMU_200)
{
if (!cmu_cellpower(d_P_DL, &(p_rct->cmu)))
{
return false;
}
}
return true;
}
//--------------------------------------------------------------------------
bool CRCTCTRL::RCT_cellPower(S_RCT *p_rct, double d_P_DL)
{
if (AGILENT_8960 == p_rct->device_type)
{
if (age1960_cellPower(p_rct->age.vi, age1960_CELL_1, d_P_DL, 0) != VI_SUCCESS)
{
return false;
}
}
else if(p_rct->device_type == CMU_200)
{
if( !cmu_cellpower( d_P_DL, &(p_rct->cmu) ) )
{
return false;
}
}
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -