在vc++中利用activex控件开发串行通信程序

在vc++中利用activex控件开发串行通信程序

ID:23874639

大小:52.50 KB

页数:5页

时间:2018-11-11

在vc++中利用activex控件开发串行通信程序_第1页
在vc++中利用activex控件开发串行通信程序_第2页
在vc++中利用activex控件开发串行通信程序_第3页
在vc++中利用activex控件开发串行通信程序_第4页
在vc++中利用activex控件开发串行通信程序_第5页
资源描述:

《在vc++中利用activex控件开发串行通信程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、在VC++中利用ActiveX控件开发串行通信程序

2、第1摘要:探讨了在使用VisualC++编程时利用MicrosoftmunicationsControl控件编写串行通信程序的方法,并给出了例程,具有一定的实用意义。在开发微机控制系统的过程中,我们经常需要通过RS-232串行接口与外部设备进行通信。例如分级控制系统中上位机与下位机的数据交换以及数据采集系统中计算机与数字仪表的通信等。在DOS时代,编写串行通信程序是一件相当复杂的工作,程序员需要具备相当的硬件知识,对可编程串行通信接口芯片的内部寄存器定义、工作方式、指令字等相关内容有所了解,才有可能着手编写程序,大量的时间和精力都花在了

3、如何与硬件打交道上,而不是花在我们的主要目的——获取与处理数据上;在Sm)是Microsoft公司提供的简化Sm控件的mEvent属性可以获知所发生的事件或错误,从而采取相应的操作。这种方法的优点是程序响应及时,可*性高。1.2查询法500)this.style.ouseg(this)">这种方法适合于较小的应用程序。在这种情况下,每当应用程序执行完某一串行口操作后,将不断检查MSm控件的mEvent属性以检查执行结果或者检查某一事件是否发生。例如,当程序向串行设备发送了某个命令后,可能只是在等待收到一个特定的响应字符串,而不是对收到的每一个字符都立刻响应并处理。MSm控件有许多重要的属

4、性,其中首要的几个如表1所示。2编程实现在使用MSm控件开发PR650C秤重显示器通信程序时,采用了事件驱动法,主要是在EvReceive(接收到数据)事件发生时响应并获取缓冲区中的数据。以下具体介绍实现方法。打开VisualC++6.0集成开发环境,创建一个基于对话框的MFC应用程序项目,命名为My,记住在设置项目选项时必须选上ActiveXControls,其他的按照缺省设置。完成这一步后,选择菜单项Project/Addtoproject/ponentsandControls……,将弹出一个对话框以选择系统中已有的组件(ponents)和控件(Controls)。选择Registe

5、redActiveXControls件夹下的MicrosoftmunicationsControl项并按下Insert按钮,将MSm控件支持加入到本项目中。这时将生成一个名为CMSm的c++类,并且在对话框编辑器里的工具栏将出现MSm控件图标。CMSm类是由MSm控件导出的一系列接口函数构成的,利用它将可以访问MSComm控件的属性(Property)和方法(Method)。假设PT650C秤重显示器接在计算机1口上,那么打开资源编辑器,在程序主对话框(资源ID为IDD_MY_DIALOG)上面放置一个MSm控件,并用ClassSm控件。串行口的设置参数既可以在对话框编辑器里设定,也

6、可以在程序代码中通过调用CMSm类的成员函数设定。例如,我们可以在MyDlg类的OnInitDialog成员函数中初始化MSm控件的参数,代码如下:BOOLCMyDlg::OnInitDialog(){CDialog::OnInitDialog();//以上为MFC框架自动生成的代码,在此不列出//TODO:Addextrainitializationherem_Port(1);m_____事件的处理函数,每当MSm控件触发事件时该函数将被调用。在对话框编辑器中用鼠标左键双击MSm控件图标,在弹出的对话框中输入函数名Omm1,该事件处理函数的原型定义和消息映射入口将自动被添加到CMyD

7、lg类中,我们所要做的只是在Onm1函数中给出具体的数据处理程序段,代码示例如下:voidCMyDlg::Onm1(){//TPDP"AddyourcontrolnotificationhandlercodehereCStringsInput;s_Event()){case1://EvSend事件/*如有数据要发送,可采用以下代码:VARIANTvarOut;VariantInit(varOut);varOut.vt=VT_BSTR;USES_CONVERSION;varOut.bstrVal=SysAllocString(T20LE("Mydata"));if(varOut.

8、bstrVal){m__控件提供Unicode格式的字符串,在以上代码中用到了USES_CONVERSION和T2OLE宏进行ANSI字符串到Unicode字符串的转换,具体内容可参考Visual所带的MSDN文档,在此不加赘述。本文对Windo串行通信ActiveX控件编程的方法做了探讨,显示了AcctiveX技术的强大功能、充分的灵活性和易用性,具有一定的实践意义。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。