我正在尝试从嗅探标准收据打印机的 COM 端口读取数据。我正在使用 MSDN 中有关在docsSerialPort.DataReceived
中找到的事件的示例。
我正在获取数据,但它是乱码。如何将其转换为可读文本?它是编码二进制还是什么?能否请您提供有关这种串行端口编程的见解?
我在互联网上搜索了几个小时,试图弄清楚如何使它成为可读的文本,但我在 A 和 B 之间的某个地方遗漏了一些概念。
我在某处读过它可能是协议不匹配。有没有办法检测到这一点?
更新 1
我正在尝试从我在 StackOverflow找到的线程(我使用更新 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();
}