多通道数字示波器

上传人:wt****50 文档编号:55042310 上传时间:2018-09-23 格式:PPT 页数:21 大小:279.50KB
返回 下载 相关 举报
多通道数字示波器_第1页
第1页 / 共21页
多通道数字示波器_第2页
第2页 / 共21页
多通道数字示波器_第3页
第3页 / 共21页
多通道数字示波器_第4页
第4页 / 共21页
多通道数字示波器_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《多通道数字示波器》由会员分享,可在线阅读,更多相关《多通道数字示波器(21页珍藏版)》请在金锄头文库上搜索。

1、多通道数字示波器,一 构建思想,优点: 1利用VC强大功能,可以在微机上进行操作。 2方便调整修改,满足不同的信号处理要求。 3能够存储大容量的数据,方便对数据分析,提高工作效率。 4占用内存比较小,运行速度快。,二 基本原理,本示波器有2大部分组成 1 数据。包括数据的读取,存储,即时读取,后台处理。 2 显示。对数据的显示功能。包括显示即时数据,显示读取存储的数据。,数据处理,1 建立合理高效的数据结构。 处理方法:建立结构体。其中包括数据的一切属性,使之与图象联系起来,达到直观,准确的观察效果。 例: struct curAtt /通道线的属性 unsigned int color; /

2、线颜色 unsigned int width; /线宽 int boundY; /Y轴范围 int offsetY; /中心轴偏移量excursionY float scale; /放大缩小系数 int precision16;/灵敏度 int excursion21; /中轴偏移 channel8;,struct CanData char data500000;/存储数据缓冲 candata8; struct DataBuffer /数据显示缓冲 char dataMaxBuff; databuffer8; struct DataSave /数据存储缓冲 char data500000; d

3、atasave8;,优点:数据反映全面,直观。方便修改,为以后的程序更新提供了很好的基础。 2 数据的存储 处理方法:建立大缓存,采取同存的方法,一次性处理4M甚至更大的数据。 例:char tempdata4000004;/临时缓冲1 char tempdata24000004;/临时缓冲2 unsigned char onetime;/循环次数计数,写数据: 长度小于500000的处理方法 for(unsigned long h=0;h500000;h+) tempdatah+4+500000*0 = candata0.datah;/1 tempdatah+4+500000*1 = can

4、data1.datah;/2 tempdatah+4+500000*2 = candata2.datah;/3 tempdatah+4+500000*3 = candata3.datah;/4 tempdatah+4+500000*4 = candata4.datah;/5 tempdatah+4+500000*5 = candata5.datah;/6 tempdatah+4+500000*6 = candata6.datah;/7 tempdatah+4+500000*7 = candata7.datah;/8 把8个通道的数据同时分段存到一个结构体中。采用二进制的存储方式,速度快。,/数

5、据长度超过500000万的处理方法 for(unsigned long h=0;h500000-datapo;h+) tempdatah+4+500000*0 = candata0.datah+datapo;/1 tempdatah+4+500000*1 = candata1.datah+datapo;/2 tempdatah+4+500000*2 = candata2.datah+datapo;/3 tempdatah+4+500000*3 = candata3.datah+datapo;/4 tempdatah+4+500000*4 = candata4.datah+datapo;/5 t

6、empdatah+4+500000*5 = candata5.datah+datapo;/6 tempdatah+4+500000*6 = candata6.datah+datapo;/7 tempdatah+4+500000*7 = candata7.datah+datapo;/8 for(h=0;hdatapo;h+) tempdatah+4+500000*1-datapo = candata0.datah;/1 tempdatah+4+500000*2-datapo = candata1.datah;/2 tempdatah+4+500000*3-datapo = candata2.da

7、tah;/3 tempdatah+4+500000*4-datapo = candata3.datah;/4 tempdatah+4+500000*5-datapo = candata4.datah;/5 tempdatah+4+500000*6-datapo = candata5.datah;/6 tempdatah+4+500000*7-datapo = candata6.datah;/7 tempdatah+4+500000*8-datapo = candata7.datah;/8 ,3 数据的读取 处理方法:读取二进制文件,利用存储的标识分段读取数据,并在示波器上成像。 例: unsi

8、gned long dp=0; dataX=dp=(unsigned char)tempdata20)*256*256*256+(unsigned char)tempdata21)*256*256+(unsigned char)tempdata22)*256+(unsigned char)tempdata23;/设置读取数据大小 for (unsigned long j=0;jdp;j+) candata0.dataj=tempdata24+j+500000*0;/1 candata1.dataj=tempdata24+j+500000*1;/2 candata2.dataj=tempdata

9、24+j+500000*2;/3 candata3.dataj=tempdata24+j+500000*3;/4 candata4.dataj=tempdata24+j+500000*4;/5 candata5.dataj=tempdata24+j+500000*5;/6 candata6.dataj=tempdata24+j+500000*6;/7 candata7.dataj=tempdata24+j+500000*7;/8 ,优点:速度快,自动分段存储,省时。 4 数据接收 处理方法:建立大缓存,即时接收数据。同时分通道接收 例: 显示通道1,2.8缓存databuff= 存储通道1,2

10、8缓存databuff=接收数据,四 显示处理,1 建立示波器界面。 方法:利用VC控件和NI控件,2 建立相关函数和变量 方法:利用VC系统和手动建立。目的是使通过手动建立的变量使数据和VC系统变量联系起来。,int xValue/*x轴显示范围*/ ; int boundX5;/x轴点数范围 unsigned long dataX; unsigned long datapo; /数据存储位置 unsigned long datadisp; /数据显示位置 xValue = boundXint(m_Xvalue.Value)-1; if(dataX-m_Slide.Value)xValue)

11、 m_Graph.GetAxes().Item(“XAxis“).SetMinMax(0, xValue); ,3 显示图象 方法: 利用VC和NI的类函数处理数据,使之成像,用示波器界面表现出来。对控件进行操作,对数据进行处理。 for(int k=0;k8;k+) for(int i=0;iMaxBuff;i+) vectordataYi = databufferk.datai; m_Graph.GetPlots().Item(k+1).ChartY(vectordataY);/用图表方式即时显示波形 ,五 总结和展望,1 利用好NI的帮助。在帮助里有许多大众程序,在此基础上修改,可以实现各种不同的新的功能。,2 VC+不是C+,还是要熟悉C+。 3 理解更多数据方面的知识对以后的工作会有更多帮助。 4 做软件要体现人性化,越傻瓜越好。 在以后的学习工作中要改进的地方 1 更新数据处理方法,使其更快更有效率。 不采用分段存储和读取的方法。 在存储方面采用直接存储的方法,利用2个缓存轮流存储数据。,读取的时候采用部分读数的方法,大大降低显示数据对内存的消耗。 2 提高程序的效率,减少重复的代码。 建立更多的类,做成独立的模块,便于重用。 学习XML文件的有关知识。 修改程序漏洞。 3 保存图象的全部状态,包括大小,颜色,开关状态等等。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 文化创意

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号