C#之windows桌面软件第七课:(下集)串口工具实现数据校验、用灯反应设备状态
生活随笔
收集整理的這篇文章主要介紹了
C#之windows桌面软件第七课:(下集)串口工具实现数据校验、用灯反应设备状态
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?C#之windows桌面軟件第七課:(下集)串口工具實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)、用燈反應(yīng)設(shè)備狀態(tài)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;using System.IO.Ports; namespace Reply {public partial class Form1 : Form{byte DataSended = 0;byte[] DataToSend = new byte[] { 0x01, 0x02, 0x03 }; //數(shù)據(jù)發(fā)送public Form1(){InitializeComponent();System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;serialPort1.DataReceived += new SerialDataReceivedEventHandler(SerialPortDataReceived); //添加串口中斷事件}private void SetOvlShape(int which) //填充顏色 {switch(which){case 0x01:ovalShape1.FillColor = Color.Green;break;case 0x11:ovalShape1.FillColor = Color.Red;break;case 0x02:ovalShape2.FillColor = Color.Green;break;case 0x12:ovalShape2.FillColor = Color.Red;break;case 0x03:ovalShape3.FillColor = Color.Green;break;case 0x13:ovalShape3.FillColor = Color.Red;break;case 0x04:ovalShape1.FillColor = Color.Green;ovalShape2.FillColor = Color.Green;ovalShape3.FillColor = Color.Green;break;case 0x14:ovalShape1.FillColor = Color.Red;ovalShape2.FillColor = Color.Red;ovalShape3.FillColor = Color.Red;break;default:break;}}private void SerialPortDataReceived(object sender, SerialDataReceivedEventArgs e){byte DataReceived = (byte)(serialPort1.ReadByte()); //單字節(jié)讀取SetOvlShape(DataReceived);}private void button1_Click(object sender, EventArgs e) //打開(kāi)/關(guān)閉串口{if (serialPort1.IsOpen) //一堆處理……{try{serialPort1.Close();}catch{}button1.Text = "打開(kāi)串口";}else{try{serialPort1.PortName = comboBox1.Text; //串口號(hào) serialPort1.Open(); //打開(kāi)}catch{MessageBox.Show("串口打開(kāi)錯(cuò)誤,請(qǐng)檢查", "串口");}button1.Text = "關(guān)閉串口";}}private void SendDataToSerialPort(SerialPort MyPort, byte DataToSend) //單字節(jié)發(fā)送數(shù)據(jù) {byte[] DatasToWrite = new byte[] { DataToSend }; //數(shù)據(jù)包if (serialPort1.IsOpen){try{MyPort.Write(DatasToWrite, 0, 1); //發(fā)數(shù)據(jù)}catch{MessageBox.Show("串口數(shù)據(jù)寫(xiě)入錯(cuò)誤", "錯(cuò)誤");}}}private void Button_Click(object sender, EventArgs e) //三個(gè)按鍵共用一個(gè)處理函數(shù){Button MyButton = (Button)sender; //通過(guò)tag屬性來(lái)區(qū)分DataSended = Convert.ToByte(MyButton.Tag);SendDataToSerialPort(serialPort1, DataToSend[DataSended - 1]); //發(fā)數(shù)據(jù)}} }?
www.DoYoung.net(部分代碼來(lái)至杜洋工作室)
總結(jié)
以上是生活随笔為你收集整理的C#之windows桌面软件第七课:(下集)串口工具实现数据校验、用灯反应设备状态的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C#之windows桌面软件第六课:(上
- 下一篇: C#之windows桌面软件第八课:汉字