版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
m:本文详细介绍 m控件在串口编程中使用 mCommPort属性RThreshold属性CTSHolding属性SThreshold属性CDHolding属性DSRHolding属性Settings属性InputLen属性EOFEnable属性Handshake常m常数InputMode常数m m控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数而且在VCVBDelphi等语言中均可使用 Contrl下简称m是公司提供的简化Windows下串行通信编程的ActiveXmm控件提供下列两种处理通讯的方式:事件驱动方式和事件驱动通讯是处理串行端互作用的一种非常有效的方法。缓冲区中有字符,或者CarrierDetect(CD)或RequestToSend(RTS)线上一个字符到达或一个变化发生时。在这些情况下,可 m控件的 m事件捕获并处理这些通讯 m事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅CommEvent属性。在编程过程中, m事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个m控件对使用多个m控件。更为便捷。在程序的每个关键功能之后,可以通过检查ComEvent属性的值来查询事件和错误。如果应用程序较小,简单的拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。mmCommPort设置并返回通讯端SettingsPortOpen设置并返回通讯端口的状态。也可以打开和关闭端口InputOutput向传输缓冲区写一个字符串CommPort属性设置并返回通讯端 mPort[value](value一整型值,说明端。)说明在设计时,value可以设置成从1到16的任何数(缺省值为1。但是如果用PortOpen属性打开一个并不存在的端口 m控件会产生错误68(设备无效。CommPortRThreshold属性:在m控件设置CommEvent属性为comEvReceive并产生m之前,设置并返回的要接收的object.Rthresholdvalue(value整型表达式,说明在产生m事件之前要接收的字符数。)Rthreshold0(缺省值)则不产生m事件。例如,设置Rthreshold为1,接收缓冲区收到每一个字符都会使m控件产生m事CTSHoldingClearToSend(CTS)线的状态发送数据。ClearToSend是调制解调器发送到相联计算语法:mCTSHoldingTrueClearToSendFalseClearToSendClearToSend(CTSHoldingFalse)并mCommEventcomEventCTSTO(ClearToSendTimeout)并产生m事ClearToSendRTS/CTS(RequestToSend/ClearToSend)ClearToSend线的状态,CTSHolding详细信息有关握手协议,请参阅HandshakingSThreshold属性:m控件设置CommEvent属性为comEvSend并产生m事件之前,设置并返回传输缓冲object.SThresholdvaluevalue整形表达式,代表在mSthreshold0(缺省值会产生m事件。若设置Sthreshold属性为1,当传输缓冲区完全空时,m控件产生m事件。如果在传输缓冲区中的字符数小于value,CommEvent属性设置为comEvSend,并产生mcomEvSend事件仅当字符数与Sthreshold交叉时被激活一次。例如,如果Sthreshold等554时,comEvSend才发生。如果在输出队列中从没有比Sthreshold多的字符,comEvSend事件将绝不会发生。Handshake常comNone0无握手comXonXoff1XOn/Xoff握手comRTS2Request-to-send/clear-to-sendcomRTSXOnXOff3Request-to-sendclear-to-send握手皆可mcomEvSend1发送事件comEvReceive2接收事件。comEvCTS3clear-to-send线变化。comEvDSR4data-setready线变化。comEvCD5carrierdetect线变化。comEvRing6检测。comEvEOF7文件结束Error常comEventBreak1001接收到中断信号comEventCTSTO1002Clear-to-send超时comEventDSRTO1003Data-setready超时comEventFrame1004帧错误comEventOverrun1006端口超速comEventCDTO1007Carrierdetect超时comEventRxOver1008接收缓冲区溢出comEventRxParity1009Parity错误comEventTxFull1010传输缓冲区满comEventDCB1011检索端口设备控制块(DCB)时的意外错InputMode常数常数值描述comInputModeText0(缺省)通过Input属性以文本方式取回comInputModeBinary1通过Input属性以二进制方式检取回数CDHoldingCarrierDetect(CD)线的状态确定当前是否有传输。CarrierDetect是从调制解调器发送到相联计算语法设置值:CDHolding属性的设置值为:设置描述TrueCarrierDetectFalseCarrierDetectCarrierDetect(CDHoldingTrue)超时时,mCommEventcomEventCD(CarrierDetect超时错误m事注意在主机应用程序中捕获一个丢失的传输是特别重要的,例CarrierDetect也被称为ReceiveLineSignalDetect(RLSD)。数据类型DSRHoldingDataSetReady(DSR)线的状态。DataSetReady信号由调制解调器发送到相连计算机,指示作好操作objectDSRHolding属性返回以下值:值描述TrueDataSetReadyFalseDataSetReady说明当DataSetReady线为高电平(DSRHolding=True)且超时时, 控件设置 属性为 m事件。当为Data 机器写Data Ready/DataTerminalReady握手例程时该属性是十分有用的。Settings属性:设置并返回波特率、奇偶校验、数据位、停止位语法object.Settings[说明:当端口打开时,如果value,则 m控件产生错误380(属性值。ValueBBBB为波特率,P为奇偶校验,D为数据位数,S为停止位数。value的缺省值是:InputLen属性:设置并返回Input属性从接收缓冲区的字object.InputLenInputLenvalue整型表达式,说明Input属性从接收缓冲区中的字符说明:InputLen属性的缺省值是0。设置InputLen为0使用Input将使m控件接收缓冲区中全部的内若接收缓冲区中InputLen字符无效,Input属性返回一个零长度字符串。在使用Input前,用户可以选择检查InBufferCount属性来确定缓冲区中是否已有需要数目的字符。该属性在从输出格式为定长数据的机器数据时非常有用。EOFEnable属性:确定在输入过程中 m控件是否寻找文件结尾(EOF)字符。如果找到EOF字符,将停止输入并激 m事件,此时CommEvent属性设置为comEvEOF,语法:object.EOFEnable[=value]EOFEnablevalueEOF字符时,m事件是valueTrueEOF字符找到时mFalse(缺省)当EOF字符找到时m事件不被激活。EOFEnableFalse,m控件将不在输入流中寻找EOF字符。错误消息(MSComm控件下表列 m控件可以捕获的错误端口打开时操作不合法超时值必须大于无效端端口已经打开硬件不可用(被其它设备锁定设备没有打开不能使用comm不能设置comm状 不能设置comm事件仅当端口打开时操作才有效comm设备错误为该端口检索设备控制块时的错误VC++中利ActiveX控件开发串行通信程序交通大学B9703-1信箱(200030) 要:探讨在使用VisualC++编程时利用CommunicationsControl控件编写串行通信程序的方法,并给出了:VisualC++在开发微机控制系统的过程中,经常需要通过RS232位机的以及系统中计算机与数字仪表的通信DOS对可编程串行通口的道上,而不是花在的主要目的——获取与处理数据上;在indows下,in32APICreateFilerteFile等文件IO函数进行串行口操作的方法,但是在实现上仍然是相当烦琐的幸运的是indows平台先进的ActiveX技术使在对串ActiveX以indows98iualC++6.0开发PT650C秤重显示器的通 CommunicationsControl控件ActiveXActiveX是Windows内容是组件对象模型COM(ComponentObjectModel)。ActiveXActiveX控件的应用程序和ActiveX控件之间的工作方式是客户/服务器方式,即应用程序通过ActiveX控件提供的接口来ActiveX
CommunicationsControl(以下简 Windows m控件将解发 m事件,而应用程序在捕获该事件后,通过检查 m控件的CommEvent属性可以获知所发生的事件或错误,从而采取相应程序执行完某一串行口操作后,将不断检查m控件的CommEvent属性以检查执行结果或者检查某一事件是否发生。
m控件有许多重要的属性,其中首要的几个如表1属 说CommPort设置/获取控件对应的串行Settings设置/PortOpen打开/关闭通信Input数Output发送数 m控件开发PT650C秤重显示器通信程序时,采用了事件驱动法主要是在comEvReceive(接收到数据)事件发打开VisualC++6.0集成开发环境,创建一个基于框MFC应用程序项目,命名 ,记住在设置项目选项ActiveXControls,其他的按照缺省设置。完成这一步后,选择菜单项ProjectAddtoProjectComponentsandControls……,将弹出一个框以选择系统中已有的组件(Components)和控件(Controls)。选择RegisteredActiveXControls文件夹下的CommunicationsControlInsert按钮,将m控件支持加入到本项目中。这时将生成一个名为m的C++类,并且在框编辑器里的将出现m控件图标。m类是由m控件导出的一系列接口函数构成的,利用它将可以m控件的假设PT650CCOM1资源编辑器,在程序主框(资源ID为_DIALOG)上面放置一个m控件,并用ClassWizard为该框类添加对应该控件的成员变量m_wndCOMPT650C7个数据位、1个停止位、偶校验方式,并且波特率为2400/4800/9600可选,这里我采用9600波特率,在框编辑器中设置m控件的属性如下:1(资源CommPort:1Settings:9600,e,7,1(9600,偶校验,7个数据位,1个停应于一个单独的m控件。串行口的设置参数既可以在对话框编辑器里设定,也可以在程序代码中通过调用m类的成员函数设定。例如,可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《培养契约精神》课件
- 养老院老人物品寄存制度
- 养老院老人紧急救援人员考核奖惩制度
- 向量的数量积课件
- 房屋封阳台协议书(2篇)
- 《广汽乡镇巡展》课件
- 2025年威海c1货运从业资格证模拟考试
- 《学会与父母沟通》课件-图
- 2024年度物业维修基金管理合同示范3篇
- 2025年遵义货运资格证培训考试题
- 创意改变生活智慧树知到期末考试答案章节答案2024年中国石油大学(华东)
- 中国重症卒中管理指南2024解读
- 售后服务部部门组织架构
- 兴安盟2024年内蒙古兴安盟盟直事业单位人才引进10人 笔试历年典型考题寄考点剖析含答案附详解
- 你我同行-大学生朋辈心理互助智慧树知到期末考试答案章节答案2024年湖南工学院
- 2024年北京大学“物理卓越计划”选拔考试数学试题含答案
- 2024年高考语文阅读之肖复兴散文专练全国解析版
- 健康管理大学生职业生涯规划书
- 高中生如何提升自己的学习效率
- 口腔管理制度十八项
- DLT 573-2021电力变压器检修导则-PDF解密
评论
0/150
提交评论