Moxa Serial Hubは、RS-232/NMEAプロトコルを使用して通信する一部のデバイスを集中管理しています。TCPを使用してCOMポートからデータを読み取る
シリアルハブは、データを受信するたびにTCPクライアントとして機能し、マシンの知っているIP /ポートに送信します。
問題は、私が正しくデータを受信していないよということです(私は私がしなければならなかったすべての接続を受け付ける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つのアプローチは、同じテキストを書く...
いずれかが正しく、この例ではデータを読み取る方法を知っていますか?
実際には、Moxaハブからの接続要求を受け取り、(間違った)データを受け取りますか?それから、モクサデバイスのシリアルポートの設定が間違っている可能性があります(恐らくボーレートが間違っているかもしれません) – Jan
データはテキストでなければなりません。 – Fernando
私はそれをバイトの配列として受け取っていますが、私はそれをテキストに正しく変換する必要があるため、私が使用できるもの(NMEAプロトコル)に変換する必要があります。 – RagnaRock