c#多通道波形显示_基于C#波形显示控件升级版

本文介绍了对C#波形显示控件的改进,包括多通道波形显示、波形平移、放大缩小、拖动查看、坐标显示、截图、清屏及文件内容读取等功能。通过对原控件的优化,实现了更丰富的用户体验,适合需要实时波形显示的项目。
摘要由CSDN通过智能技术生成

两个月前制作一个项目,需要用到上位机实时显示波形的功能,说实话,在当时我的水平来看,用上位机进行串口的读写这样的功能没问题,但是一遇见画图之类的功能我就瞬间蛋疼了,于是我就上网搜索相关的源代码,很幸运,我搜到了xf_z1988的波形显示控件,当时我感觉如释重负,终于看到了胜利的曙光。同时他还写了一篇关于这个控件的功能介绍http://www.cnblogs.com/xf_z1988/archive/2010/05/11/CSharp_WinForm_Waveform.html

通过仔细拜读,感觉楼主水平果然高超,思维缜密代码清晰,实为我辈学习的对象。里边的功能十分强大,使用十分方便,十分给力。

在项目程序设计的过程中,由于要求比较苛刻,这个波形控件的功能有点不能满足我的需求,于是在一个风雷交加的晚上,我暗暗下定决心,面对这座大山进行代码的修改。到目前为止,我对这个控件做出来了多处修改,具体修改内容如下:

(1)修改了“默认坐标范围”的功能,它现在表示在接收数据的时候,横坐标范围不变,波形图像一直向左平移,且波形的结尾处一直处于波形控件的右边。

(2)简化了放大波形的过程,添加了波形缩小的功能。

(3) 添加了波形拖动的功能,可以很方便的查看历史记录。

(4)添加显示曲线坐标的功能,可以很方便的显示出曲线上某一点的实际坐标,matlab风格的。

(5)添加了截图的功能。

(6) 添加了清屏的按钮。

(7)支持文件内容的读取与显示(由于显示风格比较复杂,没有把波形的储存集成到控件本身,需要用外部的程序进行实现,这段代码在下边会详细介绍,代码很简单,容易实现)。

(8)支持纯链表显示(就是原控件的工作模式),纯文件内容显示,链表和文件混合显示,方便对历史波形进行查看。

(9)在显示波形之前,添加了设置波形显示模式的内容,可以方便不同情况下的显示状况(这一点在下边详细介绍,在这里不做解释)。

(10)优化了部分驱动算法,删除了部分没用的代码(可能是楼主调试的时候忘了删除无用代码吧)。

OK就这些,虽然添加的东西不太多,但是加上之后给人的体验还是蛮不错的。奥对,我把留出来的接口函数里边的ref关键字统统去掉了,只要不是int、double之类的基本类型或者是struct的结构类型,都是可以不用ref关键字的。

b0312557916dbcb8befb2c6294663be6.png

二、修改

对于波形的显示功能,我没有做任何修改该,包括标尺、网格、背景颜色设置,这些内容的具体实现方式请看原作者的博文,就是上边的连接,我这里就不再做解释了。

除了这个之外,别的函数我基本上都动过手术刀,你要问我我到底改过什么地方,这些功能是是什么,我只能轻轻的告诉你:我忘了。我现在只能记住一些主要的地方,那些局部细节的修改是在是太多了,我没法一一列举出来,特别是我这里支持对波形文件的读取,那么对数据的处理基本上改了个遍,现在想想都头皮发麻。鉴于此,在这里我按照逻辑顺序,由浅入深把主要的修改内容简单的介绍一下,我尽量保证文章的简单,突出重点。

2.1截图功能

好多内容都是牵一发而动全身的,只有这个截图功能相对比较独立。

关于截图我是把功能放到FuncPrivate中的CutPic函数里边的。只要调用这个函数,在哪个地方都可以截图。

27ff8a007f535c45bf36f799213c48e8.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值