【发布时间】:2017-06-12 11:29:23
【问题描述】:
我正在尝试读取来自我的 Arduino 的大量数据,我已将输入缓冲区设置为 500000 以确保它可以处理所有这些数据。我的数据是 4 个传感器以 250 Hz 的频率读取每个样本。使用默认缓冲区大小 (712),当我实时绘制读数并且样本变得混乱时,我常常会遇到障碍,这使得情节变得疯狂。我通过将缓冲区大小增加到 50000 解决了这个问题。但是现在,这将工作一段时间,但如果我想运行它 15 分钟,我会在 5 分钟后得到同样的错误行为,此外绘图变得更慢。我确实有一些处理代码以及实时绘图,但它不应该是这样的双缓冲区。我想知道缓冲区是否会从一开始就包含所有数据,直到它满了,还是会在满时继续擦除旧数据(知道我已经将它保存在另一个向量中并绘制了它)。我真的不明白为什么会一直这样。
亲切的问候 I.H
【问题讨论】:
-
“我确实有一些处理代码以及实时绘图,但它不应该像这样,有这么大的缓冲区”。缓冲区的大小不会影响您的处理速度。如果您对数据块的处理时间比数据块到达所需的时间长……那么即使是无限的缓冲区也不会阻止数据到达和显示之间的逐渐去同步。