用Qt、QWT和C++进行实时数据绘图
Real Time Data Plotting With Qt, QWT and C++
我是Qt、QWT的新手,对C++有基本的了解。
根据我得到的项目,我必须获取房车上传感器提供的一些数据,如太阳能电池板的电压和电流、温度、湿度等。所有这些数据都是由一些传感器获取的,并由NI 6229 DAQ设备收集。
到目前为止,我只是提供了一些细节。现在我来谈谈真正的问题。
我想获取来自DAQ设备的数据,并在程序中显示、绘图、记录和日志。
我决定使用C++、Qt和QWT。以及用于从DAQ设备获取数据的NIDAQMX API。
我已经设计了一个GUI的一部分,但我坚持的是我代码的真正工作部分。
我不知道如何在考虑性能标准的情况下实现所有这些东西,我真的需要一个指南。
我应该如何处理数据采集?
我应该如何绘制我获取的数据?
这些需要用不同的螺纹或其他结构分开吗?
收集近10或12个通道的数据并实时绘制数据是否会导致合理的性能问题?如果是,我该如何处理?
提前谢谢。
如果您编写一个简单的程序来使用NI 6229,则需要设置操作的优先级:绘制或记录数据
在大多数情况下,数据存储是最重要的操作
在实践中,我使用了以下算法:
- 1个GUI线程(通用UI+绘图),每个设备1个用于数据采集的线程,1个用于记录数据的线程
- 数据采集线程每dT时间运行一次(我们问设备:-准备了多少数据?-10000个样本-好的,给我)。因为NI 6659的采样频率小于1MSamples/s,我认为dT的值大约为50-200ms(取决于接口)
- 从设备读取数据后,我使用队列将数据发送到线程进行记录
- 绘图也是如此。我在数据抽取中使用qwt(但应该保存峰值)。Qwt有一个不错的例子。你也可以找到提高绘图性能的解决方案。我的建议是将图表分组,例如,一组可能包含4个图表
它只适用于简单程序,不适用于实时操作系统。
相关文章:
- 从数据库实时显示QT c++中的数据
- 将相机数据从服务器实时流式传输到客户端
- 线程之间的实时数据共享
- PHP 中的实时仪表板,可从C++共享数据
- 如何将 Matlab 与 Visual Studio 连接以进行实时数据交换?
- C++从 CSV 读取的实时数据
- QTCharts,当实时数据进入时,我如何使图表遵循x轴
- 如何使用 c++ 实时数据增加 gnuplot 的绘图频率
- 使用来自不同线程的实时数据更新QTableView的最佳策略
- 用Qt、QWT和C++进行实时数据绘图
- 两个 C++ 可执行对象之间的实时数据通信,一个是 Windows 和另一个在虚拟机 Ubuntu 中
- 筛选实时数据时出现QSortFilterProxyModel问题
- 尝试使用 CImg 库 (C++) 制作实时数据绘图器
- 存储/缓存实时数据的最佳方式,具有磁盘持久性
- 缓冲区中的实时数据存储@Visual Studio 2013 Professional C++Windows 7
- 如何在Java和C++代码之间进行实时数据通信
- 如何使用Java Android SDK做好的实时数据流
- 将实时数据发送到Excel
- 使用Direct2D绘图与实时数据从一个计时器
- 用于实时数据采集的快速内存分配