繁体   English   中英

使用C#使用Start和Stop字符读取String作为SerialPort的缓冲区

[英]Reading String as buffer for SerialPort using Start and Stop characters with C#

我正在使用的串行协议使用开始和停止字符来定义“数据包”,有时它会一起触发事件处理程序,有时会两次转储。 无论如何,我认为需要某种形式的确认来构建更强大的应用程序。 我是个新手,非常感谢您的耐心等待,但是像在MSDN上所做的大量阅读一样,我似乎找不到最佳的方法来做到这一点。 预先感谢您提供的任何指导。

    private void ComPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {           
            // Read all the data waiting in the buffer
            string buffer = ComPort.ReadExisting();
            // Process String for Start "//" and Stop "\\" Characters

            //Remove data from buffer and send to seperate routine for processing               

    } 

您应该将接收到的数据添加到StringBuilder实例,该实例是包含DataReceived方法的类的字段。 这样您就可以“收集”部分数据包。 每次收到一些数据时, StringBuilder检查StringBuilder是否包含您的开始/停止字符。 只有这样,您才能提取邮件。 之后,您将从StringBuilder删除该程序包(包括启动/停止)。 现在再次检查它是否包含另一个软件包(更多的开始/停止),因为除了分批接收软件包之外,您一次可能获得多个软件包。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM