我目前正在尝试与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)
嗯......这也不起作用。
所以基本上我可以将波特率更改为更低的值,因此设备比传输速度更快,或者只是添加类似于每隔几个块的睡眠......但我想,这不是应该怎么做的。
所以...有人在解释我,我做错了什么? ; - )
谢谢,
马丁
答案 0 :(得分:1)
您忘记了xonxoff参数。 XONXOFF =真