使用虚拟串行端口仿真器,我可以
然后,客户端可以通过知道ip地址,tcp端口和虚拟串行端口的名称来建立到tcp服务器的流连接。
在上面的示例中,我创建了一个MICRO_Test应用程序(c ++),它只是连接到虚拟串行端口。当我向这个端口写入数据时,它将被所有客户端接收。
您可以在上图中的日志中看到它。
虽然这是在Windows上,有没有办法在linux机器上实现某些等效行为?
总结一下:
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
客户端从其真实的COM端口读取物理数据,并通过tcp流将数据发送到服务器。
对于linux,我读了很多关于socat,tty和ser2net的内容。但是,我无法真正了解如何在Linux上实现上述架构?你能帮我解决一些信息吗?
答案 0 :(得分:2)
理论上,您可以将Python与PySerial包一起使用。它可以处理COM端口,RFC2217(ser2net
)和TCP原始连接(socat
)。
例如,您将使用真实硬件在所有客户端上启动socat
并通过Python脚本连接到它们。
此语句打开原始套接字:
tcp_con = serial.serial_for_url('socket://<my_ip>:<my_port>')