È possibile utilizzare una combinazione di ser2net
e socat
. Ad esempio, ho un robot collegato a un Raspberry Pi attraverso una porta seriale. Il raspberry pi è collegato alla mia rete locale (equivalente al tuo secondo PC). E il mio laptop è collegato alla stessa rete locale (equivalente al tuo primo PC). Quindi uso ser2net per inoltrare la porta seriale via TCP dal 2 ° PC e creare un file proxy seriale del dispositivo usando socat
sul 1 ° PC.
Questa configurazione potrebbe funzionare anche per te. La soluzione proposta:
Passaggio 1: installa il pacchetto ser2net sul secondo PC (seguendo lo schema)
sudo apt-get install ser2net
ser2net ascolta una porta TCP ed è in grado di reindirizzare i dati da e verso una porta seriale tramite la porta TCP. È possibile impostare per quali porte seriali si desidera creare "proxy" tramite il suo file di configurazione /etc/ser2net.conf
.
Passaggio 2: configurare ser2net nel 2 ° PC
Ad esempio, se si dispone di un dispositivo collegato /dev/ttyACM0
con baudrate 115200
e si desidera servirlo dalla porta 3333 di localhost, è possibile aggiungere la seguente riga a/etc/ser2net.conf
3333:raw:0:/dev/ttyACM0:115200,remctl
Dopo aver creato il file di configurazione, quindi avviare ser2net eseguendo sul secondo PC:
ser2net
oppure (se è già in esecuzione, riavviarlo come di seguito)
/etc/init.d/ser2net restart
Una cosa importante qui è l'opzione remctl. Consente al lato client (1 ° PC nel diagramma) di connettersi al dispositivo e scegliere liberamente le opzioni di connessione seriale. Penso che in questo modo la comunicazione seriale sia completamente trasparente dal punto di vista dell'area di lavoro della raccolta dati. Vedi maggiori dettagli qui .
Passaggio 3: impostare il file del dispositivo seriale proxy sulla workstation di raccolta dati (1 ° PC)
(se non hai socat, quindi sudo apt-get install socat
)
Infine, in un terminale sul 1 ° PC, socat
creiamo una porta seriale proxy che ascolterà dalla porta tcp:
socat pty,link=$HOME/MyProxySerialPort,waitslave tcp:$ip:$port,forever,reuseaddr,keepalive
Dove, in questo esempio ip=<2nd-PC-IP-address>
e port=3333
(o qualunque cosa tu scelga durante l'installazione /etc/ser2net.conf
sul 2 ° PC).
Passaggio 4: connettersi a MyProxySerialPort
Ora dovresti essere in grado di aprire normalmente una connessione seriale al dispositivo situato $HOME/MyProxySerialPort
sul 1 ° PC.
Questo post sul blog contiene anche ulteriori informazioni su questa configurazione: http://techtinkering.com/2013/04/02/connecting-to-a-remote-serial-port-over-tcpip/