MyException - 我的异常网
当前位置:我的异常网» C# » SerialPort串口通讯中DataReceived事件不能触发

SerialPort串口通讯中DataReceived事件不能触发(5)

www.MyException.Cn  网友分享于:2013-02-20  浏览:827次

                        buffer.CopyTo(0, binary_data_1, 0, len + 4);//复制一条完整数据到具体的数据缓存   
                        data_1_catched = true;
                        buffer.RemoveRange(0, len + 4);//正确分析一条数据,从缓存中移除数据。   
                    }
                    else
                    {
                        //这里是很重要的,如果数据开始不是头,则删除数据   
                        
                        buffer.RemoveAt(0);
                    }
                }
                //分析数据   
                if (data_1_catched)
                {
                    //我们的数据都是定好格式的,所以当我们找到分析出的数据1,就知道固定位置一定是这些数据,我们只要显示就可以了   
                    string data = "\r\n" + binary_data_1[3].ToString("X2") + " " + binary_data_1[4].ToString("X2") + " " +
                        binary_data_1[5].ToString("X2") + " " + binary_data_1[6].ToString("X2") + " " +
                        binary_data_1[7].ToString("X2");
                    //更新界面   
                    this.Invoke((EventHandler)(delegate { textData.Text = data; }));
                }
                //如果需要别的协议,只要扩展这个data_n_catched就可以了。往往我们协议多的情况下,还会包含数据编号,给来的数据进行   
                //编号,协议优化后就是: 头+编号+长度+数据+校验   
                //</协议解析>   
                /////////////////////////////////////////////////////////////////////////////////////////////////////////////   

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有