Hallo,
ich möchte gerne gnuplot als allgemeines Programm zum Darstellen von Kurven nehmen. Ich würde mir da so eine Art Client/Server-Struktur mit gnuplot wünschen.
Ich starte einmal ein Programm oder Skript, welches den Datenstrom zu gnuplot organisiert. Wenn ich nun in eine bestimmte Datei (oder Pipe) schreibe, dann sollen diese Daten von meinem Programm an gnuplot weitergeleitet werden.
Problem:
1. Ich möchte von ganz unterschiedlichen Stellen, die Daten an gnuplot schicken.
2. Der Datenstrom darf nicht abbrechen, damit sich gnuplot nicht schliesst.
Ich dachte man kann sowas mit pipes, fifos, sockets oder sowas machen. Kann mir da mal jemand auf die Sprünge helfen, wie man da am einfachsten eine kleines (Perl, Shell)-Skript oder ein C-Programm schreibt?
Dankeschön,
Friedrich
On Tue, Dec 14, 2004 at 01:45:43PM +0100, Friedrich Hagedorn wrote:
Hallo,
Hi Friedrich,
ich könnte mir die folgende Struktur vorstellen
Client 1 \ Client 2 - Proxy - GnuPlot / Client 3
Proxy wäre ein kleines C/Perl/Python Programm, welches die Daten der Clients entgegen nimmt und sie mittels einer Pipe an GnuPlot weitergibt. Die Pipe bleibt die ganze Zeit über bestehen und die Kommunikation zwischen den Clients und dem Proxy kann auf beliebige Weise erfolgen.
Problem:
- Ich möchte von ganz unterschiedlichen Stellen, die Daten an gnuplot schicken.
Das impliziert irgendwie die Verwendung von TCP/IP-Sockets zwischen den Clients und dem Proxy :)
Dein Proxy sollte also einen kleinen Server implementieren, der über einen TCP/IP Port auf Daten wartet und diese einfach nach stdout schreibt (hmm, evtl. reicht da auch schon netcat...). Der Proxy wird zusammen mit GnuPlot gestartet: proxy | gnuplot
Ciao, Tobias
On Tue, Dec 14, 2004 at 03:50:49PM +0100, Tobias Koenig wrote:
Hi Friedrich,
Morgen Tobias,
ich könnte mir die folgende Struktur vorstellen
Client 1 \ Client 2 - Proxy - GnuPlot / Client 3
Proxy wäre ein kleines C/Perl/Python Programm, welches die Daten der Clients entgegen nimmt und sie mittels einer Pipe an GnuPlot weitergibt. Die Pipe bleibt die ganze Zeit über bestehen und die Kommunikation zwischen den Clients und dem Proxy kann auf beliebige Weise erfolgen.
So, oder ähnlich hatte ich auch gedacht. Nur fehlt mir die Programmiertechnische Umsetzung.
Ich hatte gestern nochwas nettes bei Google-Groups gefunden:
$ mkfifo fifo $ gnuplot < fifo 3> fifo
Das ist genau das, was ich will :-) Das Problem war bisher immer, das sobald man in die fifo geschrieben hat
$ cat > fifo
und mit Ctrl-d rausgegangen ist, auch gnuplot sich verabschiedet hat. Das passiert jetzt mit " 3> fifo" nicht mehr, nur weiss ich nicht warum?! :-)
Tschüss, Friedrich
lug-dd@mailman.schlittermann.de