Sie können eine Kombination aus ser2net
und verwenden socat
. Ich habe zum Beispiel einen Roboter, der über eine serielle Schnittstelle mit einem Himbeer-Pi verbunden ist. Der Himbeer-Pi ist mit meinem lokalen Netzwerk verbunden (entspricht Ihrem 2. PC). Mein Laptop ist mit demselben lokalen Netzwerk verbunden (entspricht Ihrem ersten PC). Dann verwende ich ser2net, um die serielle Schnittstelle über TCP vom 2. PC weiterzuleiten und eine Proxy-Datei für serielle Geräte mit socat
dem 1. PC zu erstellen .
Dieses Setup funktioniert möglicherweise auch für Sie. Vorgeschlagene Lösung:
Schritt 1: Installieren Sie das ser2net-Paket auf Ihrem 2. PC (gemäß Ihrem Diagramm)
sudo apt-get install ser2net
ser2net lauscht an einem TCP-Port und kann über den TCP-Port Daten von und zu einem seriellen Port leiten. Sie können über die Konfigurationsdatei festlegen, für welche seriellen Ports Sie "Proxies" erstellen möchten /etc/ser2net.conf
.
Schritt 2: ser2net im 2. PC konfigurieren
Wenn Sie beispielsweise ein Gerät /dev/ttyACM0
mit Baudrate angeschlossen haben 115200
und es über den lokalen Host- Port 3333 bedienen möchten, können Sie die folgende Zeile hinzufügen/etc/ser2net.conf
3333:raw:0:/dev/ttyACM0:115200,remctl
Nachdem Sie die Konfigurationsdatei erstellt haben, starten Sie ser2net entweder auf dem zweiten PC:
ser2net
oder (wenn es bereits läuft, dann starte es einfach neu wie unten)
/etc/init.d/ser2net restart
Eine wichtige Sache ist hier die Option remctl. Hiermit kann der Client (der erste PC in Ihrem Diagramm) eine Verbindung zum Gerät herstellen und die seriellen Verbindungsoptionen frei wählen. Ich denke, auf diese Weise ist die serielle Kommunikation aus Sicht des Datenerfassungsarbeitsbereichs vollständig transparent. Sehen Sie hier weitere Informationen .
Schritt 3: Einrichten der Datei für das serielle Proxy-Gerät auf der Datenerfassungs-Workstation (1. PC)
(wenn du kein socat hast, dann sudo apt-get install socat
)
socat
Erstellen Sie schließlich in einem Terminal auf dem ersten PC einen seriellen Proxy-Port, der vom TCP-Port abhört:
socat pty,link=$HOME/MyProxySerialPort,waitslave tcp:$ip:$port,forever,reuseaddr,keepalive
Wo, in diesem Beispiel ip=<2nd-PC-IP-address>
und port=3333
(oder was auch immer Sie beim Einrichten /etc/ser2net.conf
auf dem 2. PC gewählt haben).
Schritt 4: Stellen Sie eine Verbindung zu MyProxySerialPort her
Jetzt sollten Sie in der Lage sein, eine serielle Verbindung zu dem Gerät $HOME/MyProxySerialPort
auf dem ersten PC herzustellen .
Dieser Blog-Beitrag enthält auch weitere Informationen zu diesem Setup: http://techtinkering.com/2013/04/02/connecting-to-a-remote-serial-port-over-tcpip/