📄 cmu200.cpp
字号:
{
status=viWrite(cmu->pcs, cmd, strlen(cmd), &num); if( status<VI_SUCCESS ) return false;
status=viRead(cmu->pcs, buf, BUF, &num); if( status<VI_SUCCESS ) return false;
}
else if ((cmu->BAND).AnsiCompareIC("GSM850")==0)
{
status=viWrite(cmu->gsm850, cmd, strlen(cmd), &num); if( status<VI_SUCCESS ) return false;
status=viRead(cmu->gsm850, buf, BUF, &num); if( status<VI_SUCCESS ) return false;
}
buf[num-1]=NULL;
temp=(AnsiString)buf;
if( temp.Pos("NAN") ) return false;
for(int i=0;i<18;i++)
{
temp_value=temp.SubString(1, temp.Pos(",")-1);
i_num= temp.AnsiPos(",");
value[i]=temp_value;
temp_total=temp.SubString(i_num+1, temp.Length());
temp=temp_total;
}
*mod = atof(value[category].c_str());
#if 0
// abort
strcpy(cmd, "ABORT:MOD:EPSK");
if ((cmu->BAND).AnsiCompareIC("GSM")==0)
{
status=viWrite(cmu->gsm, cmd, strlen(cmd), &num); if( status<VI_SUCCESS ) return false;
}
else if ((cmu->BAND).AnsiCompareIC("DCS")==0)
{
status=viWrite(cmu->dcs, cmd, strlen(cmd), &num); if( status<VI_SUCCESS ) return false;
}
else if ((cmu->BAND).AnsiCompareIC("PCS")==0)
{
status=viWrite(cmu->pcs, cmd, strlen(cmd), &num); if( status<VI_SUCCESS ) return false;
}
else if ((cmu->BAND).AnsiCompareIC("GSM850")==0)
{
status=viWrite(cmu->gsm850, cmd, strlen(cmd), &num); if( status<VI_SUCCESS ) return false;
}
#endif
return true;
}
//-----------------------------------------------------------------------------
bool cmu_Fetch_EPSK_Average_TxIq(CMU_VAR *cmu, ViReal64 *p_virSBS, ViReal64 *p_virOOS)
{
AnsiString temp;
AnsiString temp_total;
AnsiString temp_value;
AnsiString value[EPSK_MOD_PH_ERR_END];
int i_num;
// init
strcpy(cmd, "INIT:MOD:EPSK");
if ((cmu->BAND).AnsiCompareIC("GSM") == 0)
{
status = viWrite(cmu->gsm, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
}
else if ((cmu->BAND).AnsiCompareIC("DCS") == 0)
{
status = viWrite(cmu->dcs, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
}
else if ((cmu->BAND).AnsiCompareIC("PCS")==0)
{
status = viWrite(cmu->pcs, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
}
else if ((cmu->BAND).AnsiCompareIC("GSM850") == 0)
{
status = viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
}
// fetch
strcpy(cmd, "FETC:MOD:EPSK?");
if ((cmu->BAND).AnsiCompareIC("GSM") == 0)
{
status = viWrite(cmu->gsm, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
status = viRead(cmu->gsm, buf, BUF, &num);
if (status < VI_SUCCESS)
{
return false;
}
}
else if ((cmu->BAND).AnsiCompareIC("DCS") == 0)
{
status = viWrite(cmu->dcs, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
status = viRead(cmu->dcs, buf, BUF, &num);
if (status < VI_SUCCESS)
{
return false;
}
}
else if ((cmu->BAND).AnsiCompareIC("PCS") == 0)
{
status = viWrite(cmu->pcs, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
status = viRead(cmu->pcs, buf, BUF, &num);
if (status < VI_SUCCESS)
{
return false;
}
}
else if ((cmu->BAND).AnsiCompareIC("GSM850") == 0)
{
status = viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
status = viRead(cmu->gsm850, buf, BUF, &num);
if (status < VI_SUCCESS)
{
return false;
}
}
buf[num-1]=NULL;
temp=(AnsiString)buf;
if (temp.Pos("NAN"))
{
return false;
}
for (int i=0;i<EPSK_MOD_PH_ERR_END; i++)
{
temp_value=temp.SubString(1, temp.Pos(",")-1);
i_num= temp.AnsiPos(",");
value[i]=temp_value;
temp_total=temp.SubString(i_num+1, temp.Length());
temp=temp_total;
}
*p_virSBS = atof(value[EPSK_MOD_IQ_IMBALANCE_AVERAGE].c_str());
*p_virOOS = atof(value[EPSK_MOD_ORIGINAL_OFFSET_AVERAGE].c_str());
#if 0
// abort
strcpy(cmd, "ABORT:MOD:EPSK");
if ((cmu->BAND).AnsiCompareIC("GSM") == 0)
{
status = viWrite(cmu->gsm, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
}
else if ((cmu->BAND).AnsiCompareIC("DCS") == 0)
{
status=viWrite(cmu->dcs, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
}
else if ((cmu->BAND).AnsiCompareIC("PCS") == 0)
{
status = viWrite(cmu->pcs, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
}
else if ((cmu->BAND).AnsiCompareIC("GSM850") == 0)
{
status = viWrite(cmu->gsm850, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
}
#endif
return true;
}
//-----------------------------------------------------------------------------
bool cmu_mod_fetch(CMU_VAR *cmu, int category, double *mod)
{
AnsiString temp,temp_total,temp_other,temp_value;
AnsiString value1,value2,value3,value4,value5,value6,value7,value9;
AnsiString value10,value11,value12,value13,value14;
AnsiString value[14];
int i=0;
int as_num;
AnsiString as;
strcpy(cmd, "fetch:mod?");
if( (cmu->BAND).AnsiCompareIC("GSM")==0 )
{
status=viWrite(cmu->gsm, cmd, strlen(cmd), &num); if( status<VI_SUCCESS ) return false;
status=viRead(cmu->gsm, buf, BUF, &num); if( status<VI_SUCCESS ) return false;
}
else if( (cmu->BAND).AnsiCompareIC("DCS")==0 )
{
status=viWrite(cmu->dcs, cmd, strlen(cmd), &num); if( status<VI_SUCCESS ) return false;
status=viRead(cmu->dcs, buf, BUF, &num); if( status<VI_SUCCESS ) return false;
}
else if( (cmu->BAND).AnsiCompareIC("PCS")==0 )
{
status=viWrite(cmu->pcs, cmd, strlen(cmd), &num); if( status<VI_SUCCESS ) return false;
status=viRead(cmu->pcs, buf, BUF, &num); if( status<VI_SUCCESS ) return false;
}
else if( (cmu->BAND).AnsiCompareIC("GSM850")==0 )
{
status=viWrite(cmu->gsm850, cmd, strlen(cmd), &num); if( status<VI_SUCCESS ) return false;
status=viRead(cmu->gsm850, buf, BUF, &num); if( status<VI_SUCCESS ) return false;
}
buf[num-1]=NULL;
temp=(AnsiString)buf;
if( temp.Pos("NAN") ) return false;
for(i=0;i<10;i++)
{
temp_value=temp.SubString(1, temp.Pos(",")-1);
as_num= temp.AnsiPos(",");
value[i]=temp_value;
temp_total=temp.SubString(as_num+1, temp.Length());
temp=temp_total;
}
*mod = atof(value[category].c_str());
return true;
}
//-----------------------------------------------------------------------------
bool cmu_mod_fetch_8psk(CMU_VAR *cmu, int category, double *mod)
{
AnsiString temp,temp_total,temp_other,temp_value;
AnsiString value1,value2,value3,value4,value5,value6,value7,value9;
AnsiString value10,value11,value12,value13,value14;
AnsiString value[14];
int i=0;
int as_num;
AnsiString as;
strcpy(cmd, "read:mod:epsk?");
if( (cmu->BAND).AnsiCompareIC("GSM")==0 )
{
status=viWrite(cmu->gsm, cmd, strlen(cmd), &num); if( status<VI_SUCCESS ) return false;
status=viRead(cmu->gsm, buf, BUF, &num); if( status<VI_SUCCESS ) return false;
}
else if( (cmu->BAND).AnsiCompareIC("DCS")==0 )
{
status=viWrite(cmu->dcs, cmd, strlen(cmd), &num); if( status<VI_SUCCESS ) return false;
status=viRead(cmu->dcs, buf, BUF, &num); if( status<VI_SUCCESS ) return false;
}
else if( (cmu->BAND).AnsiCompareIC("PCS")==0 )
{
status=viWrite(cmu->pcs, cmd, strlen(cmd), &num); if( status<VI_SUCCESS ) return false;
status=viRead(cmu->pcs, buf, BUF, &num); if( status<VI_SUCCESS ) return false;
}
else if( (cmu->BAND).AnsiCompareIC("GSM850")==0 )
{
status=viWrite(cmu->gsm850, cmd, strlen(cmd), &num); if( status<VI_SUCCESS ) return false;
status=viRead(cmu->gsm850, buf, BUF, &num); if( status<VI_SUCCESS ) return false;
}
buf[num-1]=NULL;
temp=(AnsiString)buf;
if( temp.Pos("NAN") ) return false;
for (i=0; i<EPSK_MOD_PH_ERR_END; i++)
{
temp_value=temp.SubString(1, temp.Pos(",")-1);
as_num= temp.AnsiPos(",");
value[i]=temp_value;
temp_total=temp.SubString(as_num+1, temp.Length());
temp=temp_total;
}
*mod = atof(value[category].c_str());
return true;
}
//-----------------------------------------------------------------------------
bool cmu_mod_sample(CMU_VAR *cmu, int category, double *mod)
{
AnsiString temp,temp_total,temp_other,temp_value;
AnsiString value1,value2,value3,value4,value5,value6,value7,value9;
AnsiString value10,value11,value12,value13,value14;
AnsiString value[14];
int i=0;
int as_num;
AnsiString as;
strcpy(cmd, "sample:mod?");
if( (cmu->BAND).AnsiCompareIC("GSM")==0 )
{
status=viWrite(cmu->gsm, cmd, strlen(cmd), &num); if( status<VI_SUCCESS ) return false;
status=viRead(cmu->gsm, buf, BUF, &num); if( status<VI_SUCCESS ) return false;
}
else if( (cmu->BAND).AnsiCompareIC("DCS")==0 )
{
status=viWrite(cmu->dcs, cmd, strlen(cmd), &num); if( status<VI_SUCCESS ) return false;
status=viRead(cmu->dcs, buf, BUF, &num); if( status<VI_SUCCESS ) return false;
}
else if( (cmu->BAND).AnsiCompareIC("PCS")==0 )
{
status=viWrite(cmu->pcs, cmd, strlen(cmd), &num); if( status<VI_SUCCESS ) return false;
status=viRead(cmu->pcs, buf, BUF, &num); if( status<VI_SUCCESS ) return false;
}
else if( (cmu->BAND).AnsiCompareIC("GSM850")==0 )
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -