2014-09-28 54 views
1

我有一臺設備將傳感器數據發送到我的電腦。我正在用C++編寫一個程序來讀取數據並對其進行處理。但是假設我的C++程序有很多工作要做,所以當有時間讀取數據時,設備可能已經通過串口發送了數十個讀數。從串口讀取,但只讀取最新數據

如果我只是逐行讀取數據,我的程序似乎會得到滯後的響應,因爲它正在獲取未處理的舊數據。我不確定處理這個問題的最佳方法是什麼。

  1. 我可以繼續閱讀,直到我到達最後一行數據。但是哪個庫的函數會返回是否有更多的數據需要讀取,因此我可以確定是否正在讀取最後一個數據?

  2. 還是有一些功能只是清理FIFO緩衝區並等待新的數據?我可以使用哪個庫?

+0

ooo多項選擇。 #2! – thang 2014-09-28 07:04:27

+0

是否有任何具有該功能的庫?其中大部分應該是 – seilgu 2014-09-28 07:06:48

+0

。它只是沖洗。 – thang 2014-09-28 07:07:21

回答

0

Boost ASIO是一個很好的庫,應該符合您的要求。檢查文件的read_until