2011-03-10 72 views
2

我只是想知道緩衝區如何在com端口上工作..下面的代碼是我如何閱讀com端口的片段。我想知道如果通過做serial_connection.close()serial_connection.open()我會丟失任何數據,或將它保留在緩衝區?你可能會問爲什麼我關閉並打開comport ..原因是它實際上是一個虛擬端口,並且因爲什麼原因當我保持連接它的時間長度的數據停止傳輸時...用Python讀取串口。緩衝區如何工作?

import serial 

serial_connection = serial.Serial(
     port = self.SERIAL_PORT, 
     baudrate = self.BAUD_RATE, 
     timeout = 10 
     ) 

while true: 

    serial_connection.close() 
    serial_connection.open() 
    line = serial_connection.readline() 
    print line 

回答

4

PySerial有一個單獨的線程,在那裏監聽數據以確保沒有任何東西丟失。但是,操作系統本身不會緩衝數據。在關閉端口並再次打開端口之間的短暫時間內,您可能會丟失一些數據。