Я использую последовательный порт для чтения данных вне шкалы, которая подключена к тонкому клиенту. В 99% случаев данные считываются правильно - то есть все, что находится в масштабе, - это то, что фиксируется приложением.
Однако иногда кажется, что данные отбрасываются. Например, вместо 90,007 это будет читаться как 0,007. Я использую функцию ReadLine:
private void CaptureWeight()
{
globalCounter++;
string value = "";
_sp.DiscardInBuffer();
while (!this._processingDone)
{
try
{
value = this._sp.ReadLine();
if (value != "")
{
if (value == "ES")
{
_sp.DiscardInBuffer();
value = "";
}
else
{
this.Invoke(this.OnDataAcquiredEvent, new object[] { value });
}
}
}
catch (TimeoutException)
{
//catch it but do nothing
}
catch
{
//reset the port here?
MessageBox.Show("some other than timeout exception thrown while reading serial port");
}
}
} //end of CaptureWeight()