实时更新

时间:2018-07-30 08:39:32

标签: c++ plot root-framework

我想使用Root绘制时间数据图。这些来自以10Hz更新的传感器。根可以应付实时更新图吗?

1 个答案:

答案 0 :(得分:2)

在根目录下似乎可以正常工作:

#include <unistd.h>
TH1F hist("hist","hist",100, -10,10);
TCanvas c;
hist.Draw()
for (int i = 0 ; i < 10000; i++ ) {
  hist.FillRandom("gaus",10);
  hist.Draw();
  usleep(100000);
  c.Update();
}

我还没有看到现实生活中的应用程序以10Hz更新根显示,但是在已编译的应用程序中,基于根的存在以较低刷新率进行的“实时”绘图,用于检测器监视。 (我实际上不知道常用的刷新率,但是如果我敢打赌,它将在1Hz到10Hz之间。)

编辑(已编译应用程序的示例)

#include <TApplication.h>
#include <TCanvas.h>
#include <TH1F.h>
#include <unistd.h>

int main(int argc, char** argv) {
  TApplication theApp("App", &argc, argv);
  TH1F hist("hist", "hist", 100, -10, 10);
  TCanvas c;
  hist.Draw();
  for (int i = 0; i < 10000; i++) {
    hist.FillRandom("gaus", 10);
    hist.Draw();
    usleep(100000);
    c.Update();
  }

  return 0;
}