我有一个读取称重机的串口应用程序。
public void Read()
{
while (Puerto.BytesToRead > 0)
{
try
{
string inputData = Puerto.ReadExisting();
dataReceived = inputData;
}
catch (TimeoutException) { }
}
}
返回字符串就像这样
它还有其他的外部字符,我该如何解析或从中获取干净的数据?我需要的只是 0.52lb
答案 0 :(得分:1)
这可能是任何事情 - 称重机中的错误,某种硬件问题或串口的配置问题。我怀疑配置问题。确保所有设置都正确(BaudRate,Handshake,Parity,StopBits)。另外,尝试使用其他程序连接到同一个串口设备(例如,请参阅http://helpdeskgeek.com/windows-7/windows-7-hyperterminal/),看看是否看到相同的垃圾数据。
答案 1 :(得分:1)
我不知道它是什么称重机和它上面的串口规格但是,如果它也是黑盒子,请检查以下内容: - 检查您是否有技术规格说明RS232端口的内容 - 使用一个样本权重执行多个(10?)样本,并查看每次是否传递字节数 - 如果你看到字节数是恒定的(除非0.52lb文本中的差异偶尔变为0.5lb),否则跟随权重的垃圾很可能是额外的二进制数据。 - 如果没有,并且每次都看到具有精确偏移的重量(文本),你就可以刮掉输出
这是完全逆向工程,我建议遵循技术规范并进行更有见地的数据处理。