来自 C++ 数组的实时颜色图

Realtime colormap from c++ array

我正在开发一种数据采集软件,它可以存储来自板载卡的数据,并以生产者-消费者的方式连续绘制数据。

我已经拥有的是这样的:

制作人:

while(true){
    acquire(data);
    signal_consumer();
}

消费者:

while(true){
    wait_producer();
    data2file();
}

数据是一个包含 1 秒的数组。收购。

我现在要添加的是另一个消费者,它执行一些过滤器(可能是 fft)并在每次采集时更新颜色图(过滤的每个数据数组将是颜色图的一行)。

我已经阅读了几个绘图库并决定使用 qwt。我看过这些示例(实时和频谱图),但我无法理解它的工作方式以及如何让它绘制我的过滤数据数组。

我是否使用了正确的工具来完成工作?有没有办法为 qwt 使用 c++ 数组?如果是,怎么会?

有很多工具可以解决这个问题,根据您的描述,qwt 绝对是一个不错的选择。是的,您可以在 qwt 中使用向量(您所说的 c++ 数组)。这是一个例子:

 QwtPlot plot;
 // ... setup plot to taste ...
 std::vector<double> x;
 std::vector<double> y;
 x.push_back(0.0);
 x.push_back(1.0);
 x.push_back(2.0);
 y.push_back(0.0);
 y.push_back(2.0);
 y.push_back(4.0);
 QwtPlotCurve curve("Plot");
 curve.setSamples(&x[0], &y[0], (int)x.size());
 curve.attach(&plot);

http://qwt.sourceforge.net/class_qwt_plot.html

http://qwt.sourceforge.net/class_qwt_plot_curve.html