gpt4 book ai didi

python - Linux下伪串口通信

转载 作者:IT王子 更新时间:2023-10-29 00:24:02 28 4
gpt4 key购买 nike

我有一个应用程序,我想在其中模拟设备和“调制解调器”之间的连接。该设备将连接到一个串行端口,并通过它与软件调制解调器通信。

出于测试目的,我希望能够使用模拟软件设备来测试发送和接收数据。

示例 Python 代码

device = Device()
modem = Modem()
device.connect(modem)

device.write("Hello")
modem_reply = device.read()

现在,在我的最终应用程序中,我将只传递/dev/ttyS1 或 COM1 或任何应用程序要使用的内容。但是我怎样才能在软件中做到这一点呢?我正在运行 Linux 并且应用程序是用 Python 编写的。

我已经尝试制作一个 FIFO (mkfifo ~/my_fifo) 并且确实有效,但是我需要一个 FIFO 用于写入,一个用于读取。我想要的是打开 ~/my_fake_serial_port 并对其进行读写。

我也用 pty 模块付款,但也无法让它工作。我可以从 pty.openpty() 获取主从文件描述符,但尝试读取或写入它们只会导致 IOError Bad File Descriptor 错误消息。

更新

评论将我指向 SO 问题 Are there some program like COM0COM in linux?它使用 socat 来设置虚拟串行连接。我是这样使用它的:

socat PTY,link=$HOME/COM1 PTY,link=$HOME/COM2

对于你们中的其他人,感谢你们为我提供了宝贵的信息。我选择接受 Vinay Sajips 的回答,因为这是我在 socat 建议出现之前寻求的解决方案。它似乎工作得很好。

最佳答案

可能最好使用 pyserial与串行端口通信,您只需创建一个模拟版本的 serial.Serial 类,它实现了 readreadlinewrite 以及您需要的任何其他方法。

关于python - Linux下伪串口通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2500420/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com