【问题标题】:Virtual Serial Port on linux through TCP [closed]通过TCP在Linux上的虚拟串行端口[关闭]
【发布时间】:2014-02-04 21:23:52
【问题描述】:

有了虚拟串口模拟器我可以

  • 创建虚拟串行端口连接器
  • 选择一个端口,例如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 上实现上述架构?你能帮我提供一些信息吗?

【问题讨论】:

    标签: linux tcp serial-port hardware virtual-serial-port


    【解决方案1】:

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

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

    此语句打开原始套接字:

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

    【讨论】:

    • +1 听起来不错。感谢您提供此信息。
    猜你喜欢
    • 2014-05-02
    • 2010-09-08
    • 2023-03-05
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 2012-01-31
    相关资源
    最近更新 更多