Możesz użyć kombinacji ser2net
i socat
. Na przykład mam robota podłączonego do Raspberry Pi przez port szeregowy. Raspberry pi jest podłączony do mojej sieci lokalnej (odpowiednik drugiego komputera). Mój laptop jest podłączony do tej samej sieci lokalnej (odpowiednik pierwszego komputera). Następnie używam ser2net, aby przekierować port szeregowy przez TCP z 2. komputera i utworzyć plik urządzenia szeregowego proxy za pomocą socat
na 1. komputerze.
Ta konfiguracja może również działać dla Ciebie. Proponowane rozwiązanie:
Krok 1: Zainstaluj pakiet ser2net na drugim komputerze (zgodnie ze schematem)
sudo apt-get install ser2net
Ser2net nasłuchuje na porcie TCP i jest w stanie przesyłać dane do i z portu szeregowego za pośrednictwem portu TCP. Możesz skonfigurować porty szeregowe, dla których chcesz utworzyć „proxy” za pomocą pliku konfiguracyjnego /etc/ser2net.conf
.
Krok 2: Skonfiguruj ser2net na 2. komputerze
Na przykład, jeśli masz podłączone urządzenie /dev/ttyACM0
z szybkością transmisji 115200
i chcesz je obsługiwać z portu lokalnego hosta 3333, możesz dodać następujący wiersz do/etc/ser2net.conf
3333:raw:0:/dev/ttyACM0:115200,remctl
Po utworzeniu pliku konfiguracyjnego uruchom ser2net, uruchamiając go na drugim komputerze:
ser2net
lub (jeśli już działa, zrestartuj go jak poniżej)
/etc/init.d/ser2net restart
Jedną ważną rzeczą jest tutaj opcja remctl. Umożliwia stronie klienta (1. komputer na schemacie) połączenie się z urządzeniem i swobodne wybieranie opcji połączenia szeregowego. Myślę, że w ten sposób komunikacja szeregowa jest całkowicie przejrzysta z perspektywy obszaru roboczego gromadzenia danych. Zobacz więcej szczegółów tutaj .
Krok 3: Skonfiguruj plik urządzenia szeregowego proxy na stacji roboczej do gromadzenia danych (1. komputer)
(jeśli nie masz socat, to sudo apt-get install socat
)
Na koniec w terminalu na 1. komputerze stwórzmy socat
port szeregowy proxy, który będzie nasłuchiwał z portu tcp:
socat pty,link=$HOME/MyProxySerialPort,waitslave tcp:$ip:$port,forever,reuseaddr,keepalive
Gdzie, w tym przykładzie ip=<2nd-PC-IP-address>
i port=3333
(lub cokolwiek, co wybierzesz podczas konfiguracji /etc/ser2net.conf
na 2. komputerze).
Krok 4: Połącz się z MyProxySerialPort
Teraz powinieneś być w stanie normalnie otworzyć połączenie szeregowe z urządzeniem znajdującym się $HOME/MyProxySerialPort
na 1. komputerze.
Ten post na blogu zawiera także więcej informacji na temat tej konfiguracji: http://techtinkering.com/2013/04/02/connecting-to-a-remote-serial-port-over-tcpip/