注册 登录
编程论坛 C# 论坛

vs界面的设计看不懂,求指导

刘snow 发布于 2016-04-19 21:43, 2356 次点击
void comm_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            int n = comm.BytesToRead;//先记录下来,避免某种原因,人为的原因,操作几次之间时间长,缓存不一致
            byte[] buf = new byte[n];//声明一个临时数组存储当前来的串口数据
            comm.Read(buf, 0, n);//读取缓冲数据
            builder.Clear();//清除字符串构造器的内容
            //因为要访问ui资源,所以需要使用invoke方式同步ui。
            this.Invoke((EventHandler)(delegate
            {
                if( buf[0] == '1')
                {
                    this.WenDuZhi_1.Text = (buf[1] - 48).ToString() + (buf[2] - 48).ToString() + ('&').ToString() + (buf[4] - 48).ToString() + (buf[5] - 48).ToString();
                }
                if (buf[0] == 50)
                {
                    this.WenDuZhi_2.Text = (buf[1] - 48).ToString() + (buf[2] - 48).ToString() + ('&').ToString() + (buf[4] - 48).ToString() + (buf[5] - 48).ToString();
                }
                    
                //直接按ASCII规则转换成字符串   
                //builder.Append(Encoding.ASCII.GetString(buf));
               
                //追加的形式添加到文本框末端,并滚动到最后。
                //this.WenDuZhi_1.AppendText(builder.ToString());
            }));
        }
buf[0]的值为什么是1和50 还有 this.Invoke((EventHandler)(delegate 这段程序是什么意思?求助大神
2 回复
#2
qq10235692232016-04-20 08:13
你去看看多线程和委托。
#3
over12302016-04-20 08:40
buf[0]只是串口通信回来的数据的一个标识,有可能只和两个设备在通信,一个的地址是1,一个的地址是50,然后返回的数据在两个不同的文本框内计算显示。
1