///----------------------------------------------------------------- /// <summary> /// 对 象:BtnSCISwitch /// 事 件:Click /// 功 能:(1)当开关显示为打开串口(Open SCI),则单击时执行打开串口 /// 操作,并在标签LblSCI中显示选择的串口号与波特率,并在 /// 状态条文本TSSLState中显示当前操作 /// (2)当开关显示为关闭串口(Close SCI),则单击时执行关闭串口 /// 操作,并在标签LblSCI中显示关闭的串口号与波特率,并在 /// 状态条文本TSSLState中显示当前操作 /// 函数调用:(1)SCIInit:串口初始化 /// (2)SCIClose:关闭串口 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> ///----------------------------------------------------------------- private void BtnSCISwitch_Click(object sender, EventArgs e) { bool flag;//标记打开是否成功 //根据按钮BtnSCISwitch显示内容执行打开或关闭串口操作 if (this.BtnSCISwitch.Text.CompareTo("打开串口(Open SCI)") == 0) { //提示当前正在执行打开串口操作 this.TSSLState.Text = "过程提示:正在打开串口..."; //初始化SCI类对象sci sci = new SCI(PublicVar.g_SCIComNum, PublicVar.g_SCIBaudRate); if (sci.SCIOpen())//串口打开成功 { //设置接收中断处理事件 sci.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.SCIPort_DataReceived); //设置每接收到1个字节中断1次 sci.SCIReceInt(1); //显示打开串口相关信息 this.LblSCI.Text = str + PublicVar.g_SCIComNum + "、" + PublicVar.g_SCIBaudRate + "\n" + msg; this.BtnSCISwitch.Text = "关闭串口(Close SCI)"; //修改按钮上文字 this.CbSCIComNum.Enabled = false; //禁用[串口选择框] this.CbSCIBaud.Enabled = false; //禁用[波特率选择框] //状态上显示结果信息 this.TSSLState.Text = this.TSSLState.Text + "打开" + PublicVar.g_SCIComNum + "成功!" + "波特率选择:" + PublicVar.g_SCIBaudRate; this.pictureBox1.Image = SerialPort.Properties.Resources.Run; this.BtnSCISend.Enabled = true; } else//串口打开失败 { this.TSSLState.Text = this.TSSLState.Text + "打开" + PublicVar.g_SCIComNum + "失败!"; this.pictureBox1.Image = SerialPort.Properties.Resources.Run_static; this.BtnSCISend.Enabled = false; } } else if (this.BtnSCISwitch.Text == "关闭串口(Close SCI)") { //设置接收中断处理事件 sci.DataReceived -= new System.IO.Ports.SerialDataReceivedEventHandler(this.SCIPort_DataReceived); //提示当前操作 this.TSSLState.Text = "过程提示:正在关闭串口..."; //执行关闭串口操作,并用Flag返回结果 flag = sci.SCIClose(); if (flag == true) { this.LblSCI.Text = str + PublicVar.g_SCIComNum + "、" + PublicVar.g_SCIBaudRate + "\n" + msg; this.BtnSCISwitch.Text = "打开串口(Open SCI)"; //[串口选择框]处于可用状态 this.CbSCIComNum.Enabled = true; //[波特率选择框]处于可用状态 this.CbSCIBaud.Enabled = true; this.TSSLState.Text += "关闭" + PublicVar.g_SCIComNum + "成功!"; this.pictureBox1.Image = SerialPort.Properties.Resources.Run_static; this.BtnSCISend.Enabled = false; } else//串口关闭失败 { this.TSSLState.Text += "关闭" + PublicVar.g_SCIComNum + "失败!"; } } }