Comment tracer les graphiques Gnuplot en temps Réel en C++?
Je suis en train de tracer un graphique en temps réel à l'aide de GNUplot et C++.
Personne ne sait de toute bonne bibliothèques qui fait cela?
Grâce
Vous devez vous connecter pour publier un commentaire.
gnuplot prise en charge d'entrée à travers des tuyaux (sur windows, il y a un exécutable séparé pour cela,
pgnuplot
). Ensuite, votre programme peut envoyer des nouvelles commandes à gnuplot, commereplot
, comme si vous étiez en tapant dans la gnuplot interface directement.Façon dont vous avez configuré la connexion de tuyauterie et d'écrire à la fin de l'envoi de la conduite à partir de votre programme C++ varie en fonction du système d'exploitation, de sorte que vous aurez à nous dire ce que vous utilisez si vous souhaitez obtenir de l'aide.
Sur Windows, il y a
CreatePipe
et vous pouvez alors définir lahStdInput
élément de laSTARTUPINFO
struct vous passez àCreateProcess
. Idem avec leshStdOutput
si vous avez besoin de les messages d'état depgnuplot
.Sur POSIX (Unix, Linux, Mac OSX, etc), vous pouvez simplement utiliser
popen
comme le moyen rapide pour obtenir une connexion unidirectionnel. Bidirectionnel, il fonctionne plus comme sur Windows:pipe
pour obtenir des poignées aux extrémités, puisfork
et dans le processus de l'enfant appeldup2
à associer stdin et stdout avec la pipe, puisexec
avoirgnuplot
remplacer le processus de l'enfant, en gardant les tuyaux que vous avez configuré.EDIT: a Partir de gnuplot documentation:
Avez-vous essayé gnuplot interfaces en C ANSI?, c'est une interface pour le C, mais dans les mêmes liens il y a une interface pour le C++. Ou vous pourriez essayer PlPlot.
Si vous êtes intéressé soft en temps réel de traçage, vous êtes probablement mieux d'utiliser une accélération graphique matérielle de l'api (comme OpenGL), et de tracer le diagramme de vous-même.
Regarder http://search.cpan.org/~dkogan/feedGnuplot-1.08/bin/feedGnuplot C'est une ligne de commande de l'utilitaire, mais fonctionne aussi très bien s'ils sont contrôlés à partir d'un programme.
Dans mon code C++, cela a fonctionné (sur mac OsX mavericks, à l'aide de g++ Apple LLVM version 5.0):