Hallo, ich bin gerade dabei ein kleines PC-Tool zu schreiben, dass mit einem uC via RS232 kommunizieren soll. Um angenehmer herumprobieren zu können würde ich gerne das Host-Tool sowie die uC-Gegenstelle am PC entwickeln (soweit dies möglich ist). Gibt es unter Linux die Möglichkeit, mir eine Software-tty anzulegen, die mit einer weiteren Software-tty Daten austauschen kann? Damit könnte ich die beiden Programme am PC ohne weitere Hardware miteinander kommunizieren lassen um z.B. das Protokoll zu testen. Umständlicher, aber möglich wäre, zwei USB/RS232-Umsetzter mittels Nullmodem zu verbinden. Unter WinXP hab ich nach langem Suchen und Probieren eine Freeware gefunden die genau das macht. Unter Linux gibt es sowas doch bestimmt auch, kennt da jemand was, oder ist das Ganze vielleicht sogar mit Boardmittel möglich? Verwendet wird Kubuntu 12.04. Viele Grüße, Masl
Danke erstmal, wenn man weiß nach was man suchen soll findet man auch Infos :) Nur an einer Stelle happerts grad beim Verständnis: Anwendung A den Terminal Multiplexer und bekommt einen File Pointer auf den diesen. Gleichzeitig wird ein Slave Device erzeugt. Anwendung B öffnet ebenfalls den Terminal Multiplexer und bekommt einen File Pointer auf diesen. Es wird ein weiteres Slave Device erzeugt. So, jetzt schreiben und lesen beide mit Hilfe der File Pointer auf eine virtuelle tty. Woher weiß denn nun der Master welche Slave Devices er verknüpfen soll? Ein Byte dass Anwendung A in seine virtuelle tty reinschiebt soll ja bei Anwendung B wieder herauskommen. Wie gesagt, da häng ich grad bisl…
Ich würde in deinem Fall die BSD-Variante der Pseudo Terminals verwenden, das ist einfacher, weil die Devices schon da sind und passt somit besser zur "Emulation" einer seriellen Schnittstelle. Du musst Dir nur ein freies ptyXY aussuchen und kannst dann die Gegenseite an das dazugehörige ttyXY hängen. Im einfachsten Fall sieht das dann so aus: Terminal 1 $ socat STDIO /dev/ptya0 Terminal 2 $ socat STDIO /dev/ttya0 und schon sind die beiden Terminals verbunden.
Danke dir nochmal. D.h. ich verbinde die virtuellen Terminals zuerst auf der Konsole. Danach können meine Anwendungen die Terminals öffnen und Daten austauschen?
Nein, verbinden musst die Terminals nicht mehr, die sind schon miteinander verbunden. Die "socat" sind hier nur Platzhalter für deine Programme zu sehen. Deine Anwendung A öffnet z.B. /dev/ptya0, dann kann deine Anwendung B /dev/ttya0 öffnen und mit der Anwendung A bidirektional Daten austauschen.
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.