一个使用多线程、重叠I/O等多种技术的通讯端口组件

horris 2001-11-05 02:12:26
本人在开发文档发布了一个贴子,标题为:多线程、重叠I/O通讯端口组件,关键字:LiteSerial。
这个文档描述了本人用MS VC6的ATL 3自行开发的组件--LiteSerial.dll,一个轻型的控制通讯端口的COM服务器。它侧重于以最少的资源解决实时快速读取串并口等通讯资源,但具备MSCOMM提供的大多数功能。
组件的ILiteSerialPort接口,封装了对串口、并口等可以用Win32 API CreateFile打开的标准通讯资源(Communication Resource)的同步、异步读写。组件对串口的访问一律采用Win32重叠I/O (Overlapped I/O)技术。异步读写时,采用多线程编程和类似producer/consumer的循环缓冲区控制实现并发读写。整体性能比MSCOMM.OCX实时性好,占用资源少。可以最大限度地利用通讯速率,满足极端条件下的数据采集要求。
随文档提供了组件LiteSerial.dll及其源代码,帮助文件LiteSerial.chm,VC客户端例子sin.exe及其源代码,VB客户端例子vbcomtest.exe及其源代码。

欢迎大家光临指正、使用、修改。
...全文
71 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
horris 2002-02-12
  • 打赏
  • 举报
回复
http://www.csdn.net/develop/read_article.asp?id=11215
musicdancer 2002-02-10
  • 打赏
  • 举报
回复
good!给个链接吧,找不到~
horris 2001-11-08
  • 打赏
  • 举报
回复
this is an advertisement to my component
horris 2001-11-06
  • 打赏
  • 举报
回复
请大家多多关照
horris 2001-11-05
  • 打赏
  • 举报
回复
原帮助文件有点不准确的地方:
“VC客户端程序例子”页中,在
AfxGetApp()->m_pMainWnd->PostMessage(WM_COMMAND,ID_COMM_GETDATA);
后面的一段,应改为:

“我没有直接用AfxGetMainWnd获得主窗口句柄,因为主窗口是属于主线程的,但这时不是处在主线程中,而AfxGetMainWnd可能是从当前线程查询主窗口的。因此,我特地用了AfxGetApp()先取得主线程,再通过CWinThread的类成员m_pMainWnd获得主窗口。 ”

为此,又上传了一次新版的帮助文件,请按“LiteSerial的帮助文件”的第二个链接下载。

1,650

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧