2011-12-15 20 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ハブからの接続要求を受け取り、(間違った)データを受け取りますか?それから、モクサデバイスのシリアルポートの設定が間違っている可能性があります(恐らくボーレートが間違っているかもしれません) – Jan

+1

データはテキストでなければなりません。 – Fernando

+0

私はそれをバイトの配列として受け取っていますが、私はそれをテキストに正しく変換する必要があるため、私が使用できるもの(NMEAプロトコル)に変換する必要があります。 – RagnaRock

答えて

1

このコメントは、問題の解決策を提供:

ですから、実際に灸ハブからの接続要求を取得し、(誤った)データを受信?それで、モクサデバイスのシリアルポート設定が間違っている可能性があります(おそらく間違ったボーレート) - 1月2日前

確かにボーレートは間違っていました。

関連する問題