0
我有一些設備需要使用SerialPort進行連接。 該設備接收來自我身邊的命令,並向我發送數據。 我在做同樣的課程所有的發送/接收=>相同的線程。如何在同一時間寫入和讀取serialPort?
我已經連接到這個設備,我成功地發送/從這個設備接收命令和數據。
我需要每隔25毫秒發送一條命令是'給我你的狀態' - 這意味着我要求設備發回一些帶有數據的結構。
如果我缺少一些接收數據...當我做'serialPortStream.BytesToRead'(測試是否有一些數據可以得到)我會在我的ByteReading上找到舊的緩衝區,但我還沒有放棄? 如果我錯過了需要閱讀的最後一個軟件包,或者收到的新數據將刪除之前收到的舊數據,我將在那裏安裝多少個軟件包?
您需要兩個線程。我會創建一個事件處理程序的類,例如SerialPort.DataRecieved + = ____,只要收到一個新字節,它就會填充ConcurrentQueue。然後,您可以在主線程中從此隊列讀取數據,然後從那裏寫入數據。請注意,您的數據包可能無法正常工作,但您絕對不會錯過任何內容。 – rolls