System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种QT数据可视化二次采集多线程优化方法技术_技高网

一种QT数据可视化二次采集多线程优化方法技术

技术编号:40594936 阅读:5 留言:0更新日期:2024-03-12 21:57
本发明专利技术涉及上位机数据可视化和数据采集,具体是指一种QT数据可视化二次采集多线程优化方法,包括主线程、数据处理线程、内存监控进程,自定义性能类,从自定义性能类里原则读取频率,自定义Timer定时器根据性能类的主线程刷新量建立等同容量的刷新队列;Emit发送队列的数据信号清空采集队列,最终通过渲染槽函数根据队列数据批量重新绘制UI刷新Qchart。优点在于:程序的稳健性得到了大幅度的提高,就算加大几倍的数据量程序也不会卡死,因为针对使用上位机程序的计算机进行了单独分析,不同配置的计算机都可以顺利的执行大量数据的采集的可视化。

【技术实现步骤摘要】

本专利技术涉及上位机数据可视化和数据采集,具体是指一种qt数据可视化二次采集多线程优化方法。


技术介绍

1、qt是一个著名的跨平台c++开发框架,在上位机领域的运用非常广泛,它的跨平台特性、丰富的功能库以及易用的开发工具使其成为开发高质量上位机软件的首选框架。上位机软件通常指的是在计算机上运行的用于监控和控制下位机或嵌入式设备的应用程序。这些软件可以通过各种接口(如串口、网络等)与硬件设备进行通信,实现对硬件的控制和数据的处理。

2、qt开发的上位机一般自带人机交互界面(ui),上位机的使用者不需要知道原理就可和下位机进行交互,在大数据时代,随着数据量的激增,普通的数据展示已经不足以满足用户的需求,数据可视化是将数据通过图形、图表、地图等视觉元素的形式呈现出来的过程。这种转换使得复杂的数据集更易于理解和分析,有助于快速识别数据中的趋势、模式和异常值。下位机采集大量数据不加分析发送给上位机进行可视化,如果使用者计算机性能不够,下位机采集的频率太高,不加分析地保留所有下位机采集的数据,因为qt自身缺陷,容易陷入假死状态,即后台依然在工作,主线程的人机交互界面却并不刷新,为了克服这个问题,就需要数据的二次采集:数据的二次采集指的是在原始数据采集的基础上,对已有数据进行进一步的提取和处理,以满足特定分析需求的过程,无论是可视化图标还是后续的储存数据,都需要对数据进行二次采集。

3、为了进行二次采集而不阻塞阻塞线程,就要进行多线程编程,多线程编程是指在一个程序中同时运行多个线程来执行不同的任务。线程是进程中执行运算的最小单位,而一个进程至少包含一个线程,一台计算机的线程处理能力和cpu,内存的配置有关。多线程可以使得程序在同一时间执行多个任务,提高资源使用效率和系统效率。

4、大部分使用上位机的用户并不一定拥有和测试环境相同的计算机配置,尽管qt开发程序有跨平台的特性,但在用户配置不够高的情况下,如果不进行二次采集,非常容易出现程序假死的情况,而上位机又需要长时间的对下位机进行监控,如果使用单独的线程监控计算机本身的状况,根据这个状况对数据进行取舍,能够最大化的不浪费计算资源,起到动态调整的作用。


技术实现思路

1、本专利技术要解决的技术问题是克服以上技术缺陷,提供一种qt数据可视化二次采集多线程优化方法,根据计算机的实际情况,调整二次采集的采集频率和主线程界面刷新频率,目的是尽可能的优化qt上位机程序,使用多线程和二次加工数据防止qt出现主线程假死用户无法看到最新数据的情况。

2、为解决上述技术问题,本专利技术提供的技术方案为:一种qt数据可视化二次采集多线程优化方法,包括如下步骤:

3、s1:主线程,在初始化ui完毕后,创建线程池;

4、s2:启动内存监控进程,在使用前先发送监控信号,通过emit监控初始化信号获取当前使用电脑cpu核数、最大进程最大进程数,内存占有率等;

5、s3:内存分析函数解析,放入一个自定义性能类中;

6、s4:用户在需要使用上位机的时候,在主线程的界面上点击相应的开始按钮,开启数据接收处理线程,数据处理线程主要负责通过数据收集定时器反复接收下位机采集的数据并通过处理将需要的数据进行二次采集;

7、s5:从自定义性能类里原则读取频率,自定义timer定时器根据性能类的主线程刷新量建立等同容量的刷新队列;

8、s6:根据性能类的频率请求,把保留的数据存在采集对列里面;

9、s7:emit发送队列的数据信号清空采集队列,最终通过渲染槽函数根据队列数据批量重新绘制ui刷新qchart。

10、作为改进,在步骤s3中,

11、当存在卡顿占有内存太多进程堵塞时,重新计算计算机能承受的最大刷新渲染频率,把相关参数存在自定义的静态全局性能类里面,进入步骤s5;

12、没有存在卡顿占有内存太多进程堵塞时,始终保持监控。

13、作为改进,在s4中,所述数据处理线程不一定只有一个,有多少需要即使渲染的数据就开多少个数据处理线程,每个数据处理进程的数据处理线程的数据收集定时器之间的时间间隔尽量使用不规则整数,并尽量互质,数据处理线程存放在一个数据队列里面,队列满后再通过数据传递信号激发主线程的渲染槽函数进行可视化渲染。

14、作为改进,在步骤s5中,协议没有需要上位机请求获取下位机数据时,接收每次发送,当没有含有警告数据时,把警告数据存入队列,接着到步骤s7中;

15、当含有警告数据时,只根据性能类的刷新频率把数据存在采集队列其余直接舍弃,队列满时直接转到步骤s7中,队列没有满时返回上一步。

16、作为改进,在步骤s5中,所述自定义性能类中新的接收频率重置定时器并重启,再重复数据接收,接着二次采集,接着渲染到主界面过程。

17、作为改进,所述内存监控进程在用户点击开始按钮的时候,所述内存监控进程也开启了监控定时器。

18、本专利技术与现有的技术相比的优点在于:在使用本优化方法之前,经常因为采样频率过高计算机配置不够,进程过多的原因陷入主程序假死,后台数据仍在处理的情况,对采集数据的可视化造成了极大的阻碍。采用本优化方法后,程序的稳健性得到了大幅度的提高,就算加大几倍的数据量程序也不会卡死,因为针对使用上位机程序的计算机进行了单独分析,不同配置的计算机都可以顺利的执行大量数据的采集的可视化。

本文档来自技高网...

【技术保护点】

1.一种QT数据可视化二次采集多线程优化方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种QT数据可视化二次采集多线程优化方法,其特征在于:在步骤S3中,

3.根据权利要求1所述的一种QT数据可视化二次采集多线程优化方法,其特征在于:在S4中,所述数据处理线程(2)不一定只有一个,有多少需要即使渲染的数据就开多少个数据处理线程,每个数据处理进程的数据处理线程的数据收集定时器(6)之间的时间间隔尽量使用不规则整数,并尽量互质,数据处理线程(2)存放在一个数据队列里面,队列满后再通过数据传递信号(10)激发主线程(1)的渲染槽函数(9)进行可视化渲染。

4.根据权利要求1所述的一种QT数据可视化二次采集多线程优化方法,其特征在于:在步骤S5中,协议没有需要上位机请求获取下位机数据时,接收每次发送,当没有含有警告数据时,把警告数据存入队列,接着到步骤S7中;

5.根据权利要求1所述的一种QT数据可视化二次采集多线程优化方法,其特征在于:在步骤S5中,所述自定义性能类(4)中新的接收频率重置定时器并重启,再重复数据接收,接着二次采集,接着渲染到主界面过程。

6.根据权利要求1所述的一种QT数据可视化二次采集多线程优化方法,其特征在于:所述内存监控进程(3)在用户点击开始按钮(5)的时候,所述内存监控进程(3)也开启了监控定时器(8)。

...

【技术特征摘要】

1.一种qt数据可视化二次采集多线程优化方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种qt数据可视化二次采集多线程优化方法,其特征在于:在步骤s3中,

3.根据权利要求1所述的一种qt数据可视化二次采集多线程优化方法,其特征在于:在s4中,所述数据处理线程(2)不一定只有一个,有多少需要即使渲染的数据就开多少个数据处理线程,每个数据处理进程的数据处理线程的数据收集定时器(6)之间的时间间隔尽量使用不规则整数,并尽量互质,数据处理线程(2)存放在一个数据队列里面,队列满后再通过数据传递信号(10)激发主线程(1)的渲染槽函数(9)进行可视化渲染。

4....

【专利技术属性】
技术研发人员:敖斯汀陈波罗滴侯祎
申请(专利权)人:重庆前卫无线电能传输研究院有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1