教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 论文> 其他论文> 利用VC中的通讯控件开发串形通信程序

利用VC中的通讯控件开发串形通信程序

上传者:网友
|
翻新时间:2013-12-18

利用VC中的通讯控件开发串形通信程序

利用VC中的通讯控件开发串形通信程序 利用VC中的通讯控件开发串形通信程序 信息技术论文 更新:2006-4-8 阅读: 利用VC中的通讯控件开发串形通信程序

利用VC中的通讯控件开发串形通信程序

杨峰

河南省水文水资源局

由于需要我们开发了前置机应用程序,实现功能就是将前置机里存放的信息取出来用计算机进行处理,该程序是利用VC在WIN98下开发而成,对串口的访问是通过VC中的通讯控件主要完成的。通讯程序开发不仅涉及对串口的访问,还牵涉多线程编程24小时运行等问题,是编程中令人头疼的问题。本文中只介绍利用控件对串口的访问。为了说明控件的应用,这里特编制两台计算机通过串口进行信息交换的小程序,来介绍通讯控件的具体运用。

1. 控件程序的实现

启动Microsoft 5.0,利用Appwizards建立一个新的基于对话框的project,选名commtest,其中第二步选择ActiveX Control选项,证明支持控件功能,其他都选择缺省,这样就建立了一个基于对话框的应用程序。

然后将通讯控件加入应用之中,在对话框资源上点击鼠标右键,选择Insert ActiveX Control然后在控件选择对话框中选择Microsoft Communictions Control,Version5.0,然后选择Insert插入一个类似电话机的控件,然后点击该控件就可以修改和设置控件特性。按Add to Project选项中Registered ActiveX Control选项然后在控件选择对话框中选择Microsoft Communictions Control,Version5.0,将通讯控件两个程序Mscomm.h和Mscomm.cpp加入project当中。这样就把通讯控件加入了应用程序当中,可以应用该控件进行编程了。

2.通讯控件的各属性的含义:

w10 属性

设定值

说明

ComPort

1

串口号

Settings

9600,n,8,1

串口的参数设置,依次为波特率、奇偶校验、数据位数、停止位数

InBufferSize

1024

接收缓冲区大小

InputLen

0

从接收缓冲区读取的字节数,0表示全部读取

InputMode

1

接收数据的类型,0表示文本类型,1表示二进制类型

OutBufferSize

1024

发送缓冲区大小

RThreshold

1

设定当接收几个字符时触发OnComm事件,0表示不产生事件,1表示每接收一个字符就产生一个事件

SThreshold

0

设定在触发OnComm事件前发送缓冲区内所允许的最少字符数,0表示发数据时不产生事件,1表示当发送缓冲区空时产生OnComm事件

通讯控件的属性很多,这里只是介绍其中的几种,可以根据自己的需求选择加以设置调整,对于其他属性可以查看VC帮助和联机手册。

通讯控件的工作原理类似于中禵cf方式,当有通讯事件发生时(如发送数据、接收数据等),就会触发OnComm事件,在该事件的处理函数中调用GetCommEvent()函数,通过返回值即可确定是那类事件,再作出相应的处理。

3.VC通讯控件的数据类型和命令

对通讯控件来说,其所有的数綺dd类型和命令都在两个控件文件mscomm.h和mscomm.cpp两个文件当中,mscomm.h定义了控件类和各条命令的函数及所用的各参数,mscomm.cpp文件中有各命令函数的描述。

4.主程序的编制

在对话框中增加下面几个按钮:

发送数据编辑框

发送数据按钮;

接收数据编辑框

清除数据按钮;

通讯按钮;

首先我们为对话框中的控件添加对应的变量和响应函数a3具体做法如下表所示。

w10 控件名称

控件ID

对应变量

发送数据编辑框

IDC_SENDDATE

m_SendDate

发送按钮

IDC_SEND

OnSend()

清除按钮

IDC_CLEAR

OnClear()

接收数据编辑框

IDC_RECEIVEDATE

m_ReceiveData

通讯控件

IDC_MSCOMM

m_Comm

再打开ClassWizard,选中IDC_MSCOMM,可看到该控件能响应的消息为OnComm,添加改函数并将其改名为OnComm(),在该函数中添加代码,就能实现对串口事件的处理。其中一个需要注意的问题是函数GetInput()返回的是VARIANT型变量,而在编辑框中显示的是Cstring型变量,因此必须进行转换。先将VARIANT型变量转换为ColeSafeArray型变量,再将其转换为BYTE型数组,然后将数组转换为Cstring型变量。这个转换过程看起来比较复杂,但它可以满足用不同的变量类型来显示接收数据。该程序的主要代码添加在CommTestDlg.cpp中,如下所示:

void CcommTestDlg::OnSend()

{

it( !m_Comm.GetPortOpen() )

m_Comm.SetPortOpen(TRUE);//打开串口

UpdateData(TRUE);

m_Comm.SetOutput(ColeVariant(m_SendData));//发送数据

}

void CcommTestDlg::OnClear()

{

m_ReceiveData.Empty();//清除接收对话框中的数据

m_SendData.Empty();//清除发送对话框中的数据

UpdataData(FALSE);

}

void CcommTestDig::OnComm()

{

VARIANT m_input1;

ColeSafeArray m_input2;

Long length,i;

Cstring str;

if(m_Comm.GetCommEvent()= =

2)//接收缓冲区内有字符

{

m_input1=m_Comm.Getinput();//读取缓冲区内的数据

m_input2=m_input1;//将VARIANT型变量譥aa换为ColeSafeArray型 变量

length=m_input2.GetOneDimSize();//确定数据长度

for(i=0;i

m_input2.GetElement(&i,data+i);//将数据转换为BYTE型数组

for(i=0;i

{

char a=* (char *)(data+i);

str.Format(“%c”,a);

m_ReceiveData+=str;

}

}

UpdataData(FALSE);//更新编辑框内容

}

5.试验程序

作者: 杨峰 单位:河南省水文水资源局

邮政编码:450003 职称:工程师

电话:(0371)5951783 E-mail:yangf67@371.net

通讯地址:郑州市纬五路中段河南省水文水资源局水青9科

下载文档

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

网友最新关注

春风
下课啦
我最喜欢的小动物--小白兔
摔跤了
下课啦
春天来了
下课了
下课啦
小羊开店
秋天的景色
摔跤了
热闹的课间十分钟
下课啦
美丽的校园
我们爱春天
毕业生与简历:给求职信加点“味精”
成都毕业生流行豪华自荐书
投简历的尴尬
我这样写求职简历
自荐信的创作
怎样撰写毕业求职自荐信?
Intel 全国校园招聘只接受电子简历
写好自荐信的几大要点
自荐信应包含哪些主要内容?(自荐信)
毕业生如何准备自荐材料?
专家支招:做简历不宜走极端
求职简历制作三大忌
求职简历"减肥" "两三页纸"流行
个人简历的主要内容
求职简历:出奇才能制胜?
京沪高铁迎战首次春运
“中国高铁总设计师”张曙光官场秘闻
中国高速公路的发展历程
“湘高速杯”全国高速公路建设成就摄影大赛评选揭晓
中国高铁布局海外
舞蹈的特质及与其他艺术的关系详细内容(1)
舞蹈文化观念与舞蹈本体意识详细内容(1)
创造性的批评也应是带着镣铐的舞蹈详细内容(1)
开放时代的舞蹈多样化详细内容(1)
快乐学筝三步曲(1)
数字化舞蹈详细内容(1)
四川省成雅高速沿线地区土地征收补偿制度调查分析
繁荣中的忧思——舞蹈创作现状的思考详细内容(1)
浅谈舞蹈创作详细内容(1)
民乐的没落还是突围?-透析“女子十二乐坊”现象
《称象》
《蜜蜂引路》教学设计
《称象》教学设计
《难忘的泼水节》教学设计
《画风》教学设计
《清澈的湖水》教学设计
《葡萄沟》教学设计
《雷雨》教学设计
《称象》第二课时教学设计之一
《称象》教学设计之三
《丑小鸭》教学设计
《称象》教学设计之一
《称象》教学设计之二
《称象》 四步程序式教学设计
《要是你在野外迷了路》教学设计