我要写一个程序,绘制连接到计算机的传感器的数据。传感器值将绘制为时间的函数(y轴上的传感器值,x轴上的时间)。我希望能够实时向图中添加新的值。在C++中做这件事最好的方法是什么?
编辑:顺便说一句,这个程序将在Linux机器上运行
发布于 2010-02-03 20:34:17
编写一个函数,它可以以您喜欢的方式绘制std::deque,然后在传感器的值可用时将它们放到队列中,如果队列太长而不能很好地绘制,则从队列中提取.pop_front()值。
绘图功能的确切性质取决于您的平台、需求、美感等。
发布于 2010-06-13 12:42:42
您是否特别关注C++方面?我已经通过将gnuplot放入读取/绘制/刷新循环或使用LiveGraph没有任何问题地对数据进行了10 no左右的速率测试。
发布于 2010-02-03 20:45:25
您可以使用。在这样缓冲区中,你有读位置和写位置。这样一来,一个线程可以写入缓冲区,另一个线程可以读取和绘制图形。为了提高效率,你通常会编写自己的框架。
这类缓冲区的大小可以使用以下方法来估计:来自传感器的数据传输速度(40 keep?)、一个探头的大小和您希望保留用于绘图目的的时间跨度。
它还取决于您是否希望存储这些未压缩的数据,存储渲染的绘图-所有这些都用于进一步的离线分析。在非RTOS环境中,您的“实时”取决于处理速度:您检索/存储/处理和绘制数据的速度。通常它是近乎实时的效率。
https://stackoverflow.com/questions/2191831
复制相似问题