?? cmu200.h
字號:
/*****************************************************************************
* 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:
* ---------
* cmu200.h
*
* Project:
* --------
* Maui META APP
*
* Description:
* ------------
* CMU 200 function header
*
* 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!!
*============================================================================
****************************************************************************/
#ifndef _CMU200_H_
#define _CMU200_H_
#include <vcl.h>
#include <stdio.h>
// equipment
#include "visa.h"
// RF
#ifndef _RF_BAND_H_
#include "rf_band.h"
#endif
#define CMU_PGSM_BAND 1 /* PGSM band */
#define CMU_EGSM_BAND 2 /* EGSM band */
#define CMU_DCS1800_BAND 3 /* DCS 1800 band */
#define CMU_PCS1900_BAND 4 /* PCS 1900 band */
#define CMU_GSM850_BAND 5 /* GSM 850 band */
// generator
typedef enum
{
CMU200_GEN_TSC_ALL_ZERO = 0,
CMU200_GEN_TSC_GSM_0,
CMU200_GEN_TSC_GSM_1,
CMU200_GEN_TSC_GSM_2,
CMU200_GEN_TSC_GSM_3,
CMU200_GEN_TSC_GSM_4,
CMU200_GEN_TSC_GSM_5,
CMU200_GEN_TSC_GSM_6,
CMU200_GEN_TSC_GSM_7,
CMU200_GEN_TSC_DUMMY
}E_CMU200_GEN_TSC_TYPE_T;
typedef enum
{
CMU200_GEN_BIT_MODU_OFF = 0,
CMU200_GEN_BIT_MODU_ALL_ZERO,
CMU200_GEN_BIT_MODU_PRBS,
CMU200_GEN_BIT_MODU_DUMMY_BURST,
CMU200_GEN_BIT_MODU_8_PSK_ALL_ZERO,
CMU200_GEN_BIT_MODU_8_PSK_PRBS
}E_CMU200_GEN_BIT_MODU_T;
// read/fetch/sample modulation category
#define PH_ERR_PEAK_CURRENT 0
#define PH_ERR_PEAK_AVERAGE 1
#define PH_ERR_PEAK_MAX_MIN 2
#define PH_ERR_RMS_CURRENT 3
#define PH_ERR_RMS_AVERAGE 4
#define PH_ERR_RMS_MAX_MIN 5
#define FREQ_ERR_CURRENT 6
#define FREQ_ERR_AVERAGE 7
#define FREQ_ERR_MAX_MIN 8
#define AVG_BURST_POWER_CURRENT 9
#define BURST_OUT_OF_TOTAL 10
// read/fetch/sample 8psk modulation category
typedef enum
{
EPSK_MOD_95TH_PERCENTILE_PH_ERR=0,
EPSK_MOD_PH_ERR_PEAK_CURRENT,
EPSK_MOD_PH_ERR_PEAK_AVERAGE,
EPSK_MOD_PH_ERR_PEAK_MAX_MIN,
EPSK_MOD_PH_ERR_RMS_CURRENT,
EPSK_MOD_PH_ERR_RMS_AVERAGE,
EPSK_MOD_PH_ERR_RMS_MAX_MIN,
EPSK_MOD_ORIGINAL_OFFSET_CURRENT,
EPSK_MOD_ORIGINAL_OFFSET_AVERAGE,
EPSK_MOD_ORIGINAL_OFFSET_MAX_MIN,
EPSK_MOD_FREQ_ERR_CURRENT,
EPSK_MOD_FREQ_ERR_AVERAGE,
EPSK_MOD_FREQ_ERR_MAX_MIN,
EPSK_MOD_AVG_BURST_POWER_CURR,
EPSK_MOD_BURSTS_OUT_OF_TOL,
EPSK_MOD_IQ_IMBALANCE_CURRENT,
EPSK_MOD_IQ_IMBALANCE_AVERAGE,
EPSK_MOD_IQ_IMBALANCE_MAX_MIN,
EPSK_MOD_PH_ERR_END
} E_EPSK_MOD_PH_ERR;
typedef enum
{
EPSK_MOD_OVERVIEW_95TH_PERCENT_EVM = 0,
EPSK_MOD_OVERVIEW_95TH_PERCENT_MAG_ERR,
EPSK_MOD_OVERVIEW_95TH_PERCENT_PH_ERR,
EPSK_MOD_OVERVIEW_EVM_PEAK_CURRENT,
EPSK_MOD_OVERVIEW_EVM_PEAK_AVERAGE,
EPSK_MOD_OVERVIEW_EVM_PEAK_MAX_MIN,
EPSK_MOD_OVERVIEW_EVM_RMS_CURRENT,
EPSK_MOD_OVERVIEW_EVM_RMS_AVERAGE,
EPSK_MOD_OVERVIEW_EVM_RMS_MAX_MIN,
EPSK_MOD_OVERVIEW_MAGN_ERR_PEAK_CURRENT,
EPSK_MOD_OVERVIEW_MAGN_ERR_PEAK_AVERAGE,
EPSK_MOD_OVERVIEW_MAGN_ERR_PEAK_MAX_MIN,
EPSK_MOD_OVERVIEW_MAGN_ERR_RMS_CURRENT,
EPSK_MOD_OVERVIEW_MAGN_ERR_RMS_AVERAGE,
EPSK_MOD_OVERVIEW_MAGN_ERR_RMS_MAX_MIN,
EPSK_MOD_OVERVIEW_PH_ERR_PEAK_CURRENT,
EPSK_MOD_OVERVIEW_PH_ERR_PEAK_AVERAGE,
EPSK_MOD_OVERVIEW_PH_ERR_PEAK_MAX_MIN,
EPSK_MOD_OVERVIEW_PH_ERR_RMS_CURRENT,
EPSK_MOD_OVERVIEW_PH_ERR_RMS_AVERAGE,
EPSK_MOD_OVERVIEW_PH_ERR_RMS_MAX_MIN,
EPSK_MOD_OVERVIEW_ORIGINAL_OFFSET_CURRENT,
EPSK_MOD_OVERVIEW_ORIGINAL_OFFSET_AVERAGE,
EPSK_MOD_OVERVIEW_ORIGINAL_OFFSET_MAX_MIN,
EPSK_MOD_OVERVIEW_IQ_IMBALANCE_CURRENT,
EPSK_MOD_OVERVIEW_IQ_IMBALANCE_AVERAGE,
EPSK_MOD_OVERVIEW_IQ_IMBALANCE_MAX_MIN,
EPSK_MOD_OVERVIEW_FREQ_ERR_CURRENT,
EPSK_MOD_OVERVIEW_FREQ_ERR_AVERAGE,
EPSK_MOD_OVERVIEW_FREQ_ERR_MAX_MIN,
EPSK_MOD_OVERVIEW_AVG_BURST_POWER_CURR,
EPSK_MOD_OVERVIEW_BURSTS_OUT_OF_TOTAL,
EPSK_MOD_OVERVIEW_END
} E_EPSK_MOD_OVERVIEW;
typedef enum
{
EPSK_MOD_
} E_EPSK_MOD;
typedef struct
{
double d_burstpower[4];
}
S_MULTISLOT_BURST_POWER;
typedef enum
{
TIMESLOT_0=0,
TIMESLOT_1,
TIMESLOT_2,
TIMESLOT_3,
TIMESLOT_4,
TIMESLOT_5,
TIMESLOT_6,
TIMESLOT_7,
}E_TIMESLOT;
typedef enum
{
MOD_GMSK=0,
MOD_EPSK
}E_MODULATION_TYPE;
// read/fetch/sample modulation external phase error category
#define XPER_PH_ERR_PEAK_CURRENT 0
#define XPER_PH_ERR_PEAK_AVERAGE 1
#define XPER_PH_ERR_PEAK_MAXMIN 2
#define XPER_PH_ERR_RMS_CURRENT 3
#define XPER_PH_ERR_RMS_AVERAGE 4
#define XPER_PH_ERR_RMS_MAXMIN 5
#define XPER_ORIGINAL_OFFSET_CURRENT 6
#define XPER_ORIGINAL_OFFSET_AVERAGE 7
#define XPER_ORIGINAL_OFFSET_MAXMIN 8
#define XPER_IQ_IMBALANCE_CURRENT 9
#define XPER_IQ_IMBALANCE_AVERAGE 10
#define XPER_IQ_IMBALANCE_MAXMIN 11
#define XPER_FREQ_ERR_CURRENT 12
#define XPER_FREQ_ERR_AVERAGE 13
#define XPER_FREQ_ERR_MAXMIN 14
#define XPER_AVG_BURST_POWER_CURRENT 15
#define XPER_BURST_OUT_OF_TOTAL 16
#define XPER_PHASE_OF_ORIGINAL_OFFSET_VECTOR 17
#define BUF 2048
//---------------------------------------------------------------------------
class CMU_VAR
{
private:
protected:
public:
bool bSigEnable;
int TMO;
ViSession RM, base, gsm, dcs, pcs, gsm850;
AnsiString ADD, BAND;
double loss_gsm850_i;
double loss_gsm850_o;
double loss_gsm_i;
double loss_gsm_o;
double loss_dcs_i;
double loss_dcs_o;
double loss_pcs_i;
double loss_pcs_o;
double loss_bt_i;
double loss_bt_o;
double TXP;
// signalling
ViSession s_gsm;
ViSession s_dcs;
ViSession s_pcs;
ViSession s_gsm850;
ViSession s_bt;
AnsiString s_BAND;
};
//------------------------------------------------------------------------------
//extern bool cmu_init(CMU_VAR *cmu);
extern bool cmu_init_rfg(CMU_VAR *cmu);
extern bool cmu_init_TX_FreqErr(CMU_VAR *cmu);
extern bool cmu_init_RCT(CMU_VAR *cmu, AnsiString asFreqBand, bool bReset );
extern bool cmu_close(CMU_VAR *cmu, AnsiString asFreqBand);
extern bool cmu_close_RM(CMU_VAR *cmu);
//cmu control functions---------------------------------------------------------
extern bool cmu_cellband(int band, CMU_VAR *cmu);
extern bool cmu_pow_cont(bool set, CMU_VAR *cmu);
extern bool cmu_tsc(int tsc, CMU_VAR *cmu);
//cmu generator functions-------------------------------------------------------
extern bool cmu_bcharfcn(short chan, CMU_VAR *cmu);
extern bool cmu_cellpower(double power, CMU_VAR *cmu);
extern bool cmu_gen_freq_offset(CMU_VAR *cmu, double d_freq);
extern bool cmu_gen_tsc(E_CMU200_GEN_TSC_TYPE_T tsc, CMU_VAR *cmu);
extern bool cmu_gen_bit_mod(E_CMU200_GEN_BIT_MODU_T mode, CMU_VAR *cmu);
//cmu analyser functions--------------------------------------------------------
extern bool cmu_tcharfcn(short chan, CMU_VAR *cmu);
extern bool cmu_pdtcharfcn(short chan, CMU_VAR *cmu);
extern bool cmu_mxtxlevel(int lev, CMU_VAR *cmu);
extern bool cmu_config_txpwr_control_mode( CMU_VAR *cmu, int count );
extern bool cmu_config_txpwr_control_mode_epsk( CMU_VAR *cmu, int count );
extern bool cmu_config_txpwr_repetition_single_shot( CMU_VAR *cmu );
extern bool cmu_config_txpwr_repetition_single_shot_epsk( CMU_VAR *cmu );
extern bool cmu_config_txpwr_repetition_continuous( CMU_VAR *cmu );
extern bool cmu_config_txpwr_repetition_continuous_epsk( CMU_VAR *cmu );
extern bool cmu_readtxpower(double *pow, CMU_VAR *cmu);
extern bool cmu_readtxpower_8psk(double *pow, CMU_VAR *cmu);
//-- cmu modulation functions --------------------------------------------------
extern bool cmu_mod_tran(CMU_VAR *cmu,bool is_burst_mode);
extern bool cmu_mod_init(CMU_VAR *cmu);
extern bool cmu_mod_config_control_mode(CMU_VAR *cmu, int count);
extern bool cmu_mod_config_control_mode_8psk(CMU_VAR *cmu, int count);
extern bool cmu_mod_overview_config_control_mode_8psk(CMU_VAR *cmu, int count);
extern bool cmu_mod_config_control_repetition(CMU_VAR *cmu, int count);
extern bool cmu_mod_config_control_repetition_8psk(CMU_VAR *cmu, int count);
extern bool cmu_mod_read(CMU_VAR *cmu, int category, double *mod);
extern bool cmu_mod_read_8psk(CMU_VAR *cmu, int category, double *mod);
extern bool cmu_mod_overview_read_8psk(CMU_VAR *cmu, int category, double *mod);
extern bool cmu_mod_overview_fetch_8psk(CMU_VAR *cmu, int category, double *mod);
extern bool cmu_mod_fetch(CMU_VAR *cmu, int category, double *mod);
extern bool cmu_mod_fetch_8psk(CMU_VAR *cmu, int category, double *mod);
extern bool cmu_mod_sample(CMU_VAR *cmu, int category, double *mod);
extern bool cmu_mod_sample_8psk(CMU_VAR *cmu, int category, double *mod);
extern bool cmu_mod_abort(CMU_VAR *cmu);
extern bool cmu_mod_abort_8psk(CMU_VAR *cmu);
extern bool cmu_mod_stop(CMU_VAR *cmu);
extern bool cmu_mod_stop_8psk(CMU_VAR *cmu);
//------------------------------------------------------------------------------
// EPSK TX IQ
extern bool cmu_Fetch_EPSK_Average_TxIq(CMU_VAR *cmu, ViReal64 *p_virSBS, ViReal64 *p_virOOS);
//--- cmu external phase error -------------------------------------------------
extern bool cmu_mod_xper_init( CMU_VAR *cmu );
extern bool cmu_mod_xper_config_control_mode( CMU_VAR *cmu, int count );
extern bool cmu_mod_xper_config_control_repetition( CMU_VAR *cmu, int count );
extern bool cmu_mod_xper_config_control_subarray( CMU_VAR *cmu, int sample );
extern bool cmu_mod_xper_read(CMU_VAR *cmu, int category, double *mod);
extern bool cmu_mod_xper_read_txiq(CMU_VAR *cmu, double *d_IQ_Imbalance, double *d_Original_Offset);
extern bool cmu_mod_xper_fetch(CMU_VAR *cmu, int category, double *mod);
extern bool cmu_mod_xper_sample(CMU_VAR *cmu, int category, double *mod);
extern bool cmu_mod_xper_abort( CMU_VAR *cmu );
//--- cmu multislot -------------------------------------------------
extern bool cmu_config_multislot_txpower_control_mode( CMU_VAR *cmu, int count );
extern bool cmu_config_multislot_txpower_repetition_single_shot( CMU_VAR *cmu );
extern bool cmu_config_trigger_slot_offset( CMU_VAR *cmu, E_TIMESLOT timeslot );
extern bool cmu_config_multi_slot_count( CMU_VAR *cmu, int timeslot_count );
extern bool cmu_config_multislot_modulation( CMU_VAR *cmu, E_MODULATION_TYPE modulation );
extern bool cmu_read_multislot_average_txpower( CMU_VAR *cmu, S_MULTISLOT_BURST_POWER *power );
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -