Ich möchte virtuelle serielle Ports auf Debian 6 Squeeze erstellen. Grundvoraussetzungen sind:
in der Lage sein, eine Verbindung herzustellen, als ob der Port ein echter serieller Port wäre (IE kann Baud, Stoppbits usw. setzen)
COM-Port-Paare müssen persistent sein
- Die Namen der COM-Port-Paare müssen beim Neustart statisch sein. Ich möchte die Codeeinstellungen nicht bei jedem Neustart des Computers ändern
Ich habe heute kurz versucht, socat mit socat -d -d pty, raw, echo=1 pty, raw, echo=1
dem erfolgreich erstellten /dev/pts/5
und /dev/pts/6
als Paar zu verwenden. Sobald ich jedoch das Terminal schließe, das socat ausführt, wird das Paar beendet. Ich frage mich auch, ob tty0tty eine Option ist? Ich habe in der Vergangenheit com0com mit Windows mit großem Erfolg verwendet.
Meine Frage ist, wie ich am besten ein Nullmodempaar erstellen kann, damit ich unter Linux mehrere COM-Ports simulieren kann.
Antworten:
Wenn Sie das Terminal schließen, töten Sie auch socat.
Versuchen Sie es mit
Dann sollten Sie das Terminal schließen können
quelle
Stoppbits existieren nur, wenn Sie einen tatsächlichen UART haben, sodass dort nichts zu simulieren ist. Die Baudrate ist einfach die Obergrenze für die Geschwindigkeit, mit der Sie Daten übertragen können. Wenn Sie also Ihr Simulationsprogramm schreiben, müssen Sie lediglich die Datenrate auf die entsprechende Geschwindigkeit begrenzen. Dann können Sie den Simulator mit einer einfachen alten Pipe oder einem Fifo an das konsumierende Programm anschließen.
Es gibt keinen Grund, sich mit einer Pseudo-Tty zu beschäftigen, da sie mit der Baudrate und anderen Parametern eigentlich nichts anfangen, sondern sie nur aus Gründen der Abwärtskompatibilität weitergeben.
quelle
Ich denke, diese Lösung wird nicht "dauerhaft" sein, aber Namen werden statisch sein, obwohl sie symbolisch sind. socat läuft dank der Antwort von Kotte weiter, nachdem das Terminal geschlossen wurde
quelle