当前位置: 网学 > 编程文档 > VB > 正文

利用Visual Basic 实现无线通讯

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/16
下载{$ArticleTitle}原创论文样式

作者: 姜棣昭(中科院空间中心)  
   
一、 概述

Visual Basic 是Mcrosoft公司推出的强有力的系列开发软件之一,而且以其实用、方便、快捷、开发周期短、广泛而强大的功能越来越被广大编程人员所亲赖,广为流传,似乎有些专业的编程人员放弃了Visaul C++ 而改用了Visaul Basic之类的RAD编程工具,尽管Visaul C++在灵活性、代码紧凑、运行速度快及底层开发等方面Visaul Basic无法比拟的,但编写C++应用程序过长的调试和开发周期确实有点不适应当今的应用程序开发环境。

在Visaul Basic开发工具中提供了大量的控件(或称控制、组件)供编程人员使用,可以方便的利用这些组件中的属性、方法、语言等以事件驱动方式开发应用程序,还可以利用WINDOWS SDK中的API中的应用程序接口等工具开发应用程序。VB还自带一个控件开发软件包CDK,利用CDK可以开发自己需要的Controls 。在通讯问题中我们可以使用VB提供的通讯控件或调用WINDOWS API通讯函数。

二、 VB串行通讯

利用VB开发通信程序主要的方法有两种,一是利用VB本身提供的控件(CONTRALS),另一种方法是利用WINDOWS API应用程序接口,WINDOWS API 主要提供了三个动态连接库KERNEL.EXE、USER.EXE、GDI.EXE供开发人员调用,其中KERNEL.EXE 主要包括一些底层操作函数,完成一些资源管理、任务、内存等操作,USER.EXE包含了一些与WINDOWS管理有关的函数,如通讯、菜单、消息、光标、插入符、计时器以及绝大多数非显示函数,GDI.EXE图形设备接口库,主要内容为与设备输出有关的函数。和串口通讯有关系的函数BuilidCommDCB、ClearCommBreak、SetCommBreak、FlushComm、GetCommError、GetCommState、WriteComm、ReadComm、SetCommState、CloseComm等均在 \Windows\system 子目录下的USER.EXE动态连接库中,在VB调用之前应该先在全局变量定义处声明API通讯函数、定义常量。

在我们的实践中,用VB 控件实现通讯的方法比调用SDK的API动态连接库的方法更加方便、快捷,而且用较少的代码可以实现相同的功能,这就是用VB 控件实现通讯的优点所在,下面主要介绍一下利用VB 控件实现无线通讯的问题。

在VB的控件工具箱中,提供了一个使用非常方便的串行通讯控件MSComm,它全面的提供了使用RS-232串行通讯上层开发的所有细则,它既可以使用查询方式又可以使用事件驱动方式来完成串行通讯。

在MSCOMM控件中提供了一系列的编程要素,这些编程要素有属性、事件和函数,利用这些要素编程,可以实现几乎全部的串行通讯功能。在VB中提供了30多个属性、一个事件和两个函数,其中主要的属性为CommPort、Settings、PortOpen、InBufferSize、OutBufferSize、InBufferCount、OutBufferCount、Break、InputLen、Sthreshold、Rthreshold、RTSEnable、CommEvent、ParityReplace、NullDiscard等。

控件MSComm提供了一个事件OnComm,该事件可以截取串口的任何消息,转入事件处理程序。WINDOWS操作系统的运行机制为事件驱动,在VB编程中事件驱动方式同样是软件运行的主要方式之一,当没有事件发生时程序可能处于某一循环、等待或任务状态当事件发生时,程序转入事件处理程序。每个控件下都有一些事件供程序员使用,MSCOMM控件中OnComm事件是唯一的,OnComm可以扑获通讯时发生的串口事件和错误信息,当有串口事件或错误发生时,VB会立刻触发一个OnComm事件,程序就会自动转入OnComm事件处理程序中。CommEvent属性是OnComm事件的指示器,该属性在设计时不能使用,在程序运行时为只读,CommEvent 属性存有最近的事件或错误的数值代码,可以在程序中随时读取CommEvent 属性值来了解通讯的状况,OnComm事件是和CommEvent属性密切相关、一起使用,当任何一个OnComm 事件或错误发生

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号