我需要從使用rs232的溫度控制器獲取一些數據。 控制器在每個完整命令結束時向我發送每個字符的回顯,它會返回'§'和'。'。如果命令是否成功應用。我的測試代碼如下所示:C#串行端口讀取緩衝區中有多個換行符
static string GetData(int memoryAddress)
{
if (!_session.IsOpen)
return "No Connection";
string toSend = "*A_r_" + memoryAddress.ToString() + "_0" + (char)21;
foreach (char character in toSend)
_session.Write(character.ToString());
Thread.Sleep(100);
return _session.ReadExisting();
}
和返回是這樣的:
*A_r_0_0§.250§
現在我還需要一些數據存儲在控制器內,並想重新使用上半部分是有可能使用
ReadNewline (with Newline-Symbol §)
只獲取回聲並驗證它,這樣我就可以在下一個函數中讀取返回的數據(如果我選擇讀取someting)? 首先返回哪個值?最後一個還是最先到達的那個?
也會更好地使用ReadNewline而不是Thread.sleep(100)超時?
更改換行屬性,所以你可以使用的ReadLine(),或使用ReadTo()。切勿使用Sleep()來解決問題,強烈避免使用ReadExisting()。你只需要調用ReadTo()兩次,首先得到回聲並再次得到響應。你是否真的使用了這個回覆取決於你。 –