(3)示例1:读写串口 SerialPort
利用.NET类库中的SerialPort类,你可以方便地对计算机串口进行操作,下面提供的例子是我写的手机短信控制模块的一部分,可能你稍加修改甚至原封不动就能使用。
为了方便地使用该类,你必须添加命名空间限定System.IO.Ports
using System;
using System.Collections.Generic;
using System.Text;
using System.IO.Ports; //add namespace to use SerialPort conveniently
using System.Threading;
namespace MobileBlockCTRL
{
public class ClassSend
{
/// <summary>
/// SendMessage函数用于发送短信.参数strMobileNumber设置手机号码,strMsgContent指
/// 定要发送的内容
/// </summary>
/// <param name="strMobileNumber">手机号码</param>
/// <param name="strMsgContent">要发送的内容</param>
/// <returns> 返回指示发送是否成功</returns>
public static string SendMessage(string strMobileNumber,string strMsgContent)
{
string rt = "";
SerialPort serialPort = new SerialPort("COM1", 9600, Parity.None,
8, StopBits.One);
char[] sts ={ (char)0x1A };
serialPort.WriteTimeout = 2000;
try
{
if(serialPort.IsOpen==false)
serialPort.Open();
serialPort.WriteLine("AT+CMGS=/"" + strMobileNumber +"/""+"/r");
Thread.Sleep(100);
serialPort.WriteLine(strMsgContent + "/r");
Thread.Sleep(50);
serialPort.Write(sts, 0, 1);
//sleep,waiting for back infomation
Thread.Sleep(500);
if (serialPort.BytesToRead > 0)
{
serialPort.ReadLine();
serialPort.ReadLine();
serialPort.ReadLine();
serialPort.ReadLine();
rt = serialPort.ReadLine();//read back report
}
serialPort.Close();
if (rt.IndexOf("OK")>-1)
rt = "发送成功";
else
rt = "错误";
}
catch (Exception e)
{
rt = e.Message;
//MessageBox.Show(e.Message);
}
finally
{
if (serialPort.IsOpen)
serialPort.Close();
return rt;
}
} //end of function
} //end of ClassSend
}