我对此有点陌生,我正在编写一个小应用程序来从电压表读取数据。这是一个 46 范围的 RadioShack 数字万用表。我的程序的目的是在检测到某个电压时自动执行某些操作。我正在使用 C#,并且我已经熟悉 SerialPort 类。
我的程序运行并从电压表中读取数据。但是,数据都是未格式化/乱码。该设备确实带有自己的软件,可以在 PC 上显示电压,但这对我没有帮助,因为我需要从自己的程序中获取电压。我只是不知道如何将这些数据转换成有用的东西。
作为参考,我使用的是 SerialPort.Read() 方法:
byte[] voltage = new byte[100];
_serialPort.Read(voltage, 0, 99);
它抓取数据并将其显示为:
16 0 30 0 6 198 30 6 126 254 30 0 30 16 0 30 0 6 198 30 6 126 254 30 0 30 16 0 3
0 0 6 198 30 6 126 254 30 0 30 16 0 30 0 6 198 30 6 126 254 30 0 30 16 0 30 0 6
198 30 6 126 254 30 0 30 24 0 30 0 6 198 30 6 126 254 30 0 30 16 0 30 0 254 30 6
126 252 30 0 6 0 30 0 254 30 6 126 254 30 0
空格分隔数组的每个元素。如果我使用 char[] 数组而不是 byte[],我会得到完全的胡言乱语:
▲ ? ? ▲ ♠ ~ ? ▲ ♠ ▲ ? ? ▲ ♠ ~ ? ▲ ♠ ▲ ? ? ▲ ♠ ~ ? ▲ ♠
使用 .ReadExisting() 方法给了我:
▲ ?~?♠~?▲ ▲? ▲ ?~♠~?▲ ?↑ ▲ ??~♠~?▲ F? ▲ ??~♠~?▲ D? ▲ ??~♠~?▲ f?
.ReadLine() 超时,所以不起作用。ReadByte() 和 ReadChar() 只是给我类似于 Read() into array 函数的数字。
我在我的头上,因为我从来没有做过这样的事情,不知道还有哪里可以转向。