使用带pyserial的xonxoff-flow控件

时间:2013-06-04 13:48:05

标签: python pyserial flow-control

我目前正在尝试与HP打印机的旧型号接口,它为我提供了两种可能的流量控制方法:根本没有流量控制或基于软件的流量控制(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('unbelivable long string'),pySerial可能无法停止传输,所以我将字符串分成块并发送它:

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

嗯......这也不起作用。

所以基本上我可以将波特率更改为更低的值,因此设备比传输速度更快,或者只是添加类似于每隔几个块的睡眠......但我想,这不是应该怎么做的。

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

谢谢,

马丁

1 个答案:

答案 0 :(得分:1)

您忘记了xonxoff参数。 XONXOFF =真

http://pyserial.readthedocs.io/en/latest/pyserial_api.html