串口读取字符串

时间:2012-12-21 05:10:30

标签: c# serial-port

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

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

返回字符串就像这样

Data returned by weighing machine

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

2 个答案:

答案 0 :(得分:1)

这可能是任何事情 - 称重机中的错误,某种硬件问题或串口的配置问题。我怀疑配置问题。确保所有设置都正确(BaudRate,Handshake,Parity,StopBits)。另外,尝试使用其他程序连接到同一个串口设备(例如,请参阅http://helpdeskgeek.com/windows-7/windows-7-hyperterminal/),看看是否看到相同的垃圾数据。

答案 1 :(得分:1)

我不知道它是什么称重机和它上面的串口规格但是,如果它也是黑盒子,请检查以下内容:   - 检查您是否有技术规格说明RS232端口的内容   - 使用一个样本权重执行多个(10?)样本,并查看每次是否传递字节数      - 如果你看到字节数是恒定的(除非0.52lb文本中的差异偶尔变为0.5lb),否则跟随权重的垃圾很可能是额外的二进制数据。      - 如果没有,并且每次都看到具有精确偏移的重量(文本),你就可以刮掉输出

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