Ich versuche die Pipe-Schnittstelle zu Gnuplot zu verwenden (ein Standard-gnuplot_i. {Cpp, hpp}), um eine Echtzeitanzeige von Werten zu erzeugen, die sich ständig ändern Programm in C++ geschrieben. Das funktioniert gut, aber ich wollte sehen, ob jemand Verbesserungsvorschläge hat.Visualisierung von C/C++ über die Gnuplot Pipe-Schnittstelle
Diese Implementierung enthält eine bequeme Methode zum Zeichnen eines einzelnen Vektors und von 2 Vektoren als 2D-Diagramm. Dies wurde erreicht, indem über einen Standardbibliotheksaufruf in die mktemp-Funktion in eine temporäre Datei geschrieben und diese dann als Eingabe für einen gnuplot-Plotaufruf verwendet wurde. Dies erzeugte zu viele temporäre Dateien und schien nicht gut zu funktionieren, wenn die Aktualisierungsrate auf dem Diagramm hoch ist (möglicherweise zu einem Zeitpunkt auf IO beschränkt). Ich habe mich entschieden, die '-' Pseudodatei im Plot-Aufruf zu verwenden und die Vektoren einfach direkt an die Pipe zu senden (beendet mit einer einzelnen Zeile mit "e" darauf). Das funktioniert besser, ist aber immer noch nicht großartig.
Gibt es eine slicker Möglichkeit zu tun, was ich versuche zu tun, als die Grafik kontinuierlich zu regenerieren, wenn sich die Werte geändert haben? Wie oft ist es sicher, um die Handlung mit neuen Informationen zu aktualisieren? Oder vielleicht gibt es einen viel einfacheren Weg, um zu erreichen, was ich versuche zu tun?
@Andy Ross
Ich habe keine "Anforderungen" per se. Was ich mit Slick meinte, war, dass es vielleicht einen eleganteren Ansatz gab, das zu tun, was ich versuchte, als ich noch Gnuplot benutzte. Obwohl elegant ist subjektiv, finde ich den Ansatz, den ich derzeit besonders unelegant nehme. Was ich mit Sicherheit meinte, war, ob irgendjemand wusste, mit welcher Aktualisierungsrate IO-Probleme (z. B. Latenz, Sperrung der Anzeige usw.) bei diesem Ansatz auftreten würden.
Ich möchte vermeiden, ein Toolkit aus den folgenden Gründen zu verwenden (zumindest meine kurze Liste).
Wenn Sie jedoch irgendwelche besonderen Vorschläge in Bezug auf C/C++ - Plotbibliotheken haben, die angesichts der obigen Liste wie eine gute Lösung erscheinen, bin ich immer an Vorschlägen interessiert (Warnung: Ich habe mich schon ein bisschen umgesehen finde sie).
Danke, das Video sieht glatter aus als das, was ich mit der Implementierung erhalte, die ich benutze, so dass es durchaus einige Verbesserungen in Ihrer Implementierung geben kann. Habe noch keine Chance, den Code zu sehen, aber ich werde Sie wissen lassen, ob das mein Problem löst. – bpw1621