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
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ď č. 1Teoreticky 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>")