📄 age1968a.cpp
字号:
}
//==============================================================================
//////////////////////////// EPSK ///////////////////////////////
//==============================================================================
ViStatus age1968A_Config_EPSK_CodingScheme(ViSession vi, int i_MCS)
{
AnsiString as_cmd;
ViStatus vistat;
unsigned long num;
as_cmd = "CALL:PDTCH:MCSCheme:EBPTest MCS" + IntToStr(i_MCS) + "P1";
vistat = age1960_cmd(vi, as_cmd.c_str());
if (vistat != VI_SUCCESS)
{
return vistat;
}
return vistat;
}
//---------------------------------------------------------------------------
ViStatus age1968A_confTXPower( ViSession vi, int iMeasureCount, int iTriSour,
int iDelay, int iTriQual, int iTimeout )
{
AnsiString as_cmd;
ViStatus vistat;
// set measure count
as_cmd = "SETUP:ETXPOWER:COUNT:SNUMBER " + IntToStr(iMeasureCount);
vistat = age1960_cmd(vi, as_cmd.c_str());
if (vistat != VI_SUCCESS)
{
return vistat;
}
// triger source
switch (iTriSour)
{
case age1960_TRIG_AUTO:
{
as_cmd = "SETUP:ETXPOWER:TRIGGER:SOURCE AUTO";
}
break;
case age1960_TRIG_PROT:
{
as_cmd = "SETUP:ETXPOWER:TRIGGER:SOURCE PROTocol";
}
break;
case age1960_TRIG_RF_RISE:
{
as_cmd = "SETUP:ETXPOWER:TRIGGER:SOURCE RISE";
}
break;
case age1960_TRIG_IMMEDIATE:
{
as_cmd = "SETUP:ETXPOWER:TRIGGER:SOURCE IMMediate";
}
break;
default: // set to auto
{
as_cmd = "SETUP:ETXPOWER:TRIGGER:SOURCE AUTO";
}
break;
}
vistat = age1960_cmd(vi, as_cmd.c_str());
if (vistat != VI_SUCCESS)
{
return vistat;
}
// set delay
as_cmd = "SETUP:ETXPOWER:TRIGGER:DELAY " + IntToStr(iDelay); // sec
vistat = age1960_cmd(vi, as_cmd.c_str());
if (vistat != VI_SUCCESS)
{
return vistat;
}
// set trigger qualifier
if (AGE1960_TX_POWER_TRIGGER_QUALIFIER_ON == iTriQual)
{
as_cmd = "SETUP:ETXPOWER:TRIGGER:QUALIFIER ON";
}
else
{
as_cmd = "SETUP:ETXPOWER:TRIGGER:QUALIFIER OFF";
}
vistat = age1960_cmd(vi, as_cmd.c_str());
if (vistat != VI_SUCCESS)
{
return vistat;
}
// set timeout
as_cmd = "SETUP:ETXPOWER:TIMEOUT:STIME " + IntToStr(iTimeout); // sec
vistat = age1960_cmd(vi, as_cmd.c_str());
if (vistat != VI_SUCCESS)
{
return vistat;
}
return vistat;
}
//----------------------------------------------------------------------------
ViStatus age1968A_FetchEpskTxPower(ViSession vi, ViReal64 *p_virTX)
{
AnsiString asTXPowerFetch, asStr, asIntegrity, asTxPower, asBase, asExponent;;
ViStatus vistat;
unsigned long num;
char buf[BUFSIZE];
asTXPowerFetch = "FETCh:ETXP:POW:BURSt?";
vistat=viWrite(vi, asTXPowerFetch.c_str(), strlen(asTXPowerFetch.c_str()), &num);
if( vistat!=VI_SUCCESS ) return vistat;
//Sleep( 100 );
vistat=viRead(vi, buf, BUFSIZE, &num);
if( vistat!=VI_SUCCESS ) return vistat;
buf[num-1]=NULL;
asStr=(AnsiString)buf;
if( getIntegrityFromStr( asStr, asIntegrity ) == false ) return VI_ERROR_ABORT;
if( (asIntegrity.ToInt() != (int) INTEGRITY_NORMAL) && (asIntegrity.ToInt() != (int) INTEGRITY_OVER_RANGE) && (asIntegrity.ToInt() != (int) INTEGRITY_UNDER_RANGE ))
{
return VI_ERROR_ABORT;
}
if( getTxPowerFromStr( asStr, asTxPower ) == false ) return VI_ERROR_ABORT;
if( getBaseFromStr( asTxPower, asBase ) == false ) return VI_ERROR_ABORT;
if( getExponentFromStr( asTxPower, asExponent )== false ) return VI_ERROR_ABORT;
//if( asExponent.ToInt() >= 0 )
{
*p_virTX = (ViReal64) atof(asBase.c_str()) * pow10( asExponent.ToInt() );
}
//Application->MessageBox( temp.c_str() , "Warning", MB_OK );
//if( temp.Pos("NAN") ) return vistat;
//temp=temp.SubString(1, temp.Pos(",")-1);
//*p_virTX = atof(temp.c_str());
return vistat;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ViStatus age1968A_Config_EPSK_ModACcuracy(ViSession vi, int iMeasureCount, int iTriSour, int iDelay, int iTimeout)
{
AnsiString as_cmd;
ViStatus vistat;
// set single
as_cmd = "SETup:EMACcuracy:CONTinuous OFF";
vistat = age1960_cmd(vi,as_cmd.c_str());
if (vistat != VI_SUCCESS)
{
return vistat;
}
as_cmd = "SETup:EMACcuracy:IQIMbalance:STATe ON";
vistat = age1960_cmd(vi,as_cmd.c_str());
if (vistat != VI_SUCCESS)
{
return vistat;
}
// set measurecount
as_cmd = "SETup:EMACcuracy:COUNT:SNUMBER " + IntToStr(iMeasureCount);
vistat = age1960_cmd(vi,as_cmd.c_str());
if (vistat != VI_SUCCESS)
{
return vistat;
}
// triger source
switch (iTriSour)
{
case age1960_TRIG_AUTO:
{
as_cmd = "SETup:EMACcuracy:TRIGGER:SOURCE AUTO";
}
break;
case age1960_TRIG_PROT:
{
as_cmd = "SETup:EMACcuracy:TRIGGER:SOURCE PROTocol";
}
break;
case age1960_TRIG_RF_RISE:
{
as_cmd = "SETup:EMACcuracy:TRIGGER:SOURCE RISE";
}
break;
case age1960_TRIG_IMMEDIATE:
{
as_cmd = "SETup:EMACcuracy:TRIGGER:SOURCE IMMediate";
}
break;
default: // set to auto
{
as_cmd = "SETup:EMACcuracy:TRIGGER:SOURCE AUTO";
}
break;
}
vistat = age1960_cmd(vi, as_cmd.c_str());
if (vistat != VI_SUCCESS)
{
return vistat;
}
// set delay
as_cmd = "SETup:EMACcuracy:TRIGGER:DELAY " + IntToStr(iDelay); // sec
vistat = age1960_cmd(vi,as_cmd.c_str());
if (vistat != VI_SUCCESS)
{
return vistat;
}
// set timeout
as_cmd = "SETup:EMACcuracy:TIMEOUT:STIME " + IntToStr(iTimeout); // sec
vistat = age1960_cmd(vi,as_cmd.c_str());
if (vistat != VI_SUCCESS)
{
return vistat;
}
return vistat;
}
//----------------------------------------------------------------------------
ViStatus age1968A_Fetch_EPSK_Average_PhaseError(ViSession vi, ViReal64 *p_virPhErr)
{
AnsiString as_cmd, asStr, asIntegrity, as_OOS, as_SBS, asBase, asExponent;
ViStatus vistat;
unsigned long num;
char buf[BUFSIZE];
// init
as_cmd = "INIT:EMACcuracy:ON";
vistat = viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
if (vistat != VI_SUCCESS)
{
return vistat;
}
// fetch
as_cmd = "FETCh:EMACcuracy:PERRor:RMS?";
vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
if (vistat != VI_SUCCESS)
{
return vistat;
}
vistat=viRead(vi, buf, BUFSIZE, &num);
if( vistat!=VI_SUCCESS ) return vistat;
buf[num-1]=NULL;
asStr=(AnsiString)buf;
if (!getBaseFromStr(asStr, asBase))
{
return VI_ERROR_ABORT;
}
if (!getExponentFromStr(asStr, asExponent))
{
return VI_ERROR_ABORT;
}
*p_virPhErr = (ViReal64) atof(asBase.c_str()) * pow10(asExponent.ToInt());
// *p_virPhErr = 0 - *p_virOOS;
// abort
as_cmd = "ABORt:EMACcuracy";
vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
if( vistat!=VI_SUCCESS ) return vistat;
return vistat;
}
//----------------------------------------------------------------------------
ViStatus age1968A_Fetch_EPSK_Average_OrignalOffset(ViSession vi, ViReal64 *p_virOOS )
{
AnsiString as_cmd, asStr, asIntegrity, as_OOS, as_SBS, asBase, asExponent;
ViStatus vistat;
unsigned long num;
char buf[BUFSIZE];
as_cmd = "INIT:EMACcuracy:ON";
vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
if( vistat!=VI_SUCCESS ) return vistat;
as_cmd = "FETCh:EMACcuracy:OOFFset?";
vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
if( vistat!=VI_SUCCESS ) return vistat;
//Sleep( 100 );
vistat=viRead(vi, buf, BUFSIZE, &num);
if( vistat!=VI_SUCCESS ) return vistat;
buf[num-1]=NULL;
asStr=(AnsiString)buf;
if (asStr.AnsiPos("9.91E37"))
{
return VI_ERROR_INV_EXPR;
}
if (!getBaseFromStr(asStr, asBase))
{
return VI_ERROR_ABORT;
}
if (!getExponentFromStr(asStr, asExponent))
{
return VI_ERROR_ABORT;
}
*p_virOOS = (ViReal64) atof(asBase.c_str()) * pow10( asExponent.ToInt() );
*p_virOOS = 0 - *p_virOOS;
as_cmd = "ABORt:EMACcuracy";
vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
if( vistat!=VI_SUCCESS ) return vistat;
return vistat;
}
//----------------------------------------------------------------------------
ViStatus age1968A_Fetch_EPSK_Average_IQImbalance(ViSession vi, ViReal64 *p_virSBS)
{
AnsiString as_cmd, asStr, asIntegrity, as_OOS, as_SBS, asBase, asExponent;
ViStatus vistat;
unsigned long num;
char buf[BUFSIZE];
as_cmd = "INIT:EMACcuracy:ON";
vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
if( vistat!=VI_SUCCESS ) return vistat;
as_cmd = "FETCh:EMACcuracy:IQIMbalance?";
vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
if( vistat!=VI_SUCCESS ) return vistat;
//Sleep( 100 );
vistat=viRead(vi, buf, BUFSIZE, &num);
if( vistat!=VI_SUCCESS ) return vistat;
buf[num-1]=NULL;
asStr=(AnsiString)buf;
if (asStr.AnsiPos("9.91E37"))
{
return VI_ERROR_INV_EXPR;
}
if (!getBaseFromStr(asStr, asBase))
{
return VI_ERROR_ABORT;
}
if (!getExponentFromStr(asStr, asExponent))
{
return VI_ERROR_ABORT;
}
*p_virSBS = (ViReal64) atof(asBase.c_str()) * pow10(asExponent.ToInt());
as_cmd = "ABORt:EMACcuracy";
vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
if( vistat!=VI_SUCCESS ) return vistat;
return vistat;
}
//----------------------------------------------------------------------------
ViStatus age1968A_Fetch_EPSK_Average_TxIq(ViSession vi, ViReal64 *p_virSBS, ViReal64 *p_virOOS)
{
AnsiString as_cmd, asStr, asIntegrity, as_OOS, as_SBS, asBase, asExponent;
ViStatus vistat;
unsigned long num;
char buf[BUFSIZE];
as_cmd = "INIT:EMACcuracy:ON";
vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
if( vistat!=VI_SUCCESS ) return vistat;
as_cmd = "FETCh:EMACcuracy?";
vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
if( vistat!=VI_SUCCESS ) return vistat;
vistat=viRead(vi, buf, BUFSIZE, &num);
if( vistat!=VI_SUCCESS ) return vistat;
buf[num-1]=NULL;
asStr=(AnsiString)buf;
if (asStr.AnsiPos("9.91E37"))
{
return VI_ERROR_INV_EXPR;
}
if (!getBaseFromStr(asStr, asBase))
{
return VI_ERROR_ABORT;
}
if (!getExponentFromStr(asStr, asExponent))
{
return VI_ERROR_ABORT;
}
*p_virSBS = (ViReal64) atof(asBase.c_str()) * pow10( asExponent.ToInt() );
as_cmd = "ABORt:EMACcuracy";
vistat=viWrite(vi, as_cmd.c_str(), strlen(as_cmd.c_str()), &num);
if( vistat!=VI_SUCCESS ) return vistat;
return vistat;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -