论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
利用VC中的通讯控件开发串形通信程序
杨峰
河南省水文水资源局
由于需要我们开发了前置机应用程序,实现功能就是将前置机里存放的信息取出来用计算机进行处理,该程序是利用VC在WIN98下开发而成,对串口的访问是通过VC中的通讯控件主要完成的。通讯程序开发不仅涉及对串口的访问,还牵涉多线程编程24小时运行等问题,是编程中令人头疼的问题。本文中只介绍利用控件对串口的访问。为了说明控件的应用,这里特编制两台计算机通过串口进行信息交换的小程序,来介绍通讯控件的具体运用。
1. 控件程序的实现
启动Microsoft 5.0,利用Appwizards建立一个新的基于对话框的project,选名commtest,其中第二步选择ActiveX Control选项,证明支持控件功能,其他都选择缺省,这样就建立了一个基于对话框的应用程序。
然后将通讯控件加入应用之中,在对话框资源上点击鼠标右键,选择Insert ActiveX Control然后在控件选择对话框中选择Microsoft Communictions Control,Version5.0,然后选择Insert插入一个类似电话机的控件,然后点击该控件就可以修改和设置控件特性。按Add to Project选项中Registered ActiveX Control选项然后在控件选择对话框中选择Microsoft Communictions Control,Version5.0,将通讯控件两个程序Mscomm.h和Mscomm.cpp加入project当中。这样就把通讯控件加入了应用程序当中,可以应用该控件进行编程了。
2.通讯控件的各属性的含义:
w10 属性
设定值
说明
ComPort
1
串口号
Settings
9600,n,8,1
串口的参数设置,依次为波特率、奇偶校验、数据位数、停止位数
InBufferSize
1024
接收缓冲区大小
InputLen
0
从接收缓冲区读取的字节数,0表示全部读取
InputMode
1
接收数据的类型,0表示文本类型,1表示二进制类型
OutBufferSize
1024
发送缓冲区大小
RThreshold
1
设定当接收几个字符时触发OnComm事件,0表示不产生事件,1表示每接收一个字符就产生一个事件
SThreshold
0
设定在触发OnComm事件前发送缓冲区内所允许的最少字符数,0表示发数据时不产生事件,1表示当发送缓冲区空时产生OnComm事件
通讯控件的属性很多,这里只是介绍其中的几种,可以根据自己的需求选择加以设置调整,对于其他属性可以查看VC帮助和联机手册。
通讯控件的工作原理类似于中禵cf方式,当有通讯事件发生时(如发送数据、接收数据等),就会触发OnComm事件,在该事件的处理函数中调用GetCommEvent()函数,通过返回值即可确定是那类事件,再作出相应的处理。
3.VC通讯控