利用c#串口操作类实现异步数据接收.pdfVIP

  • 25
  • 0
  • 约5.34千字
  • 约 9页
  • 2020-09-13 发布于江苏
  • 举报
// C#异步数据接收串口操作类 // dyj057@ using System; using System.Runtime.InteropServices; /// /// (C)2003-2005 C2217 Studio 保留所有权利 /// /// 文件名称: IbmsSerialPort.cs /// 文件 ID: /// 文件说明: /// 封装动态链接库 IbmsSerialPort.dll 的功能,提供在.NET 环境中 /// 串口异步接收和发送数据的功能。 /// /// 当前版本: 1.0 /// /// 作者: 邓杨均 /// 创建日期: 2005-2-2 /// 最后修改日期: 2005-2-2 /// /// 历史修改记录: /// /// namespace Ibms.Tool.IO { /// /// 当串口接收到数据时,会产生一个事件。 /// SPRecvDataArgs 就是该事件的参数,参数中 RecvData 包含接收到的数据。 /// 使用方法: /// public class SPRecvDataArgs:EventArgs { /// /// 接收到的数据组成的字节数组 /// private byte[] recvData; /// /// 构造函数,需要一个包含数据 byte[]作为初始化参数来实例化 SPRecvDataArgs /// /// 接收到的数据 public SPRecvDataArgs(byte[] recvData) { if( recvData == null) { throw(new ArgumentNullException()); } this.recvData = recvData; } /// /// 返回接收到的数据内容 /// public byte[] RecvData { get { return recvData; } } } /// /// 封装动态链接库 IbmsSerialPort.dll 的功能,提供在.NET 环境中异步 /// 串口接收和发送功能。特别实现的是异步通过信号自动接收数据的模式。 /// public class IbmsSerialPort:IDisposable { #region 平台调用声明代码 /// /// 声明 IbmsSerialPort.dll Ibms_OpenPort 函数 /// /// 串口号 /// 波特率 /// [DllImport(IbmsSerialPort.dll)] public static extern IntPtr Ibms_OpenPort(int nPort, int nRate); /// /// 声明 IbmsSerialPort.dll Ibms_Close 函数 /// [DllImport(IbmsSerialPort.dll)] public static extern void Ibms_Close( IntPtr port); /// /// 声明 IbmsSerialPort.dll Ibms_SendData 函数 /// /// /// /// [DllImport(IbmsSerialPort.dll)] public static extern bool Ibms_SendData( IntPtr port, byte[] data,int nDataSize); /// /// 声明 IbmsSerialPort.dll Ibms_SetFuncHandle 函数 /// /// [DllImport(IbmsSerialPort.dll)] public static extern void Ibms_SetFuncHandle( IntPtr port, HandleFunc handDataFunc); #endregion #region 定义字段 /// /// 定义数据处理委托,作为 API 的函数指针传入动态链接库 /// public delegate void HandleFunc(IntPtr pData, int nDataSize); /// /// 定义数据接收事件的原型 /// public delegate void

文档评论(0)

1亿VIP精品文档

相关文档