0

我有一个读取称重机的串口应用程序。

    public void Read()
    {
        while (Puerto.BytesToRead > 0)
        {
            try
            {
                string inputData = Puerto.ReadExisting();
                dataReceived = inputData;
            }
            catch (TimeoutException) { }
        }
    }

返回字符串是这样的

称重机返回的数据

它还有其他额外的字符,我该如何解析或从中获取干净的数据?我只需要0.52磅

4

2 回答 2

1

这可能是任何事情 - 称重机中的错误、某种硬件问题或串行端口的配置问题。我怀疑是配置问题。确保所有设置都正确(波特率、握手、奇偶校验、停止位)。此外,尝试使用另一个程序连接到相同的串行端口设备(例如,请参阅http://helpdeskgeek.com/windows-7/windows-7-hyperterminal/),看看您是否看到相同的垃圾数据。

于 2012-12-21T06:07:31.323 回答
1

我不知道它是什么称重机以及上面的串口规格,但是,如果它对您来说也是黑匣子,请检查以下内容: - 检查您是否有解释 RS232 端口输出的技术规格 -用一个样本权重做几个(10 个?)样本,看看是否每次都传递字节数 - 如果你看到字节数是恒定的(除非 0.52lb 文本中的差异偶尔变为 0.5lb),重量后面的垃圾很可能是附加的二进制数据。- 如果没有,并且您每次都会看到带有精确偏移的权重(文本),您就可以抓取输出

这是完全的逆向工程,我建议遵循技术规范并进行更有洞察力的数据处理。

于 2012-12-21T06:20:14.300 回答