我通过串口接收传入数据,其中有一个串行端口读取器,可以读取所有数据。我想要发生以下事情:
当通过串口接收到ENTER(“\ r \ n”)时,我希望在字符串中捕获ENTER之前的数据行,并且它的第一个字母与ENTER之后的第一个字母进行比较。如果匹配,继续阅读序列号,如果不匹配,则显示文本行。
这是我在C#中的解决方案。它不起作用,我怀疑有一些逻辑错误:
public void SerialReceived_Uson()
{
// create a temporary storage string
string sTemp = "";
// add buffer to string (sCurrent)
sRecievedString += comPort.ReadExisting();
// when the last member in string is Carriage return copy the string to a temporary location (sTemp)
if (sRecievedString.EndsWith("\r"))
{
sTemp = sRecievedString;
// clear string
sRecievedString = "";
}
// add new buffer to the string
sRecievedString += comPort.ReadExisting();
// compare the starting characters of the two strings
if (sRecievedString[0] == sTemp[0])
{
// if they match, override sTemp with sCurrent and continue reading
sTemp = sRecievedString;
sRecievedString += comPort.ReadExisting();
}
// else display sTemp
else
{
MessageBox.Show(sTemp);
}
}