標準のレシート プリンターをスニッフィングしている COM ポートからデータを読み取ろうとしています。docsSerialPort.DataReceived
で見つかったイベントに関して、MSDN の例を使用しています。
データを取得していますが、文字化けしています。それを読みやすいテキストに変換するにはどうすればよいですか?エンコードされたバイナリか何かですか?この種のシリアル ポート プログラミングに関する洞察を提供していただけますか?
インターネットで何時間も検索して、読みやすいテキストにする方法を見つけようとしましたが、A と B の間のどこかにいくつかの概念がありません。
プロトコルが一致していない可能性があることをどこかで読んだことがあります。これを検出する方法はありますか?
更新 1
ここStackOverflowで見つけたスレッドから何か新しいことを試しています(Update 1を使用しました)。今何を見ているのかわかりませんが、奇妙な文字はもうありません:
では、ここから読みやすいテキストを取得するにはどうすればよいでしょうか。
更新 2
私はまだ少し混乱しています。
private static void port_OnReceiveDatazz(object sender,
SerialDataReceivedEventArgs e)
{
SerialPort spL = (SerialPort)sender;
byte[] buf = new byte[spL.BytesToRead];
Console.WriteLine("DATA RECEIVED!");
spL.Read(buf, 0, buf.Length);
Console.WriteLine(Convert.ToBase64String(buf));
foreach (Byte b in buf)
{
//Console.Write(b.ToString());
}
Console.WriteLine();
}