探究一种用户友好的C++串口类设计

来源 :科学与财富 | 被引量 : 0次 | 上传用户:robinchen
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:在信息化社会中,串口通信在安装与设计相关设备设施中均有广泛性应用,文章阐述了一类以ActiveX控件MSComm和MFC Library Regular DLL为基点的C++串口设计,采用经细致规划的函数接口和消息体制,最大限度的精简了串口编辑程序。和直接采用MSComm控件相比较,采用该类型串口进行编程,能够有效降低串口编程的难度系数,使用者只有具备基礎的串口知识,能够顺利的书写出正常运作的串口流程。
  关键词:ActiveX控件;MSComm;串口通信;模块化
  C++为当下结构最为繁杂,以及功能最为强大的一类windows应用程序开发工具,怎样有效应用C++研发串行通信程序去达到工控系统的实时通信,是社会各个领域中关注的焦点,也是行业领域发展期间面对的重难点。串口通信自身具备成本低廉、操作过称简易、可靠性高、远距离传输等优势,应用范畴不断拓展。有效应用计算机上的串口能为对装、设备进行参数规划等工作创造诸多便利条件,设备间数据传导目标也顺利实现,故此规划具备操作串口功能的计算机程序使极为普及的编程任务。
  1当前Windows操作系统上进行串口编程的几种方法
  1.1采用微软C运行时库的I/O函数
  在对串口操作过程中,可应用_inp、_inpw、_inpd、_outp等函数,上述函数最大的特征是能够直接对串口芯片施以相关操作行为。这就需要编程人员对串口硬件的工作原理与程序有全面性了解[1]。
  1.2应用Windows API函数
  即应用Windows API中的ReadFile、WriteFile、BuildComDCB等函数进行相关操作。上述函数应用过程具有一定难度,只有在对系统内文件有整体认识以及设备管理具有一定深度情况下,才可有效应用。
  1.3应用第三方串口通信类
  第三方串口通信类以CSerialPort,cnComm等为主,应用制定的语言编写,并装包成类(class),内部采用调用Windows API方式,达到对串口的有效操作。
  2 用户友好的串口DLL和C++串口类规划
  2.1串口DLL的规划
  MSComm控件具备运行稳定可靠属性,为本文设计工作的开展与运行提供了坚实基础。从性质上分析,MSComm为一类ActiveX控件,只有在ActiveX容器内其才会运作,并将效能发挥出来。对话框是较为典型的ActiveX容器。故此,本文规划了一个对话框类CommCtnr,若将MSComm控件插进对话框类CommCtnr内,Visual C++开发环境将会自行取代MSComm控件产生代理类CMSComm,其将CMSComm类的对象设为对话框类CommCtnr的数据成员[2]。
  使用者可直接把有关的.cpp、.h文件以及.rc资源文件拷贝到自己的工程目录内,但上述过程运行相对复杂,且耗用大量时间。更有效的方法是把有关的文件独立编译为一个动态链接库(DLL),用户只需调用该动态链接库,就可顺利的进行串口操作。MFC能促使两类动态链接库运转:①MFC Library Extension DLL;②MFC Library Regular DLL。前者可把整个C++类设为DLL的外部接口,以助力于DL过程,但要求用户需采用C++语言编程,只有在动态链衔接MFC库时,DLL的效能才会发挥出来,用户群规模可能有所减缩,故此本文设计期间不采用该种方式。而应用MFC Library Regular
  DLL方式,其可提供多类编程语言设计的客户程序。因为其对外界的接口只认可是C风格的函数,故此其与类(class)类型的参数之间产生互斥效应。故此,本文在对每一C风格函数接口规划过程中,均需一个无符号整型的参数代表串口号,串口号和串口存在一一对应关系,在DLL内部串口号有针对的被转型为MSComm串口控件。在提供串口号的情况下,就可实现对相关串口进行操作,为用户创造诸多便利条件。
  2.2用户友好的消息的规划
  消息传递为Windows程序之间以及程序内部信息互换的主要渠径,本文应用自定义的消息去落实客户程序和DLL间的交互任务。为DLL设计了三种消息,MSComm控件若传送消息,就会立即被转型为者三类消息之一,最后发送给客户程序:①接收数据消息;②传送数据消息;③硬件控制消息或者是串口错误[3]。
  消息的实际数值大小取决于客户程序,于串口初始化之际,就把消息值传达给DLL。那么在后续运转期间,存在相关的串口事件发生时,DLL就会把对应的消息传送给给客户程序。
  2.3用户友好的C++串口类规划
  客户程序能够直接应用DLL的导出函数,对串口的程序进行编辑,该类函数属于C风格的函数。对于C++编程人员而言,本文规划了一个C++串口类Mcomm,其为DLL导出函数的包装类,也被称之为称为代理类客户程序经由Mcomm操作串口,能够将C++语言面向对象的优势彰显出来,和C风格接口相比较,该类借口结构更显简洁,并且其还能够自主管理串口资源的获得与传导过程,以降低客户程序的运行负担,进一步提升串口编程的简易性与快捷性,遵照了简洁、清晰、易用的设计哲学理念。应用Mcomm难度和寻常的C++类几乎无差异,把mcomm.h文件囊括在项目内即可。
  3结束语
  本文以ActiveX控件MSComm为基点,规划了一类串口通信DLL库,进而设计了一个C++串口类,创设了一类对用户友好的串口编程渠道,大幅度降低了串口程序编写难度。此时,程序员只需具备最基础的串口知识,就可以实现编程目标,为非专业程序员以及程序编写初学者提供巨大帮助。在实践中,发现DLL库内编程语言类型众多,此时非C/C++程序员也可以应用其对串口程序进行编辑。
  参考文献:
  [1] 翁花群, 林元国. 基于Visual C++的数字图像处理实验教学软件开发[J]. 廊坊师范学院学报(自然科学版), 2015, 15(1):24-28.
  [2] 丁立波. 基于ARM9和Qt的嵌入式视频监控系统的设计[D]. 南昌大学, 2011,12(14):124-7413.
  [3]王尹圣, 曾国强, 李强,等. 基于C#与C++混编的轻元素X荧光测量软件[J]. 核电子与探测技术, 2015(4):394-398.
其他文献
摘要:柴油发电机组的并列运行过去大都是采用手动准同期法,近年来,随着柴油发电机组自动化技术的提高,自动化并车及控制系统在国内开始推广和普及。自动化并车系统一般由主控制器、自动同步器、自动负载分配器、柴油机供油调节系统 (电子调速器,电子喷射系统等)、发电机励磁调节系统及主开关等组成。  关键词:柴油发电机组;自动化;并车控制;负载  一、引言  1. 柴油发电机组的并列运行过去大都是采用手动准同期
期刊
摘要:挖煤的工制,是以小组为单位,对每个小组的成员进行挖煤数额的计算,根据每个人挖的数量和质量来支付工资。根据不同的工作层面来确定不同的数额、定量、产量的为标准来进行工资的计算。在组织生产中,以小组为单位计算煤矿工人的生产定额和计件的数量,来作为小组内部分发工资的依据。主要的分配方式以按劳分配为主其他分配结合,在煤矿员工中内部实行,这样有利于各个岗位上职工的公平性、关联性。在职工内部,主要分为两种
期刊
摘要:随着贸易国际化的发展,港口物流企业面临着严峻的挑战。成本管理作为企业管理工作的重要部分,其对企业的长远发展和经济效益都具有很大的影响。在新形势下,港口物流企业若想满足社会发展的需求,改革传统的成本管理具有很大的必要性和可行性。战略物流成本是一种新型的管理措施,与传统成本管理相比,其不仅能够有效提高企业的经济效益,对企业竞争力也具有显著的积极作用。在此背景下,本文将对战略成本管理在港口物流企业
期刊
摘要:从古到今就有这样一句老话“民以食为天”,粮食质量的安全对于以人为本、建设社会主义和谐社会有着重要意义。粮食质量的保证,粮食卫生检验检测是重要环节,如何让百姓吃上营养结构合理、对健康无害的放心粮油,一直得到各级政府部门的高度重视。  关键词:粮食收购 质量检验  随着我国粮食流通体制改革不断深化,已取得明显成效,在粮食严重供大于求的情况下,实行按保护价敞开收购农民余粮的政策,有效地保护了种粮农
期刊
前言:通常人们在通过一扇门时,基本选择有两种——推与拉。如果是一扇实木门,在人们看不到门内情况下,打开这扇门的方式应该首选“拉”这个动作,因为如若选择了“推”,就会容易打到里面正要走出来的人,而选“拉”这个动作,在方便自己看到内里情况的同时,也便于门里的人通行。道理很简单,可有趣的是,在实际生活中选择“拉开”这个动作的只有少部分人,绝大多数人选择的是“推”。我们不禁要问:这是为什么呢?如此简单的事
期刊
摘要:电气自动化技术作为一项知识密集型技术,需要工程师有着较高的技术水平。不断地从电气系统的实际应用出发,深入研究电气自动化装置,熟悉其构成,在遵守规程的基础上,不断地完善该自动化装置的图纸,让系统更加的严密、富有逻辑性。同时,还要加强实际应用中对该装置运行规律的进一步探索和经验积累,让电气自动化更加完善、更加成熟。  关键词:电气自动化 电气工程 应用  一、 电气工程与电气自动化设计原则与设计
期刊
摘要:电子通信技术是当代人们必不可少的应用技术,它与我们的生活息息相关,深刻影响着我们生活的方方面面,二十一世纪是信息化的时代,我们所使用的电话、互联网均离不开电子通信技术的支持。其中电磁场和电磁波对电子通信技术的意义是巨大的,它们的存在强度与否会直接影响电子通信技术的效果,为了提高电子通信技术必须深入探究电磁场与电磁波的价值意义,基于此背景笔者对电磁场与电磁波在电子通信技术中的应用进行了研究,希
期刊
摘要:电视导演在电视晚会中发挥着至关重要的作用,只有保证电视导演的工作效果,才能促进电视晚会质量的提升。对电视导演在晚会中的作用进行细化的解读,发现主要作用从整体规划和晚会的组织协调等角度表现出来,因此以此为切入点进行系统研究。  关键词:电视导演;电视晚会;作用  一台高水准的晚会与优秀导演的工作能力存在紧密的联系,只有保证导演在工作中能够对电视晚会进行统筹规划和协调,才能提高晚会的艺术效果,保
期刊
摘要: 随着国内社会的进步与科学技术的不断发展,电气自动化技术的节能设计也得到了广泛的运用。随着国内工业化进程的加快,电气自动化节能设计技术也得到了社会各界的关注。电气自动化的节能设计水平不仅可以代表一个国家的整体工业水平,同时也能够展示出国家的科技实力。电气自动化节能设计可以有效地降低电能源的耗损,扩大企业的效益空间,并且还可以改善对自然环境的污染与破坏,给经济的顺利发展构建一个良好的环境。文中
期刊
摘要:针对目前电力系统检修工作中挂、拆接地线存在的安全问题,笔者在实际工作中,发现”挂接地线”这一看似简单的操作,在实施中存在一些问题。本文介绍了一种新型电力检修作业地线装置的构成和硬件电路的实现,采用了基于全球移动通信系统GSM短消息技术的接地线在线监测装置的设计方案,并完成了装置的硬件设计和软件设计,并剖析了电力线路工作中挂接地线存在的常见问题。  关键词:电力系统;GSM;接地线;超声波测距
期刊