在pyseri中使用xonxoff流量控制

2024-09-29 01:24:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正试图与一个有点旧的惠普打印机模型接口,它给了我两种可能的流量控制方法:完全没有流量控制或基于软件的流量控制(XON/XOFF)。

我正在使用以下命令初始化pySerial,并调整一个普通的大字符串将数据写入端口:

serial = serial.Serial(port = '/dev/ttyUSB3', baudrate = 9600, parity = serial.PARITY_ODD, stopbits = serial.STOPBITS_ONE, bytesize = serial.EIGHTBITS)

这工作很好-但有一个陷阱:似乎完全忽略了流控制,发送和发送数据-这会导致设备出现IO缓冲区溢出并停止工作。

我的第一个想法是,如果我使用serial.write('unblible long string'),pySerial可能无法停止传输,所以我将字符串分割成块并发送:

data = ['command', 'another command', 'more commands', 'you get the drift...']
for i in data:
    serial.write(i)

嗯。。。这也不管用。

所以基本上我可以把波特率改得更低,这样设备比传输速度更快,或者每几块就加上一个睡眠。。。但我想,这不是一个人应该做的。

所以。。。有人来解释我,我做错什么了?;-)

谢谢

马丁


Tags: 方法字符串模型命令data软件serial打印机