我正在用這個抨擊我的頭。閱讀串行數據
我正在爲測試血液的機器編寫一個串行應用程序。它以線路形式發送信息,以\r\n
結尾。
問題是,我每隔一段時間運行機器,都會漏掉一些線條,或者它會複製它們。我停下來重新啓動,然後數據正常。
林使用DataReceived事件檢索:
try
{
this.the = thePort.ReadLine();
}
catch (TimeoutException ex) {}
我,爲什麼有時候它錯過這將是S1說通信已經開始的第一行完全糊塗了,並在同一時間將複製這之後的數據。
我可以通過將每行讀取附加到文本框來看到這一點。
您是否正確處理完每次使用後的端口? – 2013-05-10 15:02:58
串行數據發送後,您不能保證在一次讀取中擁有整個數據,您必須連續讀取數據。有數百個如果不是數千個正確讀取串行數據的例子。每次收到數據時,應該將所有字節放在一起而不是替換數據。 – 2013-05-10 15:28:01