agilent仪表频谱仪控制程序

频谱仪控制界面很简单如图所示:

agilent仪表频谱仪控制程序_第1张图片

IP地址是频谱仪的网络IP地址,是固定的值,可由人工在仪表上操作;CF是中心频率,是我们要设置的频谱仪中心频率,RBW,VBW我们教研室使用的是3KHZ,100HZ,SPAN带宽,SWTime 扫描时间;REF,参考电平,Sca/div,是频谱仪仪表上每一格代表的电平差,points是扫描点数。其中每一项都可以单独设置,也可以在参数确定后,点击setall一次性全部设置。

Set  All按钮的响应代码是:

setCF();
	 setSpan();
	 setRBW();
	 setVBW();
	 setSTIme();
	 setpoints();
	 setREF();
	 setscale();

这里调用了封装好的各个设置的函数

其中void CtestDlg::setCF()
{
	ViString  strIPinst0;
	strIPinst0="TCPIP0::10.10.150.150::inst0::INSTR";
	//CString s1,s2,s3;
	//s1="TCPIP0::";s2="::inst0::INSTR";
	//s3=s1+tempIP+s2;
	//strIPinst0=s3.GetBuffer(0);

	ViSession defaultRM,vi;	
	char buf[256]={0};
	viOpenDefaultRM(&defaultRM);
	viOpen(defaultRM,strIPinst0,VI_NULL,VI_NULL,&vi);
	ViString strCommand;

	CString snum,s2,s3;
	GetDlgItem(IDC_EDIT1)->GetWindowText(snum);

	CString scom;
	GetDlgItem(IDC_COMBO1)->GetWindowText(scom);

	if (scom=="MHZ")
	{
		s3=":FREQ:CENT " + snum + "E6\n";  
		viPrintf(vi, s3.GetBuffer(0));
		//MessageBox("MHZ");
	}
	else if (scom=="KHZ")
	{
		s3=":FREQ:CENT " + snum + "E3\n";  
		viPrintf(vi, s3.GetBuffer(0));
		//MessageBox("KHZ");
		;
	}
	else
	{
		s3=":FREQ:CENT " + snum + "\n";  
		viPrintf(vi, s3.GetBuffer(0));
	//	MessageBox("HZ");
	}




	//viPrintf(vi, ":FREQ:CENTER 955.0E6\n");
	viClose(vi);
	viClose(defaultRM);
}



你可能感兴趣的:(网络,agilent,仪表控制)