/ / Virtuálny sériový port na linux cez TCP [closed] - linux, tcp, sériový port, hardvér, virtuálny sériový port

Virtual Serial Port na linux cez TCP [zatvorené] - linux, tcp, sériový port, hardware, virtuálny sériový port

Pomocou emulátora virtuálnych sériových portov môžem

  • Vytvorte konektor virtuálneho sériového portu
  • Vyberte port, napr. COM35 pre konektor
  • Vytvorte server TCP
  • Priraďte do servera predtým vytvorený virtuálny sériový port

tu zadajte popis obrázku

Potom môžu klienti vytvoriť prúdové pripojenie k serveru tcp tým, že vedia adresu IP, port tcp a názov virtuálneho sériového portu.

Vo vyššie uvedenom príklade som vytvoril aplikáciu MICRO_Test (c ++), ktorá sa jednoducho pripája k virtuálnemu sériovému portu. Pri písaní údajov na tento port budú prijaté všetkými klientmi.

Môžete to vidieť v protokole na obrázku vyššie.


Aj keď je to na oknách, existuje spôsob, ako dosiahnuť ekvivalentné správanie na linuxových zariadeniach?

Zhrnutie:

Some binary code (as interface for e.g. webservices)
|
|
| [send/receive via virtual com port]
|
|
TCP Server & COM connector (multiple instances possible with different ports)
|          |          |
|          |          |
|          |          |
Client 1   Client 2   Client X

Klienti čítajú fyzické dáta z ich skutočných portov a posielajú údaje cez tok tcp na server.

Pre Linux som čítal veľa o socat, tty a ser2net. Avšak nemôžem získať skutočnú predstavu, ako dosiahnuť architektúru, ako je vyššie na Linuxe? Môžete mi pomôcť s niektorými informáciami?

odpovede:

2 pre odpoveď č. 1

Teoreticky by ste mohli používať Python PySerial Balík. To dokáže spracovať porty COM, RFC2217 (ser2net) a TCP raw connections (socat).

Napríklad by ste začali socat na všetkých klientov s reálnym hardvérom a pripojiť sa k nim prostredníctvom skriptu Python.

Toto vyhlásenie otvára surovú soketu:

tcp_con = serial.serial_for_url("socket://<my_ip>:<my_port>")