Я пытаюсь использовать конвейерный интерфейс для gnuplot (стандартный gnuplot_i. {Cpp, hpp}), чтобы генерировать отображение в реальном времени значений, которые постоянно меняются в другой программе, написанной на C ++.Это работает нормально, но я хотел посмотреть, есть ли у кого-нибудь предложения по улучшению.
Эта реализация содержит удобный метод для построения одного вектора и 2-х векторов в виде 2D-графика.Это достигается путем записи во временный файл с помощью стандартного библиотечного вызова функции mktemp и последующего использования этого в качестве входных данных для вызова заговора gnuplot.Это генерировало слишком много временных файлов и, по-видимому, не работало хорошо, когда частота обновления на графике высока (возможно, IO ограничено в определенный момент).Я решил использовать псевдо-файл «-» в вызове plot и просто отправить векторы прямо в канал (заканчивающийся одной строкой с «е» на нем).Это работает лучше, но все еще не очень хорошо.
Есть ли способ , чтобы делать то, что я пытаюсь сделать, чем постоянно обновлять график, когда значения меняются?Как часто безопасно обновлять сюжет новой информацией?В качестве альтернативы, может быть, есть гораздо более простой способ добиться того, что я пытаюсь сделать?
@ Andy Ross
У меня нет "требований" как таковых.Под сликом я имел в виду, что, возможно, был более элегантный подход к выполнению того, что я пытался, все еще используя gnuplot.Хотя элегантность субъективна, я считаю, что подход, который я сейчас использую, особенно неэлегоненПод безопасным я имел в виду, знал ли кто-нибудь, с какой частотой обновления возникнут проблемы с вводом-выводом (например, задержка, блокировка дисплея и т. Д.) С указанным подходом.
Я бы хотел избежать использованияИнструментарий по следующим причинам (по крайней мере, мой короткий список).
- Я обнаружил, что они, как правило, нетривиальны для правильной установки на разных архитектурах, особенно как некорневые (и когда им требуются зависимости, которые не требуются).Это не стандарт для всех операционных систем).
- Они несут дополнительную зависимость от компиляции для других людей, использующих это программное обеспечение.
- Похоже, что нет реального стандарта , который наиболеелюди используют для этого afiak (я сам, как и большинство людей, с которыми я работаю, обычно просто сохраняет файлы типа журнала и выполняет анализ после запуска в MATLAB).
- Я знаю / изучаю синтаксис gnuplot.Я не знаю синтаксиса superPlottingApiXX.
- Набор функций gnuplot почти идеально подходит для типов вещей, которые я хотел бы делать с этим программным обеспечением.
Однако,если у вас есть какие-либо конкретные предложения в отношении библиотек построения графиков C / C ++, которые кажутся подходящими с учетом приведенного выше списка, я всегда заинтересован в предложениях (предупреждение: я уже много раз искал их, чтобы найти).