计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

免费毕业论文--基于网络的虚拟仪器测试系统(一(6)

2013-06-08 02:45
导读:户的调制方式的判断,其中nID_Select_Modul保存的是用//户选择的调制方式的ID。通过GetCheckedRadioButton()函数获得。 switch(nID_Select_Modul)//对用户通过单选按钮选
户的调制方式的判断,其中nID_Select_Modul保存的是用//户选择的调制方式的ID。通过GetCheckedRadioButton()函数获得。
    switch(nID_Select_Modul)//对用户通过单选按钮选择的调制参数的判断
    {  case IDC_RADIO_BW://无调制情况
       viPrintf(/*funcgen*/theApp.m_Session,"OUTPut:LOAD %s\n",m_nResistance);//输出端的设置
       viPrintf(/*funcgen*/theApp.m_Session,"OUTPut:SYNC %s\n",m_nSignal);//设置同步信号
 CheckWaveRadioButton();//这是一个自己定义的函数,对用户的波形的选择进行判断-将波形的字符串存储在m_nBaseShape中,该函数的具体代码将会在附录中给出。
//判断用户选择的波形是否是方波,并通过函数viPrintf来进行各种SCPI命令的执行
 if(GetCheckedRadioButton(IDC_RADIO_SIN,IDC_RADIO_DC)==IDC_RADIO_FWAVE)
  { viPrintf(/*funcgen*/theApp.m_Session,"FUNC %s\n",m_nBaseShape);
   viPrintf(/*funcgen*/theApp.m_Session,"FREQ %f\n",m_nFreq);
   viPrintf(/*funcgen*/theApp.m_Session,"VOLT %f\n",m_nAmpl);
   viPrintf(/*funcgen*/theApp.m_Session,"VOLT:OFFS %f\n",m_nOffs);
   viPrintf(/*funcgen*/theApp.m_Session,"FUNC:SQU:DCYC %f\n",m_nDcycle);
  }//判断用户选择的是否是任意波
 else if(GetCheckedRadioButton(IDC_RADIO_SIN,IDC_RADIO_DC)==IDC_RADIO_ARBI)
  {error=viPrintf(/*funcgen*/theApp.m_Session,"APPL:USER %f,%f,%f\n",m_nFreq,m_nAmpl,m_nOffs);
   if(error!=VI_SUCCESS)
   {error_handler(/*funcgen*/theApp.m_Session,error);
       break;} 
viPrintf(/*funcgen*/theApp.m_Session,"FUNC:USER%s\n",WaveForm.m_Arbitrary);
 }
 else
  {error=viPrintf(/*funcgen*/theApp.m_Session,"APPL:%s %f,%f,%f\n",m_nBaseShape,m_nFreq,m_nAmpl,m_nOffs);//这里的参数需要用户自己添加

(科教范文网 fw.nseac.com编辑发布)


         if(error!=VI_SUCCESS)
   { error_handler(/*funcgen*/theApp.m_Session,error);
       break;}}
MessageBox("Successfully!");//给一个提示框--明示用户的操作
     break; 
以上只是无调制情况下的输出代码,而调幅、调频等的实现代码将会在附录给给出。  
 对仪器的编程中,首先是先打开跟资源管理器的会话,然后通过资源管理器会话来进一步打开与某一台仪器的会话(会话也就是与仪器进行通讯,所有被使用的仪器都需要建立连接,并且都要调用VISA函数viOpenDefaultRM来打开资源管理器,这个函数会初始化VISA系统,包括资源管理系统;如果在没有器件连接的情况下调用该函数,则在有器件连接上时又进行一次操作,则连接的器件是不被认识的;你必须关闭所有的资源管理器会话,并重新的打开才行);当结束访问之后需要对会话进行清除操作,调用函数viClose对资源会话和其他会话进行关闭。该操作会把所有分配给指定会话的数据结构资源进行释放操作。上面给出的是在用户配置好各种参数后的执行代码。然而,在自己的界面的设计过程中也给出了一些配置信息,比如,频率,幅值,偏移,占空比(其中对占空比也做了特别的处理,因为占空比参数只适合于方波,所以在选中其他波形的时候需要对该参数进行屏蔽,以防止用户的输入)。当用户选择调制方式的时候,会弹出对话框以提供用户的输入操作:
 
 图3-10
可以看出在该界面中共有四种调制方式,也是最基本的调制方式。在弹出时,各个参数都有其初始值以方便用户。对于其中的数据的处理比较简单:通过VC的ClassWizard对界面中的各个控件进行变量的定义,以接收用户的数据的输入:

图3-11

中国大学排名


在程序的编写过程中也遇到了一些问题:譬如,多个单选按钮如何组合在一起,实现真正的单选;当用户选中一个按钮之后,如何对用户的选择进行判断,以正确的执行用户所需要的执行指令;各个功能模块之间如何的进行协调的工作等等。就拿单选按钮的实现来说,因为我的基本波形的选择设想是通过用户的选择(单选)来进行的,这样的设计直观且美观,符合人们的操作习惯。但是应该如何去实现呢?通过查找书本上介绍的例子,首先进行一些测试例子。测试通过之后,再在程序中进行运用。但是也会遇上这样那样的一些问题:例子中能进行正确的执行,但是移植到自己的程序中就不行了。(不过,我想说的一点是有许多书籍的内容是很垃圾的,程序不完整不说,而且还误人子弟)。我现在遇到的问题就是,已经将单选按钮组合在一起了,也能实现单选了,可是,单击的波形,与设计的并不一样,也就是各个单选按钮之间的功能出现了紊乱。而且还出现了跟另外一组的单选按钮出现了冲突。当时我就有点懵了。怎么会出现这样的情况呢??思
上一篇:PHS网络优化和维护指导思想-通信工程毕业论文 下一篇:没有了