Hallo, ich bin beim googeln nicht so richtig schlauer geworden. Ich möchte mit Java unter NetBeans einen Terminalaufruf (für AVRDUDE mit vielen Parametern) starten und die Ausgabe des Terminals LIVE in meiner TextArea anzeigen. Dadurch wollte ich mir das Programmieren einer Fortschrittsanzeige sparen. Da ich das Terminal quasi versteckt aufrufen wollte, habe ich mich für diesen Lösungsansatz entschieden. Das Grundgerüst steht bereits. Kann mir bitte jemand weiterhelfen? Die Terminalausgabe in eine Datei umzuleiten ist nicht das Problem (< - Parameter), aber wie bekomme ich das ganze einfach und schön in Echtzeit hin. Danke für eure Tipps!
Terminalausgabe in eine Datei ... Nicht in eine Datei, sondern in eine pipe (Ich bevorzuge virtuelle serielle Ports), eventuell mit dem Unix-Tool tee Oder nach (Windows:) com0com / (Linux:socat) socat - Virtuelle serielle Schnittstellen Aufbau einer virtuellen NULL-Modem-Verbindung: socat PTY,link=m1,raw,echo=0,waitslave PTY,link=m2,raw,echo=0,waitslave Dadurch werden 2 Device-Treiber m1 und m2 erzeugt, die wie serielle Schnittslellen angesprochen werden können. Danach können auf dem gleichen Rechner 2 gtkterm (minicom) miteinander reden. ls zeigt an: lrwxrwxrwx 1 hjh hjh 10 2008-12-16 15:05 m1 -> /dev/pts/6 lrwxrwxrwx 1 hjh hjh 10 2008-12-16 15:05 m2 -> /dev/pts/7 Wobei die 2. Zeile erst entsteht, wenn ein Terminal an m1 angeklinkt ist. Oder es können die seriellen Geräteabfrageprogramme / Simulationsprogramme miteinander reden: Terminal 1: akplu2 -i=0=/home/hjh/m1 Terminal 2: simplu2 -i=0=/home/hjh/m2 Danach hast du das gleiche Problem, das jeder mit seriellen Schnittstellen hat. Für Windows gibt es da rxtx: * Download rxtx-2.1-7r2.zip von http://www.rxtx.org/ * Download rxtx-2.1-7-bins-r2.zip, auch von da (Server ist ftp://ftp.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip) * Auspacken der einen oder beider Dateien rxtxSerial.dll und rxtxParallel.dll von rxtx-2.1-7-bins-r2.zip/Windows/i368-mingw32/ nach c:\windows (oder wohin auch immer im Suchpfad) PATH (oder nach C:\Program Files\Java\jdk1.6.0_11\jre\bin) * Auspacken der Datei RXTXcomm.jar von rxtx-2.1-7-bins-r2.zip/ nach c:\Program Files\Java\jdk1.6.0_11\jre\lib\ext "RXTXcomm.jar goes in \jre\lib\ext (under java)" Dann googelst du nach serialPort.addEventListener SerialReader serialPort.notifyOnDataAvailable WWW http://www.netbeans-forum.de/viewtopic.php?t=2342&highlight=seriell - Anleitung? - Erster Hinweis http://rxtx.qbang.org/wiki - Das rxtx Wiki
Was sit den für dich nen Terminalaufruf? Komandozeile? Dann kannst du das ganze mit dem ProcessBuilder machen, und die die Standardausgabe als Stream geben lassen. Das Ganze dann in einem Thread lesen und in das Textfeld schreiben, schon hast du deine "Live" Ausgabe...
Vielen Dank für die ausführliche Information, spez. der Hinweis auf socat hilft mir sehr. Die manpage erläutert die Optionen und hat Beispiele: http://www.dest-unreach.org/socat/doc/socat.html#EXAMPLE_ADDRESS_PTY http://www.dest-unreach.org/socat/doc/socat.html#OPTION_SYMBOLIC_LINK In meinem Fall werden die Links im Homeverzeichnis (~/) angelegt und dort auch von GTKTerm gefunden. Erfreulich ist, dass sogar die Schnittstelleneinstellungen funktionieren (bei einer Änderung stürzt socat allerdings ab). Steuerleitungen sind anscheinend nicht unterstützt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.