📄 cmu200.cpp
字号:
strcpy(cmd, "SOUR:RFG:LEV:UTIM -60"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
// strcpy(cmd, "TRIG:SOUR RFP"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
// strcpy(cmd, "TRIG:THR HIGH"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
strcpy(cmd, "TRIG:SOUR IFP"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
strcpy(cmd, "TRIG:THR LOW"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
strcpy(cmd, "RFAN:CHAN 70CH"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
strcpy(cmd, "RFAN:TSEQ GSM5"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
strcpy(cmd, "LEV:MODE AUT"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
strcpy(cmd, "CONF:POW:CONT SCAL,10"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
strcpy(cmd, "CONF:POW:CONT:REP SING,NONE,NONE"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
// strcpy(cmd, "TRAC:REM:MODE:DISP OFF"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
// strcpy(cmd, "INIT:RFG"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
}
//dcs nonsignaling setup-------------------------------------------------------
if ( IsCmuBandSupported( asFreqBand, CMU_DCS1800_BAND) )
{
strcpy(cmd, "INP:STAT RF2"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
strcpy(cmd, "OUTP:STAT RF2"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
sprintf(cmd, "SENS:CORR:LOSS:INP2 %f", cmu->loss_dcs_i); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
sprintf(cmd, "SENS:CORR:LOSS:OUTP2 %f", cmu->loss_dcs_o); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
strcpy(cmd, "CONF:RFG:MOD:BIT:SEL PRBS"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
strcpy(cmd, "CONF:RFG:MOD:TSEQ:SEL GSM5"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
strcpy(cmd, "CONF:RFG:MOD:TRAN CONT"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
strcpy(cmd, "SOUR:RFG:FREQ:CHAN 512CH"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
strcpy(cmd, "SOUR:RFG:LEV:UTIM -60"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
// strcpy(cmd, "TRIG:SOUR RFP"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
// strcpy(cmd, "TRIG:THR HIGH"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
strcpy(cmd, "TRIG:SOUR IFP"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
strcpy(cmd, "TRIG:THR LOW"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
strcpy(cmd, "RFAN:CHAN 512CH"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
strcpy(cmd, "RFAN:TSEQ GSM5"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
strcpy(cmd, "LEV:MODE AUT"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
strcpy(cmd, "CONF:POW:CONT SCAL,10"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
strcpy(cmd, "CONF:POW:CONT:REP SING,NONE,NONE"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
// strcpy(cmd, "TRAC:REM:MODE:DISP OFF"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
}
//pcs nonsignaling setup-------------------------------------------------------
if ( IsCmuBandSupported( asFreqBand, CMU_PCS1900_BAND) )
{
strcpy(cmd, "INP:STAT RF2"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
strcpy(cmd, "OUTP:STAT RF2"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
sprintf(cmd, "SENS:CORR:LOSS:INP2 %f", cmu->loss_pcs_i); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
sprintf(cmd, "SENS:CORR:LOSS:OUTP2 %f", cmu->loss_pcs_o); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
strcpy(cmd, "CONF:RFG:MOD:BIT:SEL PRBS"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
strcpy(cmd, "CONF:RFG:MOD:TSEQ:SEL GSM5"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
strcpy(cmd, "CONF:RFG:MOD:TRAN CONT"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
strcpy(cmd, "SOUR:RFG:FREQ:CHAN 512CH"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
strcpy(cmd, "SOUR:RFG:LEV:UTIM -60"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
// strcpy(cmd, "TRIG:SOUR RFP"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
// strcpy(cmd, "TRIG:THR HIGH"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
strcpy(cmd, "TRIG:SOUR IFP"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
strcpy(cmd, "TRIG:THR LOW"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
strcpy(cmd, "RFAN:CHAN 512CH"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
strcpy(cmd, "RFAN:TSEQ GSM5"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
strcpy(cmd, "LEV:MODE AUT"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
strcpy(cmd, "CONF:POW:CONT SCAL,10"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
strcpy(cmd, "CONF:POW:CONT:REP SING,NONE,NONE"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
// strcpy(cmd, "TRAC:REM:MODE:DISP OFF"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
}
// gsm850
//gsm850 nonsignaling setup--------------------------------------------------------
if ( IsCmuBandSupported( asFreqBand, CMU_GSM850_BAND) )
{
strcpy(cmd, "INP:STAT RF2"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
strcpy(cmd, "OUTP:STAT RF2"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
sprintf(cmd, "SENS:CORR:LOSS:INP2 %f", cmu->loss_gsm850_i); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
sprintf(cmd, "SENS:CORR:LOSS:OUTP2 %f", cmu->loss_gsm850_o); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
//jh lai, MTK AFC debug
//strcpy(cmd, "CONF:RFG:MOD:TRAN BURS"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
//strcpy(cmd, "CONF:RFG:MOD:BIT:SEL ALL0"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
//strcpy(cmd, "CONF:RFG:MOD:BIT:SEL DUMM"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
strcpy(cmd, "CONF:RFG:MOD:BIT:SEL PRBS"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
strcpy(cmd, "CONF:RFG:MOD:TSEQ:SEL GSM5"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
strcpy(cmd, "CONF:RFG:MOD:TRAN CONT"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
strcpy(cmd, "SOUR:RFG:FREQ:CHAN 190CH"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
strcpy(cmd, "SOUR:RFG:LEV:UTIM -60"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
// strcpy(cmd, "TRIG:SOUR RFP"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
// strcpy(cmd, "TRIG:THR HIGH"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
strcpy(cmd, "TRIG:SOUR IFP"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
strcpy(cmd, "TRIG:THR LOW"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
strcpy(cmd, "RFAN:CHAN 190CH"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
strcpy(cmd, "RFAN:TSEQ GSM5"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
strcpy(cmd, "LEV:MODE AUT"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
strcpy(cmd, "CONF:POW:CONT SCAL,10"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
strcpy(cmd, "CONF:POW:CONT:REP SING,NONE,NONE"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
// strcpy(cmd, "TRAC:REM:MODE:DISP OFF"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
// strcpy(cmd, "INIT:RFG"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
}
return true;
}
//---------------------------------------------------------------------------
bool cmu_reset( CMU_VAR *cmu, AnsiString asFreqBand )
{
// reset
if ( IsCmuBandSupported( asFreqBand, CMU_PCS1900_BAND) )
{
strcpy(cmd, "*rst"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
Sleep(2000);
}
if ( IsCmuBandSupported( asFreqBand, CMU_DCS1800_BAND) )
{
strcpy(cmd, "*rst"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
Sleep(2000);
}
if ( IsCmuBandSupported( asFreqBand, CMU_PGSM_BAND) || IsCmuBandSupported( asFreqBand, CMU_EGSM_BAND) )
{
strcpy(cmd, "*rst"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
Sleep(2000);
}
if ( IsCmuBandSupported( asFreqBand, CMU_GSM850_BAND) )
{
strcpy(cmd, "*rst"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
Sleep(2000);
}
return true;
}
//------------------------------------------------------------------------------
bool cmu_cellband(int band, CMU_VAR *cmu)
{
// if( cmu->BAND.AnsiCompareIC("GSM")==0 && band==CMU_PGSM_BAND ) return true;
// else if( cmu->BAND.AnsiCompareIC("GSM")==0 && band==CMU_EGSM_BAND ) return true;
// else if( cmu->BAND.AnsiCompareIC("DCS")==0 && band==CMU_DCS1800_BAND ) return true;
// else if( cmu->BAND.AnsiCompareIC("PCS")==0 && band==CMU_PCS1900_BAND ) return true;
// else if( cmu->BAND.AnsiCompareIC("GSM850")==0 && band==CMU_GSM850_BAND ) return true;
// abort current active RFG
if( cmu->BAND.AnsiCompareIC("GSM") == 0 ) { strcpy(cmd, "ABOR:RFG"); viWrite(cmu->gsm, cmd, strlen(cmd), &num); }
else if( cmu->BAND.AnsiCompareIC("DCS") == 0 ) { strcpy(cmd, "ABOR:RFG"); viWrite(cmu->dcs, cmd, strlen(cmd), &num); }
else if( cmu->BAND.AnsiCompareIC("PCS") == 0 ) { strcpy(cmd, "ABOR:RFG"); viWrite(cmu->pcs, cmd, strlen(cmd), &num); }
else if( cmu->BAND.AnsiCompareIC("GSM850") == 0 ) { strcpy(cmd, "ABOR:RFG"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num); }
if( band==0 ) return false;
else if( band==CMU_PGSM_BAND || band==CMU_EGSM_BAND ) cmu->BAND="GSM";
else if( band==CMU_DCS1800_BAND ) cmu->BAND="DCS";
else if( band==CMU_PCS1900_BAND ) cmu->BAND="PCS";
else if( band==CMU_GSM850_BAND ) cmu->BAND="GSM850";
else
{ return false;}
if( band==CMU_PGSM_BAND || band==CMU_EGSM_BAND )
{
strcpy(cmd, "init:rfg;*opc?"); viWrite(cmu->gsm, cmd, strlen(cmd), &num);
viRead(cmu->gsm, buf, BUF, &num);
Sleep(500);
}
else if( band==CMU_DCS1800_BAND )
{
strcpy(cmd, "init:rfg;*opc?"); viWrite(cmu->dcs, cmd, strlen(cmd), &num);
viRead(cmu->dcs, buf, BUF, &num);
Sleep(500);
}
else if( band==CMU_PCS1900_BAND )
{
strcpy(cmd, "init:rfg;*opc?"); viWrite(cmu->pcs, cmd, strlen(cmd), &num);
viRead(cmu->pcs, buf, BUF, &num);
Sleep(500);
}
else if( band==CMU_GSM850_BAND )
{
strcpy(cmd, "init:rfg;*opc?"); viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
viRead(cmu->gsm850, buf, BUF, &num);
Sleep(500);
}
else
{
return false;
}
// Sleep(500);
return true;
}
//cmu generator functions-------------------------------------------------------
bool cmu_bcharfcn(short chan, CMU_VAR *cmu)
{
sprintf(cmd, "sour:rfg:freq %dch;*opc?", chan);
if( (cmu->BAND).AnsiCompareIC("GSM")==0 ) { status=viWrite(cmu->gsm, cmd, strlen(cmd), &num); viRead(cmu->gsm, buf, BUF, &num); }
else if( (cmu->BAND).AnsiCompareIC("DCS")==0 ) { status=viWrite(cmu->dcs, cmd, strlen(cmd), &num); viRead(cmu->dcs, buf, BUF, &num); }
else if( (cmu->BAND).AnsiCompareIC("PCS")==0 ) { status=viWrite(cmu->pcs, cmd, strlen(cmd), &num); viRead(cmu->pcs, buf, BUF, &num); }
else if( (cmu->BAND).AnsiCompareIC("GSM850")==0 ) { status=viWrite(cmu->gsm850, cmd, strlen(cmd), &num); viRead(cmu->gsm850, buf, BUF, &num); }
if( status<VI_SUCCESS ) return false;
return true;
}
//---------------------------------------------------------------------------
bool cmu_cellpower(double power, CMU_VAR *cmu)
{
if( power>=0 ) power=-60;
sprintf(cmd, "sour:rfg:lev:utim %f", power);
if( (cmu->BAND).AnsiCompareIC("GSM")==0 ) status=viWrite(cmu->gsm, cmd, strlen(cmd), &num);
else if( (cmu->BAND).AnsiCompareIC("DCS")==0 ) status=viWrite(cmu->dcs, cmd, strlen(cmd), &num);
else if( (cmu->BAND).AnsiCompareIC("PCS")==0 ) status=viWrite(cmu->pcs, cmd, strlen(cmd), &num);
else if( (cmu->BAND).AnsiCompareIC("GSM850")==0 ) status=viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
else { return false; }
Sleep(100);
if( status<VI_SUCCESS ) return false;
return true;
}
//---------------------------------------------------------------------------
bool cmu_pow_cont(bool set, CMU_VAR *cmu)
{
if( set )
strcpy(cmd, "CONF:RFG:MOD:TRAN CONT");
else
strcpy(cmd, "CONF:RFG:MOD:TRAN BURS");
if( (cmu->BAND).AnsiCompareIC("GSM")==0 ) status=viWrite(cmu->gsm, cmd, strlen(cmd), &num);
else if( (cmu->BAND).AnsiCompareIC("DCS")==0 ) status=viWrite(cmu->dcs, cmd, strlen(cmd), &num);
else if( (cmu->BAND).AnsiCompareIC("PCS")==0 ) status=viWrite(cmu->pcs, cmd, strlen(cmd), &num);
else if( (cmu->BAND).AnsiCompareIC("GSM850")==0 ) status=viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
else { return false; }
if( status<VI_SUCCESS ) return false;
return true;
}
//---------------------------------------------------------------------------
///////////////////////////// Generator /////////////////////////////////
//---------------------------------------------------------------------------
bool cmu_gen_freq_offset(CMU_VAR *cmu, double d_freq)
{
AnsiString as_cmd = "SOURce:RFGenerator:FM:DEViation " + Double_To_AnsiString(d_freq);
if ((cmu->BAND).AnsiCompareIC("GSM") == 0)
{
status = viWrite(cmu->gsm, as_cmd.c_str(), as_cmd.Length(), &num);
}
else if ((cmu->BAND).AnsiCompareIC("DCS") == 0)
{
status = viWrite(cmu->dcs, as_cmd.c_str(), as_cmd.Length(), &num);
}
else if ((cmu->BAND).AnsiCompareIC("PCS") == 0)
{
status = viWrite(cmu->pcs, as_cmd.c_str(), as_cmd.Length(), &num);
}
else if ((cmu->BAND).AnsiCompareIC("GSM850")==0)
{
status = viWrite(cmu->gsm850, as_cmd.c_str(), as_cmd.Length(), &num);
}
else
{
assert(false);
return false;
}
if (status < VI_SUCCESS)
{
return false;
}
return true;
}
//---------------------------------------------------------------------------
bool cmu_gen_bit_mod(E_CMU200_GEN_BIT_MODU_T mode, CMU_VAR *cmu)
{
switch (mode)
{
case CMU200_GEN_BIT_MODU_OFF:
{
strcpy(cmd, "CONF:RFG:MOD:BIT:SEL OFF");
}
break;
case CMU200_GEN_BIT_MODU_ALL_ZERO:
{
strcpy(cmd, "CONF:RFG:MOD:BIT:SEL ALL0");
}
break;
case CMU200_GEN_BIT_MODU_PRBS:
{
strcpy(cmd, "CONF:RFG:MOD:BIT:SEL PRBS");
}
break;
case CMU200_GEN_BIT_MODU_DUMMY_BURST:
{
strcpy(cmd, "CONF:RFG:MOD:BIT:SEL DUMM");
}
break;
case CMU200_GEN_BIT_MODU_8_PSK_ALL_ZERO:
{
strcpy(cmd, "CONF:RFG:MOD:BIT:SEL EALL0");
}
break;
case CMU200_GEN_BIT_MODU_8_PSK_PRBS:
{
strcpy(cmd, "CONF:RFG:MOD:BIT:SEL EPRBS");
}
break;
default:
{
assert(false);
}
}
if ((cmu->BAND).AnsiCompareIC("GSM") == 0)
{
status = viWrite(cmu->gsm, cmd, strlen(cmd), &num);
}
else if ((cmu->BAND).AnsiCompareIC("DCS") == 0)
{
status = viWrite(cmu->dcs, cmd, strlen(cmd), &num);
}
else if ((cmu->BAND).AnsiCompareIC("PCS") == 0)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -