Je développe une application capable d'écrire sur un port série virtuel et de recevoir des données via le même port à partir de clients distants via le réseau.
L'application s'exécute sur un serveur linux. Je suis nouveau dans l'utilisation de ports série et j'ai quelques questions sur ce sujet.
Clients
Le client peut établir une connexion TCP à un serveur. Lorsque nous configurons un client, nous devons fournir l'adresse IP du serveur, un port TCP (généralement 8080) et un port COM virtuel.
Le client essaiera alors automatiquement de se connecter au serveur.
Serveur
Le serveur a un port com virtuel, identique à celui que nous avons défini dans la configuration du client (par exemple, COM1). Lorsqu'une application sur le serveur écrit des données sur ce port, celles-ci doivent être envoyées à tous les clients connectés via TCP. La réponse des clients est renvoyée sur TCP au serveur qui peut la lire sur le port série virtuel.
Question
Sur Windows, j'ai utilisé un connecteur de port série virtuel http://www.eterlogic.com/Products.VSPE.html qui a effectué l'essentiel du travail. Cependant, je veux résoudre ce problème sur les machines Linux.
Ma question est la suivante: comment créer un serveur TCP auquel est connecté un port série virtuel et qui peut envoyer/recevoir des données via ce port via TCP aux clients à l'écoute?
Essayez socat . Scénario possible:
socat pty,link=/dev/virtualcom0,raw tcp:192.168.254.254:8080&
socat crée une connexion TCP à 192.168.254.254:8080, de sorte que tout ce qui sera écrit dans/dev/virtualcom0 soit transmis à 192.168.254.254:8080 et inversement.
Une autre approche consisterait à utiliser RFC2217 via ser2net côté serveur Linux et le pilote RFC2217 sous Windows (par exemple http://www.hw-group.com/ products/hw_vsp/index_fr.html version à port unique). Vous pouvez également essayer de faire en sorte que http://pyserial.sourceforge.net/ fonctionne avec ser2net.
Le logiciel aidera à établir la connexion serveur et client via TCP http://www.serial-com-port.com/
Je l'utilise pour créer des communications série virtuelles sur le réseau, mais j'ai le vrai port RS232 sur l'ordinateur. Donc, je viens de transférer les données sur le réseau. Si vous devez également créer un COM virtuel sur le serveur, utilisez le pilote de port série virtuel.