LabVIEWForum.de
"Systembefehl ausführen"/Konsolenausgabe - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: DLL & externer Code (/Forum-DLL-externer-Code)
+---- Thema: "Systembefehl ausführen"/Konsolenausgabe (/Thread-Systembefehl-ausfuehren-Konsolenausgabe)



"Systembefehl ausführen"/Konsolenausgabe - schmokie - 18.01.2012 10:16

Hallo liebes Forum,

ich möchte gerne zum einlesen und auswerten von Messdateien Octave benutzen da mir LabView das Leben hier zu schwer macht. Zum ansteuern von Octave habe ich auch schon ein kleines Vi gefunden. Dieses nutzt das "Systembefehl ausführen" Vi von LabView.
So weit läuft alles super. Da das Einlesen und Auswerten allerdings eine gewisse Zeit in anspruch nimmt habe ich ursprünglich in Octave eine art Fortschrittsanzeige angebracht um so feststellen zu können ob das Programm überhaupt noch arbeitet.
Wenn ich nun "Systembefehl ausführen" benutze öffnet sich zwar nun die Konsole, ich seh die Ausgabe allerdings nicht. Erst wenn das Vi abgearbeitet ist.

Ist es irgendwie möglich die Ausgabe in der Konsole anzeigen zu lassen?

Schon mal Danke für die Hilfe


RE: "Systembefehl ausführen"/Konsolenausgabe - Y-P - 18.01.2012 18:50

Welche Konsole und welche Ausgabe?

Gruß Markus


RE: "Systembefehl ausführen"/Konsolenausgabe - schmokie - 18.01.2012 19:26

"Systembefehl ausführen" öffnet beim Ausführen eine DOS-Konsole. In dieser lasse ich Octave ausführen. Mache ich dies ausserhalb von LabView, so kann ich mir den fortschritt Anzeigen lassen (wie im Bild gezeigt). Wenn ich das gleiche allerdings in LabView ausführen lasse bleibt die sich öffnende DOS-Konsole schwarz. Erst wenn alles Abgearbeitet ist bekomm ich über das "Systembefehl ausführen" Vi über den Ausgang "Program output" die Ausgabe der DOS-Konsole.
Ich hab schon gesehen das man über diverse cmd-Befehle verschiedene aktionen der DOS-Konsole steuern kann, habe aber noch nicht herrausgefunden ob ich hier irgendetwas einstellen kann/muss.


RE: "Systembefehl ausführen"/Konsolenausgabe - rolfk - 18.01.2012 21:43

(18.01.2012 19:26 )schmokie schrieb:  "Systembefehl ausführen" öffnet beim Ausführen eine DOS-Konsole. In dieser lasse ich Octave ausführen. Mache ich dies ausserhalb von LabView, so kann ich mir den fortschritt Anzeigen lassen (wie im Bild gezeigt). Wenn ich das gleiche allerdings in LabView ausführen lasse bleibt die sich öffnende DOS-Konsole schwarz. Erst wenn alles Abgearbeitet ist bekomm ich über das "Systembefehl ausführen" Vi über den Ausgang "Program output" die Ausgabe der DOS-Konsole.
Ich hab schon gesehen das man über diverse cmd-Befehle verschiedene aktionen der DOS-Konsole steuern kann, habe aber noch nicht herrausgefunden ob ich hier irgendetwas einstellen kann/muss.

Also meines Wissens geht das nicht einfach so. LabVIEW muss die standard IO Kanäle der Konsole umlenken um diese in den Parametern von SystemExec zurückgeben zu können. Und da diese Standard IO Handhabung nicht so einfach umzulenken ist wie in einer Unix Shell kann man da auch nicht trivial ein Y Filter zwischenschalten. Wahrscheinlich gäbe es irgendwo Kommandoshell Wrapper die das machen könnten und die Du dann als Kommande von LabVIEW aufrufen kannst und die verfolgens Dein eigentliches Programm aufrufen, aber mir wäre gerade nichts solches bekannt.

Alternativ könntest Du mal nach OpenG Pipe Library suchen und diese verwenden. Hierbei werden die Standard IO Kanäle des aufgerufenen Programmes in eine Pipe umgeleitet die mit entsprechenden VIs von LabVIEW aus zur Laufzeit des Kommandzeilenprogrammes zu lesen sind.


RE: "Systembefehl ausführen"/Konsolenausgabe - schmokie - 19.01.2012 09:50

Hallo Rolf,

vielen Dank für die Antwort. Ich habe schon befürchtet das es nicht einfach werden würde.
Dann werde ich mich mal daran probieren, wird aber wohl ein ganzes Eck dauern. Falls es klappt werde
ich mich wieder melden.

Gruß Tobias