Forum: PC-Programmierung Gnuplot aus C-Programm ansteuern


von TO (Gast)


Lesenswert?

Hallo!

Ich möchte aus einem C-Programm laufend Befehle an GNUplot übergeben.

Konkret sollen später mal Punkte, die von einem µC zeitweise über USB 
übergeben werden mit GNUplot LAUFEND dargestellt werden.

Ich habe es bereits geschafft, dass Gnuplot geöffnet wird und die 
Funktion darstellt mit folgender Unterfunktion:
1
void gplot(char *s)
2
{
3
    FILE *gpl=_popen("\"C:\\Program Files\\gnuplot\\bin\\gnuplot.exe\" -persist","w");
4
5
    if(!gpl)
6
    {
7
        printf("FEHLER: Gnuplot konnte nicht gefunden werden. Das Programm wird beendet.");
8
        sleep(10);
9
        exit(1);
10
    }
11
12
    fprintf(gpl, s);
13
14
    _pclose(gpl);
15
16
}

Leider muss das Fenster geschlossen werden, damit das Programm 
weiterläuft. Ich kann also keine weiteren Befehle an GNUplot übergeben.

Wenn ich -persist weglasse, läuft das Programm, aber dann bleibt das 
Fenster gar nicht offen, sondern poppt nur kurz auf.

Was müsste ich machen, damit das Programm weiterlaufen kann und das 
Fenster erst beim nächsten Befehl geschlossen wird?

Danke im Voraus!

von DirkB (Gast)


Lesenswert?

Für pipes gibt es eine extra  .exe pgnuplot.exe

von Bitwurschtler (Gast)


Lesenswert?

DirkB schrieb:
> Für pipes gibt es eine extra  .exe pgnuplot.exe

und wenn's gnuplot trotz pipe nicht tut, dann ab und zu ein fflush();

http://stackoverflow.com/questions/11157942/piping-set-terminal-to-gnuplot-pipe-produced-garbage-on-screen
https://leastaction.wordpress.com/2012/06/22/gnuplot-with-cc/

von Yalu X. (yalu) (Moderator)


Lesenswert?

TO schrieb:
> Leider muss das Fenster geschlossen werden, damit das Programm
> weiterläuft.

In welcher Programmzeile bleibt das Programm stehen, wenn du das Fenster
nicht schließt?

von Md M. (Firma: Potilatormanufaktur) (mdma)


Lesenswert?

Hallo.

Ich habe ähnliche Probleme mit gnuplot bzw. feedgnuplot gehabt, 
allerdings arbeite ich unter Linux, keine Ahnung wie/ob sich das auf 
Windows übertragen lässt.

Lange Rede, kurzer Sinn: Vielleicht lohnt es sich für dich, dir mal kst 
anzugucken ( https://kst-plot.kde.org/ ). Ich benutze nichts anderes 
mehr.

VG

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.