2011-12-15 81 views
0

我正在使用Moxa Serial Hub集中了一些使用RS-232/NMEA協議進行通信的設備。使用TCP從COM端口讀取數據

串行集線器作爲TCP客戶端工作,每次接收數據時都會將它傳輸到我的機器中的知識IP /端口。

schema

的問題是,我無法正確接收數據(我以爲所有我所要做的就是創建一個接受連接的TCP服務器,並讀取數據字節,但只是給了我一些奇怪的字符)

我收到的字節...但是當轉換爲文本...它只是一些奇怪的字符,我錯過了這個轉換的一些細節。 到目前爲止,我已經試過:

byte[] b = new byte[1000]; 
int k = s.Receive(b); 
Console.WriteLine(Encoding.UTF8.GetString(b, 0, 1000)); 
Console.WriteLine(Encoding.ASCII.GetString(b)); 
for (int i = 0; i < k; i++) 
    Console.Write(Convert.ToChar(b[i])); 

所有這些3種方法寫同樣的文字...

任何一個人知道如何正確地在此情況下,讀出的數據?

+2

所以你實際上從moxa集線器獲得連接請求並接收(錯誤)數據?那麼它可能與moxa設備上錯誤的串口設置有關(可能是錯誤的波特率) – Jan

+1

你確定你的數據應該是文本(而不是一些原始字節數組)嗎? – Fernando

+0

我收到它作爲一個字節數組,但我需要將其轉換爲我可以使用的東西(NMEA協議),所以我需要將其轉換爲文本正確... – RagnaRock

回答

1

本評論所提供的解決問題的辦法:

所以你實際上從艾集線器的連接請求和接收(錯誤)的數據?那麼它可能與錯誤的串口設置有關(可能是錯誤的波特率) - 1月2日前

事實上,波特率是錯誤的。