网站地图| 免费获取|
毕业论文网
  • 网站首页|
  • 论文范文|
  • 论文降重|
  • 职称论文发表|
  • 合作期刊|
  • 论文下载|
  • 计算机论文|
  • 外文翻译|
  • 免费论文|
  • 论文资料|
  • 论文开题报告
搜索

当前位置:毕业论文网 -> 免费论文 -> 电子通信 -> 免费资料文档--基于网络的虚拟仪器测试系统(十)
自动化论文范文| 电子机电论文| 测控技术论文| 通信专业论文| 电气工程论文| 通信工程论文| 电子信息工程论文| 免费自动化论文| 免费电子论文| 免费电气论文| 免费通信论文

免费资料文档--基于网络的虚拟仪器测试系统(十)

最新活动:微信集50个赞就可获取任意一篇钻石会员文档。详情见微信集赞换文档
免费资料文档--基于网络的虚拟仪器测试系统(十) <header><waveform data block><nl>
举个例子:<header>=#800002048 ”#8”会从头部去掉,而留下数值部分,表示波形数据块的字节的个数。该参数是会变的(根据指令:waveform:points来设置数据点的采样的个数)。从示波器中读取数据直至读回结束符为止。下面给出了读取引导数据和波形数据的部分代码:
 ViStatus error;
 viPrintf(/*oscillograph*/m_Session,":ACQ:COMPLETE 100\n");
 viPrintf(/*oscillograph*/m_Session,":wave:points 2000\n");
 viPrintf(/*oscillograph*/m_Session,":DIGITIZE %s\n",osciset.m_Channel);
//************************************preamble的采集***************************************
 viPrintf(/*oscillograph*/m_Session,":waveform:preamble?\n");    error=viScanf(/*oscillograph*/m_Session,"%f,%f,%f,%f,%f,%f,%f,%f,%f,%f\n",&preamble[0],&preamble[1],&preamble[2],&preamble[3],&preamble[4],&preamble[5],&preamble[6],&preamble[7],&preamble[8],&preamble[9]);
  if(error!=VI_SUCCESS)
  {error_handler(/*oscillograph*/m_Session,error);return;}
//************************************数据点的采集部分**************************************
//利用字符转换符和viScanf函数来进行读取数据并定义一个无符号的字符数组来对读//取的数据进行存储--随后进行数据
//**************************************的转换和数据的处理---2005/5/17
 viPrintf(/*oscillograph*/m_Session,":waveform:data?\n");
    unsigned char temp[2000];
    for(int i=0;i<2000;i++)
 { error=viScanf(/*oscillograph*/m_Session,"%c",&temp[i]);
  if(error!=VI_SUCCESS)
  {error_handler(/*oscillograph*/m_Session,error);  return;}
 }
//*****************************************数据的转换*****************************************
 int j=0;
 for(i=18;i<2000;i+=20,j++)
 {   temp[j]=(int)temp[i];
  n++;//数据的个数 }
数据采集这一块我花了不少的时间,不断的对指令进行测试,但是以为只要通过:waveform:data?指令然后进行读取就OK了!!然而,查看资料才晓得示波器采集回来的数据是想前面所示的那样,有头部数据以及二进制数据块,这就把我给难住了!二进制数据该怎么读呢??从安捷伦网站上下载下来的资料中虽然提供了怎样进行波形数据的读取的方法,但它并没有给出在VISA情况下的数据的读取的方法。但是它也给了我一定的提示:头部给出了数据块的字节的个数,既然是字节,也就是一个字符。那么这样的话就可以读取数据了。然后经过我的测试,一切OK!我好高兴~~~~~
 读回数据之后,就是数据的显示问题。至于这个我采用了别人给我的一个类,通过该类我可以比较轻松的进行数据的显示工作。我只要将读回的波形数据进行处理,并将数据传递给给类的一个数组就可以了!!
//*****************************************数据的转换*****************************************
 int j=0;
 for(i=18;i<2000;i+=20,j++)
 {   temp[j]=(int)temp[i];
  n++;//数据的个数 }
//*****************************************数据存储*******************************************
  for(int k=0;k<n;k++)
  {      m_Static.wave_data[k]=(((float)temp[k]-preamble[9])*preamble[7]+preamble[8])*m_Y;//这里使用Y        
  }         Invalidate();//这个用于屏幕画面的刷新
两大问题的解决,示波器也就基本上可以告一个段落了!!其他的功能的实现相对来说要容易的些!
下面是示波器显示窗口部分初始化代码:
 //*******下面是另外一种方法---更方便控制示波器的显示的尺度,也就是在对话框模板上//添加一个静态控件,并调节它的尺度到你需要的范围,并最好是更改一下它的ID,然//后通过下列语句来进行创建显示
    CRect m_nRect;
 CStatic* pStatic=(CStatic*)GetDlgItem(IDC_STATIC_SHOW);
 pStatic->GetClientRect(

首页 上一页 7 8 9 10 11 12 13 下一页 尾页 10/14/14

免费资料文档--基于网络的虚拟仪器测试系统(十)由毕业论文网(www.huoyuandh.com)会员上传。
原创论文资料流程 相关论文
上一篇:免费资料文档--接入网网管解决方案 下一篇:免费资料文档--ATM综合接入系统
推荐论文 本专业最新论文
Tags:免费 资料文档 基于 网络 虚拟 仪器 测试系统 2010-03-19 10:38:38【返回顶部】
精彩推荐
发表论文

联系方式 | 论文说明 | 网站地图 | 免费获取 | 钻石会员 | 硕士论文资料


毕业论文网提供论文范文,论文代发,原创论文资料

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 17304545@qq.com

Copyright@ 2009-2020 毕业论文网 版权所有