Gnuplot C ++ в режиме реального времени из текстовых файлов

Привет я в настоящее время чертит данные из файла через канал в C ++. Я написал функцию, которая читает в текстовом файле, обрабатывает информацию, наносит на карту данные в текстовом файле и наносит метки и стрелки по мере необходимости.

Теперь мне нужен способ плавного построения графика в цикле, чтобы на каждой итерации читался и отображался другой текстовый файл без мерцания окна Gnuplot.

Например:

for (unsigned int i = 0; i< 10; i++){
Processing_Plotting(i, gp);
}

Это код, который у меня есть в основной программе, который будет печатать текстовый файл, обозначенный ‘i’. например: laserData1, laserData2 и т. д.

В настоящее время сюжет мерцает и не читается из-за скорости, которую он вызывает.
Я искал способ отображения данных в реальном времени с помощью Gnuplot, но мне не повезло,
любая помощь будет оценена. Спасибо

Картина того, что я рисую:
http://imgur.com/3eTpMaB

1

Решение

Существует пример анимации, которая поставляется с Gnuplot-iostream библиотека. Он не мерцает, по крайней мере, на моей машине (Linux). Отказ от ответственности: я автор этой библиотеки, так что это бесстыдная вилка.

Ваш фрагмент кода не показывает, как вы на самом деле взаимодействуете с gnuplot, однако вы должны обязательно выполнить три вещи: 1) не закрывать, а затем снова открывать канал после каждого кадра, 2) вызывать fflush на трубе после каждого кадра и 3) добавить задержку между кадрами. Отложить на Linux вызов ::usleep(microseconds) (и включают unistd.h), на Windows звоните ::Sleep(milliseconds) и включать windows.h,

Суть передачи данных анимации в gnuplot заключается в том, что вы не знаете, соответствует ли она. Так что прилив и сон жизненно необходимы. Но я построил осциллограф из gnuplot, так что я знаю, что он может хорошо работать.

1

Другие решения

Других решений пока нет …