我在寫一個驗證設備事件的python程序。線程同步的設計幫助
我連續從設備的串行端口讀取一些數據。當我在設備的serail端口上寫入內容時,設備會在串口上寫入一個字符串,我必須閱讀它。不斷從串口讀取部分是在一個單獨的工作線程中,我逐行讀取並寫入線程。該設備連續寫入一些數據,並且將事件描述寫入到serail端口。
更具體地說,當我在設備上寫東西時,它會在設備上生成一個事件。事件的描述被寫回串行端口。這我必須讀回來並驗證事件是否發生。
現在當我在一個線程中逐行讀取設備輸出時,我寫了一些東西並開始讀取事件desc發生時,輸出已經消失,接下來的一些其他輸出行是正在閱讀。我如何同步這個?
任何幫助我設計這部分?
你有什麼小代碼片段,你現在正在做什麼?如果您不斷從設備讀取數據,那麼應該沒有辦法「錯過」一條線。 – jdi
另外,這個閱讀和寫作過程是否需要兩個獨立的線程是有原因的?這聽起來像是一個單線程的請求 - 響應系統。它應該是異步的,在稍後的時間讀者將驗證發佈的事件,並且作者可以繼續前進? – jdi
代碼段如下所示: 類SerialCom: __init __(個體,COMPORT): self.comport =相稱 self.readSerialPortThread = ReadSearialPortThread(self.comport) DEF writeStringToSerialPort(): self.comport .write(somedata) –