Vous pouvez utiliser une combinaison de ser2net
et socat
. Par exemple, j'ai un robot connecté à un Raspberry Pi via un port série. Le raspberry pi est connecté à mon réseau local (équivalent à votre 2ème PC). Et mon ordinateur portable est connecté au même réseau local (équivalent à votre 1er PC). Ensuite, j'utilise ser2net pour transmettre le port série via TCP à partir du 2e PC et créer un fichier de périphérique série proxy à l'aide socat
du 1er PC.
Cette configuration peut également fonctionner pour vous. Solution proposée:
Étape 1: Installez le package ser2net sur votre 2ème PC (en suivant votre schéma)
sudo apt-get install ser2net
ser2net écoute un port TCP et peut acheminer des données vers et depuis un port série via le port TCP. Vous pouvez configurer les ports série pour lesquels vous souhaitez créer des "proxys" via son fichier de configuration /etc/ser2net.conf
.
Étape 2: configurer ser2net sur le 2ème PC
Par exemple, si vous avez un périphérique connecté à /dev/ttyACM0
avec un débit en bauds 115200
et que vous souhaitez le servir à partir du port localhost 3333, vous pouvez ajouter la ligne suivante à/etc/ser2net.conf
3333:raw:0:/dev/ttyACM0:115200,remctl
Après avoir créé le fichier de configuration, puis lancez ser2net en exécutant sur le deuxième PC:
ser2net
ou (s'il est déjà en cours d'exécution, redémarrez-le comme ci-dessous)
/etc/init.d/ser2net restart
Une chose importante ici est l'option remctl. Il permet au côté client (1er PC de votre schéma) de se connecter à l'appareil et de choisir librement les options de connexion série. Je pense que de cette façon, la communication série est complètement transparente du point de vue de l'espace de travail de collecte de données. Voir plus de détails ici .
Étape 3: configurer le fichier de périphérique série proxy sur le poste de travail de collecte de données (1er PC)
(si vous n'avez pas de socat, alors sudo apt-get install socat
)
Enfin, dans un terminal sur le 1er PC, socat
créons un port série proxy qui écoutera depuis le port tcp:
socat pty,link=$HOME/MyProxySerialPort,waitslave tcp:$ip:$port,forever,reuseaddr,keepalive
Où, dans cet exemple ip=<2nd-PC-IP-address>
et port=3333
(ou ce que vous avez choisi lors de la configuration /etc/ser2net.conf
sur le 2ème PC).
Étape 4: se connecter à MyProxySerialPort
Vous devriez maintenant pouvoir ouvrir une connexion série normalement à l'appareil situé $HOME/MyProxySerialPort
sur le 1er PC.
Cet article de blog contient également plus d'informations sur cette configuration: http://techtinkering.com/2013/04/02/connecting-to-a-remote-serial-port-over-tcpip/