串口字符串识别

时间:2014-01-16 13:43:32

标签: c# string serial-port

我通过串口接收传入数据,其中有一个串行端口读取器,可以读取所有数据。我想要发生以下事情:

当通过串口接收到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);

                } 
        }

0 个答案:

没有答案