[英]C# SerialPort DataReceived problem when when attached strings
我有一個DataReceived方法,該方法正在觸發從RS232設備發送數據。 使用以下代碼,事情可以順利進行
byte[] data = new Byte[serialPort.BytesToRead];
serialPort.Read(data, 0, data.Length);
string read = System.Text.Encoding.ASCII.GetString(data);
但是如果我在數據后添加字符串
string read = System.Text.Encoding.ASCII.GetString(data) + "asdf \n";
數據仍然可以接收,但是偶爾會顯示不正確。 例如,如果我正在連接磅秤,並且應該讀取“ 10.45kg asdf”,它將在計算機上顯示為“ 10. asdf45kg”。 這里有什么問題?
當串行端口感覺像觸發它時,將觸發DataReceived
方法,而當您從設備接收到完整的字符串時,則不一定要觸發該方法。 有關詳細信息的詳細討論,請參見此SO答案 。 如果您有一個已知的終止符,則可以通過設置SerialPort的NewLine
屬性,然后使用ReadLine()
來解決此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.