2012-01-31 102 views
2

我有一個小問題要問。SerialPort.ReadLine屬性用法

我需要從串口讀取數據。數據逐行顯示(我的意思是數據+輸入) 我是否必須如下設置serialPort屬性的新行?

SerialPort sp = new SerialPort(); 
sp.NewLine = "\r"; 
sp.ReadLine(); 

newline屬性的值是什麼? 我最好的問候...

回答

2

這取決於您使用的協議。這意味着這是發送和接收部件的協議主題。

如果對方在Windows上使用.NET,最有可能的新行將是Environment.NewLine,你可以跳過設置它,因爲它是在Windows上的默認值。

在一般情況下,默認的新行序列是:
窗戶 '\ r \ n'
的Mac '\ r'
爲Linux '\ n'
自定義控制器 - 控制器的開發商無論放在那裏

因此,如果你寫一個軟件來接收來自Linux的東西,你可能會等待「\ n」作爲換行符值等

如果你有一些控制器進行數據交換(有一些設備交換) NewLine字符串可以是WHATEVER的ce軟件開發者設置它。

如果你開發這個協議並且不確定是否設置NewLine,我建議你設置你是否假設你的應用程序可以在多平臺環境下運行(I.E.發送者在windows上,接收者在linux上)。

+0

謝謝回答。順便說一句,另一邊是電子卡... – 2012-01-31 12:50:48

+0

比你應該將來自另一端的數據顯示爲字節序列,並查看來自那裏的行結束序列。 – MajesticRa 2012-01-31 13:00:01

+0

我記得設備開發人員將NewLine設置爲'\ 0'以便於在C中讀取時的一種情況。 – MajesticRa 2012-01-31 13:03:27

0

你試過

sp.NewLine = Environment.NewLine;