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!");
}
}
}
}