gpt4 book ai didi

python - 使用 pySerial 和 socat 发送字节时出现问题

转载 作者:太空宇宙 更新时间:2023-11-03 19:31:38 25 4
gpt4 key购买 nike

我想通过 pySerial 发送一些字节。我使用 socat 创建了虚拟串行端口用于测试目的:

socat PTY,link=./ptyp1,b9600 PTY,link=./ptyp2,b9600

这是Python代码:

ser = serial.Serial('./ptyp1')
x = struct.pack('B',2)
print binascii.hexlify(x) # 02
ser.write(x)
y = ser.read(2)
print binascii.hexlify(y) # 5e42

我得到的输出:

02   # x
5e42 # y

我期望的输出:

02 # x
02 # y

我在这里做错了什么?是 socat 还是 python?

编辑:

我刚刚注意到不同 x 值的一些其他奇怪行为。这里是输出:

x = 12  => y = 5E 52 0D 0A 5E 50
x = 100 => y = 100 # why does it work here?

解决方案:

问题是我在写入的同一个端口上读取。如果我做对了,socat 将两个端口“连接”为“输入”和“输出”。因此,如果我写入 ./ptyp1,则必须读取 ./ptyp2。之后,一切都很好。

最佳答案

问题是我在写入的同一个端口上读取。如果我做对了,socat 将两个端口“连接”为“输入”和“输出”。因此,如果我写入 ./ptyp1,则必须读取 ./ptyp2。之后,一切都很好。

关于python - 使用 pySerial 和 socat 发送字节时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5523463/

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