- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
工程建筑学相关资料ENGINEERING ARCHITECTURE RELATED INFORMATION
工程建筑学相关资料
ENGINEERING ARCHITECTURE RELATED INFORMATION
PAGE
PAGE 1
Windows环境下的串行数据通信程序设计
摘 要 该文详细讨论了MSCOMM.VBX通信控件在Windows平台下的通信软件设计方法,借助于Visual Basic所附的通信控件能非常方便地开发出高级和专业性通信软件来满足不同业务的需要。在Windows操作系统平台上开发通信软件时,虽然Windows 3.1 SDK提供了完备的API应用程序接口函数和以中断方式驱动的通信设备驱动程序COMM.DRV,从而可以用C或C++来完成这类应用程序的设计,但其复杂化和专业化程度仍然很高。所以,目前许多软件开发人员都在使用Microsoft Visual Basic来开发Windows应用程序。本文将详细叙述VB环境的通信软件开发方法,通过对通信控件MSCOMM.VBX的分析,我们可以看到利用VB来开发Windows平台下的通信软件非常简单。最后结合我们工作中的一个实例来完整地描述该类软件的设计方法。一、MSCOMM.VBX的描述VB中的串行通信控件已全面提供了使用RS-232来进行数据通信软件开发设计的所有细则,Microsoft Visual Basic 3.0中的MSCOMM.VBX(需要安装在indowsystem\目录下)是1992年Crescent software Inc. 公司专为Microsoft的VB平台设计的,它使用以下两种不同的方式来处理和解决各类通信软件的开发和设计问题。(1) 事件驱动,它和我们用C/C++写Windows软件时的窗口回调函数类似,是一种功能强大的处理问题的方法。在实际工作中,往往要求我们处理许多通信中的相关事件。例如:当线路数据到达本端或CD(Carrier Detect)和RTS(Request To Send)信号线状态发生变化时,这就要求我们使用相应的事件来跟踪和处理。在该控件中,是使用OnComm来实现的,它也包括检测和处理通信错误等方面的问题。以下是MSCOMM详细的错误和事件列表(读者可参阅SKD或MSC/C++ 7.0等中的Windows.h有关的通信部分常数和函数原型):MSCOMM_ER_BREAKA收到一个Break signal.MSCOMM_ER_CDTOCD信号超时MSCOMM_ER_CTSTOCTS信号超时MSCOMM_ER_DSRTODSR信号超时MSCOMM_ER_FRAME帧错误发生MSCOMM_ER_OVERRUN接收数据丢失MSCOMM_ER_RXOVER接收缓冲器溢出MSCOMM_ER_RXPARITY纠验错MSCOMM_ER_TXFULL发送缓冲器满MSCOMM_EV_CDCD信号改变MSCOMM_EV_CTSCTS信号改变MSCOMM_EV_DSRDSR信号改变MSCOMM_EV_EOF收到一个文本文件结束字符(26)MSCOMM_EV_RING检测到一个振铃信号MSCOMM_EV_RECEIVE接收到设定的字符数时产生该事件MSCOMM_EV_SEND发生缓冲器中的字符数低于设定的数值时产生该事件以上常数定义在CONSTANT.TXT文件中。(2) 查询方式,由程序设计者来负责读取CommEvent的值并处理所发生的错误或事件。通常简单的应用程序设计可采用这种方法。使用通信控件开发通信软件时,能非常简单地设计出同时访问多个通信口的程序,这就是Windows的好处。例如使用Commi.OnComm,其中1≤i≤n(n:当前可用的通信口),就可以设计多个通信串口处理程序。例如,一个基于电话网用来检索信息资料的小型服务器的后台软件的设计应用就是一个很好的例子。MSCOMM.VBX中提供了27个关于通信控件方面的属性,以下列出最重要的几个:CommPort设置和返回通信口的数目Settings设置和返回以字符串形式给出的数据通信格式:波特率,校验,数据位和停止位PortOpen设置和返回通信口的状态(包括打开和关闭一个通信口)Input读串行数据接收缓冲器Output发送一个串在MSCOMM.VBX中,有两个与Input和Output性质相等同的函数;(1) 输入函数,从串行通信接收缓冲器中读取字符串,句型如下:Comlnput(By Val hWnd As Integer, lpData As Any,By Val cbData As Integer) As Integer@@T8S14200.GIF;图1@@返回值:本次读操作实际读取的字符数(2) 输出函数,向通信口发送一个字符串,句型如下:C
文档评论(0)