0

使用虚拟串行端口仿真器,我可以

  • 创建虚拟串行端口连接器
  • 为连接器选择一个端口,例如 COM35
  • 创建 TCP 服务器
  • 将之前创建的虚拟串口分配给服务器

在此处输入图像描述

然后客户端可以通过知道 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 上实现上述架构?你能帮我提供一些信息吗?

4

1 回答 1

2

理论上,您可以将 Python 与PySerial包一起使用。它可以处理 COM 端口、RFC2217 ( ser2net) 和 TCP 原始连接 ( socat)。

例如,您将从socat所有具有真实硬件的客户端开始,并通过 Python 脚本连接到它们。

此语句打开原始套接字:

tcp_con = serial.serial_for_url('socket://<my_ip>:<my_port>')
于 2014-02-04T21:32:29.457 回答