?? cmu200_bt_sig.cpp
字號:
{
return false;
}
// number of response
as_cmd = "CONFigure:MSIGnal:INQuiry:NOResponses " + IntToStr(s_inquiry.i_response_num);
strcpy(cmd, as_cmd.c_str());
status = viWrite(cmu->s_bt, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
return true;
}
//--------------------------------------------------------------------------
bool cmu_sig_bt_inquiry(CMU_VAR *cmu)
{
ViStatus status;
char cmd[BUF];
unsigned long num;
strcpy(cmd, "PROCedure:SIGNalling:ACTion INQuiry");
status = viWrite(cmu->s_bt, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
return true;
}
//--------------------------------------------------------------------------
bool cmu_sig_bt_connect_test(CMU_VAR *cmu)
{
ViStatus status;
char cmd[BUF];
unsigned long num;
strcpy(cmd, "PROCedure:SIGNalling:ACTion TEST");
status = viWrite(cmu->s_bt, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
return true;
}
//--------------------------------------------------------------------------
bool cmu_sig_bt_query_state(CMU_VAR *cmu, E_BTT_STATE_T* e_state)
{
ViStatus status;
char cmd[BUF];
char buf[BUF];
unsigned long num;
AnsiString as_cmd = "SIGNalling:XSTate?";
strcpy(cmd, as_cmd.c_str());
status = viWrite(cmu->s_bt, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
status = viRead(cmu->s_bt, buf, BUF, &num);
if (status < VI_SUCCESS)
{
return false;
}
buf[num-1] = NULL;
AnsiString as(buf);
as = as.UpperCase();
if (as.AnsiPos("SBY"))
{
*e_state = BTT_STATUS_STANDBY;
}
else if (as.AnsiPos("INQ"))
{
*e_state = BTT_STATUS_INQUIRY;
}
else if (as.AnsiPos("PAG"))
{
*e_state = BTT_STATUS_PAGING;
}
else if (as.AnsiPos("CONN"))
{
*e_state = BTT_STATUS_CONNECTED;
}
else if (as.AnsiPos("TEST"))
{
*e_state = BTT_STATUS_TEST;
}
else if (as.AnsiPos("HOLD"))
{
*e_state = BTT_STATUS_HOLD;
}
else if (as.AnsiPos("SNIF"))
{
*e_state = BTT_STATUS_SNIF;
}
else if (as.AnsiPos("PARK"))
{
*e_state = BTT_STATUS_PARK;
}
else if (as.AnsiPos("AUD"))
{
*e_state = BTT_STATUS_AUDIO;
}
else if (as.AnsiPos("DET"))
{
*e_state = BTT_STATUS_DETACH;
}
return true;
}
//--------------------------------------------------------------------------
bool cmu_sig_bt_release(CMU_VAR *cmu)
{
ViStatus status;
char cmd[BUF];
unsigned long num;
strcpy(cmd, "PROCedure:SIGNalling:ACTion DETach");
status = viWrite(cmu->s_bt, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
return true;
}
//===========================================================================
/////////////////////////// MPR measurement ///////////////////////////
//===========================================================================
bool cmu_sig_bt_config_mpr(CMU_VAR *cmu, S_BTT_POWER bt_mpr)
{
ViStatus status;
char cmd[BUF];
unsigned long num;
AnsiString as_cmd = "CONFigure:POWer:MPR:CONTrol:STATistics " + IntToStr(bt_mpr.i_burst_num);
strcpy(cmd, as_cmd.c_str());
status = viWrite(cmu->s_bt, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
as_cmd = "CONFigure:POWer:MPR:CONTrol:REPetition SINGleshot,SONerror,NONE";
strcpy(cmd, as_cmd.c_str());
status = viWrite(cmu->s_bt, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
// channel
as_cmd = "CONFigure:POWer:MPR:MMODe SINGle";
strcpy(cmd, as_cmd.c_str());
status = viWrite(cmu->s_bt, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
as_cmd = "CONFigure:POWer:MPR:MFRequency:UNIT CH";
strcpy(cmd, as_cmd.c_str());
status = viWrite(cmu->s_bt, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
as_cmd = "CONFigure:POWer:MPR:MFRequency " + IntToStr(bt_mpr.i_channel);
strcpy(cmd, as_cmd.c_str());
status = viWrite(cmu->s_bt, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
return true;
}
//===========================================================================
/////////////////////////// MOD measurement ///////////////////////////
//===========================================================================
bool cmu_sig_bt_config_mod(CMU_VAR *cmu, S_BTT_MOD bt_mod)
{
ViStatus status;
char cmd[BUF];
unsigned long num;
AnsiString as_cmd = "CONFigure:MODulation:DEViation:CONTrol SCALar, " + IntToStr(bt_mod.i_burst_num) +
", SINGleshot, SONerror, NONE";
strcpy(cmd, as_cmd.c_str());
status = viWrite(cmu->s_bt, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
// channel
as_cmd = "CONFigure:MODulation:DEViation:MMODe SINGle";
strcpy(cmd, as_cmd.c_str());
status = viWrite(cmu->s_bt, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
as_cmd = "CONFigure:MODulation:DEViation:MFRequency:UNIT CH";
strcpy(cmd, as_cmd.c_str());
status = viWrite(cmu->s_bt, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
as_cmd = "CONFigure:MODulation:DEViation:MFRequency " + IntToStr(bt_mod.i_channel);
strcpy(cmd, as_cmd.c_str());
status = viWrite(cmu->s_bt, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
return true;
}
//---------------------------------------------------------------------------
bool cmu_sig_bt_read_average_freq_error(CMU_VAR *cmu, double* freq_err)
{
ViStatus status;
char cmd[BUF];
char buf[BUF];
unsigned long num;
AnsiString as_cmd = "READ:MOD:DEV:EXT?";
strcpy(cmd, as_cmd.c_str());
status = viWrite(cmu->s_bt, cmd, strlen(cmd), &num);
if (status < VI_SUCCESS)
{
return false;
}
status = viRead(cmu->s_bt, buf, BUF, &num);
if (status < VI_SUCCESS)
{
return false;
}
buf[num-1] = NULL;
AnsiString temp_total;
AnsiString temp_value;
AnsiString value[CMU200_BT_MOD_NUM];
int i_num;
AnsiString temp(buf);
if (temp.Pos("NAN"))
{
return false;
}
#if 0
for (int i=0;i<CMU200_BT_MOD_NUM;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;
}
*freq_err = atof(value[CMU200_BT_MOD_FREQ_ACCURACY_AVERAGE].c_str());
#endif
double d_array[CMU200_BT_MOD_NUM];
String_To_Array_double(temp.c_str(), d_array, CMU200_BT_MOD_NUM);
*freq_err = d_array[CMU200_BT_MOD_FREQ_ACCURACY_AVERAGE];
return true;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -