在VC++中利用ActiveX控件进行串行通信的方法

来源 :网络与信息 | 被引量 : 0次 | 上传用户:mengnan16
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  1 引言
  
  串口通讯是计算机与其他设备进行数据交换时经常使用的方法之一,他具有连接简单、使用灵活方便、数据传递可靠等优点,在工业监控、数据采集和实时控制系统中得到了广泛应用。当前的串口通信编程常用的方法主要有:使用VC++提供的MSComm控件实现串口通信、基于MFC框架实现串口通信、基于某个串口通信C++类、基于API的串口通信。这四种方法相比较,MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。
  
  2 ActiveX控件(MSComm控件)介绍
  
  ActiveX是Windows下进行应用程序开发的崭新技术,它的核心内容是组件对象模型COM(Component Object Model)。Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件。具体地说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。
  (1) 事件驱动法
  在使用事件驱动法设计程序时,每当有新字符到达,或端口状态改变,或发生错误时,MSComm控件将触发OnComm事件,而应用程序在捕获该事件后,通过检查MSComm控件的CommEvent属性可以获知所发生的事件或错误,从而采取相应的操作。
  (2) 查询方法
  这种方法适合于较小的应用程序。在这种情况下,每当应用程序执行完某一串行口操作后,将不断检查MSComm控件的CommEvent属性以检查执行结果或者检查某一事件是否发生。
  
  3 在VC++中利用ActiveX控件进行串行通信的步骤
  
  (1) 在当前的Workspace中插入MSComm控件
  Project菜单→Add to Project→Components and Controls→Registered ActiveX Controls→选择Components: Microsoft Communications Control,version 6.0 插入到当前的Workspace中。
  (2) 在MainFrm.h中加入MSComm控件
  protected:
  CMSComm m_ComPort;
  在Mainfrm.cpp::OnCreare()中:
  DWORDstyle=WS_VISIBLE|WS_CHILD;
  if (!m_ComPort.Create(NULL,style,CRe
  ct(0,0,0,0),this,ID_COMMCTRL)){
  TRACE0("Failed to create OLE Communications Control\n");
  return -1;
  }
  (3) 初始化串口
  m_ComPort.SetCommPort(1);
  m_ComPort.SetInBufferSize(1024);
  m_ComPort.SetOutBufferSize(512);
  if(!m_ComPort.GetPortOpen())
  m_ComPort.SetPortOpen(TRUE);
  m_ComPort.SetInputMode(1);
  m_ComPort.SetSettings("9600,n,8,1");
  m_ComPort.SetRThreshold(1);
  m_ComPort.SetInputLen(0);
  (4) 捕捉串口事项
  MSComm控件可以采用轮询或事件驱动的方法从端口获取数据。我们介绍比较实用的事件驱动方法:有事件(如接收到数据)时通知程序。在程序中需要捕获并处理这些通讯事件。
  (5) 串口读写
  完成读写的函数的确很简单,GetInput()和SetOutput()就可。两个函数的原型“VARIANT GetInput();”及“ void SetOutput(const VARIANT& newValue);”都要使用VARIANT类型(所有Idispatch::Invoke的参数和返回值在内部都是作为VARIANT对象处理的)。
  无论是在PC机读取上传数据时还是在PC机发送下行命令时,我们都习惯于使用字符串的形式(也可以说是数组形式)。查阅VARIANT文档知道,可以用BSTR表示字符串,但遗憾的是所有的BSTR都包含宽字符,即使我们没有定义_UNICODE_UNICODE也是这样! WinNT支持宽字符, 而Win95并不支持。
  
  4 结论
  
  本文对Win32下VC++ 程序中使用MSComm串行通信ActiveX控件编程的方法做了探讨,显示了ActiveX技术的强大功能、充分的灵活性和易用性,具有一定的实践意义。
  
  参考文献
  [1]龚建伟,熊光明.VisualC++/TurboC串口通信编程实践[M].北京:电子工业出版社,2004.
  [2]陈细军,谭民.VC编程中的串口通信技术.计算机应用,2001,(9).
  [3]张筠,刘书智.VisualC++实践与提高(串口通信与工程应用篇)[M].北京:中国铁道出版社,2006.
  [4]张雄飞,方方.Windows平台下数据采集(串口通讯的实现).计算机自动测量与控制,2001.
  [5]刘鎏.用VisualC++实现计算机串行通信的几种方法[J].舰船电子工程,2006.
其他文献
“Ctrl”键在Word中的作用很大,和其他不同的键组合起来使用,可发挥更大的作用。    Ctrl+D: 打开“字体”对话框,快速完成字体的各种设置。  Ctrl+E:使光标所在行的文字居中。  Ctrl+F:打开“查找与替换”对话框,并定位在“查找”选项卡中。  Ctrl+G:打开“查找与替换”对话框,并定位在“定位”选项卡中。  Ctrl+H:打开“查找与替换”对话框,并定位在“替换”选项卡
期刊
在管理、维护局域网的过程中,网络管理员往往都会担负起普通工作站IP地址的分配任务,普通工作站只有通过正确地注册后才能被局域网认为是合法工作站。在局域网工作环境中,任何一台普通工作站使用没有经过特别授权的IP地址时,都会被局域网网络当作是非法IP地址在使用。不过在Windows操作系统环境下,普通工作站用户常常可以根据自己的意愿随意修改本地工作站的IP地址参数,那样一来局域网网络就容易频繁发生IP地
期刊
在flash软件中使用时间轴与脚本语言的结合,轻松制作古诗填词课件,它比一些其它课件制作软件更为简便、快捷,而且更实用。  第一步  打开flash这款软件,设置影片属性大小为550×350。(或用默认设置也可)点确定按钮进入到场景中。  第二步  文件菜单→导入命令→导入到舞台→在路径目录中选择一幅背景图片文件,然后放置到舞台上面,且调整与场景中舞台同等大小,如图1。     第三步  制作按钮
期刊
前方    随着21世纪的到来,特别是近年现代高科技和信息技术(IT)正在由智能大厦(IB)走向智能住宅小区,进而走进家庭(SH)。现代社会的家庭成员正在以追求家庭智能化带来的多元化信息和安全、舒适与便利的生活环境作为一个理想的目标。    1 国内外智能家居现状及发展趋势    智能住宅的概念起源于美国,美国的智能住宅发展是最为迅猛的。继美国之后,欧洲、日本、新加坡等国家住宅智能化也得到了飞速发
期刊
1. Ajax技术的实现    传统Web 1.0时代B/S架构的系统在处理用户登录等信息时会引起真实的页面跳转,如在用户验证页中完成对用户登录身份合法性认证,即在用户验证页面中判断并弹出提示警告信息。由于用户验证页不同于用户登录页,其为单纯提供用户登录身份合法性认证的功能模块,所以其提示警告信息的显示是在与用户登录界面完全不同的一个空白页面中显示的,这样会非常影响用户的使用心情。  为了解决传统
期刊
近两年,病毒、木马日益猖獗,各种病毒轮番上阵,熊猫烧香、威金、机器狗……病毒的泛滥也使得杀毒软件市场火爆起来,2007年,各种号称具备“主动防御功能”的安全工具也推出不少;另一方面,以在线杀毒、在线安全为主题的安全网站也相继火热。很多杀毒软件厂商都推出了在线杀毒功能。更让我们想不到的是,近日全球中文搜索老大百度也推出了一个安全网站“百度安全中心”,网站号称“史上最方便的安全软件,杀灭病毒,PC优化
期刊
1 引言    近年来随着Internet的飞速发展,越来越多的用户利用Web获取、发布信息,这为一些非法入侵他人系统、窃取他人机密、破坏他人系统等恶意行为提供了可能,如果不采取必要的安全措施加以自我保护,后果不堪设想。ASP.NET Web 应用程序为结构设计人员、设计人员和开发人员提出了一系列复杂的安全问题。对Web应用程序来说,安全措施得当才能有效地抵御各种黑客的攻击,如:未授权访问、跨站点
期刊
Agent是具有适应环境的软件实体,其能够通过感知自身和环境中的信息,自主采取行动实现一系列预先设定的目标或任务。多Agent系统是由多个自主的Agent组成,每个Agent都有自己的职责,并与其它Agent通信获取信息,互相协作完成整个问题求解。对于分布式资源检索系统来说,其内容涉及到多个层面,如单个资源站点的维护与管理、多个资源站点的通信与资源检索等等。在分布式环境下的多个资源站点间的信息检索
期刊
随着计算机与通讯技术的发展,传统面对面商务活动转入了网络商务活动的运作模式,使人与人、人与商家的商务交互活动成为现实。商务活动的供求双方对话完全依赖于信息通讯技术构筑的虚拟空间。网络信息通讯的发展带来便利的同时也带来了安全隐患。不少商家意识到此点,纷纷建立用户信用体系维护。如B2B交易平台需建立相应的信用维护体系,以规避用户交易风险。在这个过程中,平台必须具备足够的信用基础,其措施如数字证书、用户
期刊
1 引言    外贸函电作为国际商务往来经常使用的联系方式,是开展对外经济贸易业务和有关商务活动的重要工具。正确地掌握外贸函电的基本知识,并能进行熟练地写作,是外贸工作人员必须具备的专业技能。为了加强学生外贸函电写作能力,熟练掌握外贸函电写作技能,我们设计出一套外贸函电教学软件来辅助课堂教学。    2 外贸函电教学软件设计思路    根据外贸函电课程特点,以真实的外贸函电范本为基础,结合现代信息
期刊