2013-06-04 82 views
0

我目前正試圖與一個HP打印機的老舊模型接口,它給了我兩種可能的流量控制方法:根本沒有流量控制或基於軟件的流量控制( XON/XOFF)。使用xonxoff流量控制與pyserial

我初始化pySerial用下面的命令,只是justing一個普通的大串到我的數據寫入到該端口:

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

這工作得很好 - 但有一個問題:它似乎是流通式控制完全被忽略,數據被髮送和發送 - 這會導致設備發生IO緩衝區溢出並停止工作。

我的第一個想法是,如果我用serial.write(「unbelivable長字符串」),pySerial可能無法停止傳輸,所以我分裂字符串分割成塊,把它:

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

呃...這也行不通。

因此,基本上我可以將波特率更改爲更低的值,以便設備比傳輸更快或者每隔幾個塊添加像睡眠一樣的東西......但我想,這不是應該怎麼做。

所以...任何人在解釋我,我做錯了什麼? ;-)

感謝,

馬丁

回答