using System; using System.Collections.Generic; using System.Text; using System.IO.Ports; namespace ConsoleApplication3 ... { class SerialPortTest ...{ public string MessageStr = ""; public bool IsMessageFlag = false; SerialPort port1; /**////<summary> ///function:initial serial port ///</summary> ///<param name="PortName">port number</param> ///<param name="BaudRate">port speed</param> public void InitCOM(string PortName, int BaudRate) ...{ port1 = new SerialPort(PortName, BaudRate); port1.Handshake = Handshake.RequestToSend; port1.DataReceived += new SerialDataReceivedEventHandler(port1_DataReceived); } /**//// <summary> ///function:deal with the data receive /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void port1_DataReceived(object sender, SerialDataReceivedEventArgs e) ...{ StringBuilder currentline = new StringBuilder(); if (!IsMessageFlag) ...{ while (port1.BytesToRead > 0) ...{ char ch = (char)port1.ReadByte(); currentline.Append(ch); } MessageStr = currentline.ToString(); IsMessageFlag = true; currentline = new StringBuilder(); } //throw new Exception("The method or operation is not implemented."); } /**//// <summary> /// function:send the instruction /// </summary> /// <param name="CommandString"></param> public void SendCommand(string CommandString) ...{ byte[] WriteBuffer = Encoding.ASCII.GetBytes(CommandString); port1.Write(WriteBuffer, 0, WriteBuffer.Length); } /**//// <summary> /// function:open the closed port /// </summary> public void OpenPort() ...{ port1.Open(); if (port1.IsOpen) ...{ Console.WriteLine("the port is opened!"); } else ...{ Console.WriteLine("failure to open the port!"); } } /**//// <summary> /// function:close the opened port /// </summary> public void ClosePort() ...{ port1.Close(); if (port1.IsOpen) ...{ Console.WriteLine("the port is already closed!"); } } }}