一个c++builder开发的曲线控件

椰壳里的海 2021-04-20 12:11:47

一、 概述。

本曲线控件在处理快速长时间实时曲线绘图和打开处理超大容量静态曲线数据时,具有优异的性能,例如:放大、缩小、平移、恢复全图、实时移动绘制曲线、实时收缩绘制曲线、无级不对称平移或放缩曲线、固定横向或纵向放缩或平移曲线等等,任何状态下曲线显示不失真。在打开多达200多兆的外部曲线数据时,用时仅几十秒,调入显示后,可以随时随意地快速编辑(放大、缩小、平移等)曲线,并且可以任意次关闭打开大容量曲线数据文件。

本控件在实时或静止状态下,对屏幕上数据曲线的处理(显示和调用等),都是精确并真实的!没有做任何诸如“曲线拟合”、“平均值”等的失真处理,可以将绘图区域的全部曲线点无级缩小成一个点,也可以无级放大到只显示一个步长曲线点。这些主要特点如下:

1. 全屏显示长时间高速度地收缩绘制曲线,并且随时瞬间完成实时地任意编辑(放缩、平移、无级不对称平移并放缩…)曲线,不出现延时现象。这个“全屏显示”就是无论曲线数据点数有多大(几十万点、几百万点、几千万点…,只要计算机系统允许容纳。目前,本系统对单条曲线的绘制可以达到38873827个点,8字节Double类型Y值。)都可以实时快速地显示在屏幕的控件绘图区域;这个“长时间”就是数天、数周、数月等等(只要采集的绘制曲线的数据量被计算机系统允许,例如:对单条曲线绘制来说,若计算机每秒采集10个数据,则系统可以连续采集绘制运行45天,期间,不影响实时对曲线进行编辑处理等。);这个“高速度”就是绘制曲线显示速率最高可达100个/每秒(速度受显示器性能限制,否则高于100/S)。

2. 针对外部存储器上的超大容量(最高多达3千多万点,8字节Double类型Y值,近300M数据)静态历史曲线数据文件,仅第一次,本控件可以在几十秒内从存储设备读出并绘制在屏幕上,剩下可以任意不延时地在屏幕上编辑曲线(放缩、平移、无级不对称平移并放缩… ),并且,根据需要可以快速关闭该曲线文件,再任意次反复打开外部存储器上其它超大容量历史曲线文件进行处理,从而不仅节省大量时间,并且实现了对超大容量历史曲线数据进行快速精确比较、分析和研究。

3. 首次使用鼠标实现无级不对称同步平移放缩曲线,实现把曲线像面团一样揉捏,从而可以快速并方便地显示需要的曲线部分进行分析比较观察。

4. 实时保存数据和静态打开连接数据技术:本控件设置了许多属性和方法,从坐标、网格、颜色等进行定制,还设置了实时曲线固定时长或固定步长进行实时存储方法,当曲线数据快要达到极限时,用户可以调用初始化方法,不停机地进行下一轮实时数据采集绘制,从而满足了长时间采集数据绘制曲线并实时保存数据的要求。后期用户可以将这些分时分段保存的数据文件依次打开并实现 连接组装成一个文件。

5. 灵活的曲线坐标起始点设置技术:曲线起始点可以沿着纵向网格线间距上下跳动。无论在程序设计或运行阶段,用户可以根据需求灵活地执行该功能。

6. 实用的动态坐标显示技术:无论是在静态还是动态绘制曲线时,用户可以使用鼠标在绘图区域滑动时,实时地显示当时鼠标指向点的坐标值。从而方便地来定量观察分析曲线,满足实际需求。

二、 技术适应范围。

曲线控件为32位Windows系统控件,在32位Windows计算机系统上可以直接注册使用,例如:Windows XP、Windows 2000、Windows 7、Windows10等。在64位Windows系统中,下载使用CC3260MT.dll来实现注册 。
...全文
559 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
椰壳里的海 2021-04-20
  • 打赏
  • 举报
回复
1287263036@qq.com
椰壳里的海 2021-04-20
  • 打赏
  • 举报
回复
联系我“128763036@qq.com"
椰壳里的海 2021-04-20
  • 打赏
  • 举报
回复
我这有演示程序,需要的话,把邮箱给我!
  • 打赏
  • 举报
回复
在打开多达200多兆的外部曲线数据时,用时仅几十秒
================================
这么慢还敢说快~
ooolinux 2021-04-20
  • 打赏
  • 举报
回复
上图才有说服力。
含有全部工程文件,使用C++ Builder 6.0完成开发,可重新编译运行。创作权归曹润泽所有,使用者不可用于商业目的,否者后果自负。 本软件功能: 上层的应用软件的模块主要有:初始化模块、用户设置模块、COM串行通信数据采集模块、数据矫正模块、数据绘图模块、数据存储模块、网络传输模块、功能整合模块等。其中网络传输模块又可以根据工作模式分为服务端网络传输模块和客户端网络传输模块。 用户设置模块:主要是通过用户设置设置窗口中的信息来完成软件的设置,这些可以设置的变量都非常重要,包括基本设置:采样频率设置、COM端口选择、警告限设置(是否使用警戒限、高警戒限的大小、低警戒限的大小)、矫正表设置(是否使用矫正表、选择矫正表);绘图设置:显示点数设置、曲线宽度设置、曲线颜色设置(高警戒曲线的颜色、正常时曲线颜色、低警戒曲线的颜色设置);网络设置:是否使用网络传输、网络基本设置(服务端选择、客户端选择、端口号设置、服务端IP设置)。 COM串行通信数据采集模块:用于从串行口中读取数据。 本系统使用专门用于RS-232串行通信通信控制的控件TComm控件来完成COM通信。 数据矫正模块,顾名思义,是用于对数据进行矫正的。若需要矫正数据,必须使用矫正表,矫正表实际上只是个用户可自定义的文本文件,但在编写矫正表文件时必须按照一定规则进行编写。 数据绘图模块:对于采集数据的实时绘图是通过Borland C++ Builder 6.0自带的功能强大的TChart控件来实现。 数据存储模块:该模块除了使用了编译器所提供的几个基本数据类型之外,基本上是使用纯C++编写(不使用编译器的控件)。数据存储并未使用数据库存储,而是使用文本文件的方式对所有采集到的时间进行存储,存储时要先把采样信息写入到数据文件的头部,包括创建时间、采样起始时间、采样持续时间、采样结束时间、采样频率、采样数等等信息,之后就是所采集的数据,采样数据包括数值和采集的该点所对应的时间,以及该点是否被警告(过低用!Low表示、正常用-表示、过高用!High表示)。 网络传输模块:网络传输模块是本数据采集系统比较新颖的模块,可以使用互联网进行速率较低的数据传输,考虑到网络传输的延迟,故设计时设置的采样速率比较低。网络传输模块实际上是使用Socket编程实现的,在Borland C++ Builder中有封装好的用于网络通信的控件:TServerSocket和TClientSocket。

703

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
  • ActiveX/COM/DCOM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧