应用程序的建立以及读卡功能的实现.docx

上传人:b****5 文档编号:7657382 上传时间:2023-01-25 格式:DOCX 页数:18 大小:2.81MB
下载 相关 举报
应用程序的建立以及读卡功能的实现.docx_第1页
第1页 / 共18页
应用程序的建立以及读卡功能的实现.docx_第2页
第2页 / 共18页
应用程序的建立以及读卡功能的实现.docx_第3页
第3页 / 共18页
应用程序的建立以及读卡功能的实现.docx_第4页
第4页 / 共18页
应用程序的建立以及读卡功能的实现.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

应用程序的建立以及读卡功能的实现.docx

《应用程序的建立以及读卡功能的实现.docx》由会员分享,可在线阅读,更多相关《应用程序的建立以及读卡功能的实现.docx(18页珍藏版)》请在冰豆网上搜索。

应用程序的建立以及读卡功能的实现.docx

应用程序的建立以及读卡功能的实现

实验一应用程序的建立以及读卡功能的实现

实验目的:

设计开发一支可连接实验系统平台并且可以做读卡操作的应用程序。

掌握使用DLL的技能,通过调用DLL里面的函数,开发出实际应用程序软件,满足实际工程应用的需要。

实验内容:

1、使用VB6.0开发软件,设计开发出如图10.1应用程序界面:

图10.1

2、编写代码,运行程序能达到实验目的。

基本原理:

VB语言编程规范;DLL调用规范;

实验步骤:

一、启动VB6.0开发软件平台启动界面如图10.2,

图10.2

在启动界面里面选择标准EXE开始新建一个应用程序,进入窗体界面,在自己选定或新建的文件夹里面保存窗体,窗体取名为ISO15693_Reader.frm,工程名为ISO15693_Reader.vbp,窗体界面如图10.3:

图10.3

在右边属性栏里面命名窗体名称,修改如图10.4里面的两项属性,命名窗体为ISO15693_Reader窗体。

图10.4

现在开始添加界面内容,首先添加ComboBox控件,选中左边通用控件栏里面的ComboBox控件按下鼠标选定,然后在窗体左上方用按住鼠标左键勾画出来,修改右边属性栏里面的名称为cmdCOM,Text项为COM1,如图10.5所示:

图10.5

然后添加CommandButton,选中左边通用控件栏里面的CommandButton控件按下鼠标选定,方法类似添加ComboBox控件,添加到窗体上,修改右边属性栏里面的名称为cmdOpen,Caption项为Open,如图10.6所示:

图10.6

然后再添加标题为Closebutton的CommandButton,其方法同添加Openbutton,修改右边属性栏里面的名称为cmdClose,Caption项为Close。

然后添加CommandsFrame,选中左边通用控件栏里面的Frame控件按下鼠标选定,方法类似添加ComboBox控件,添加到窗体上,修改右边属性栏里面的名称为frmCMD,Caption项为Commands,如图10.7所示:

图10.7

然后再添加命名为Inventory的OptionButton,选中左边通用控件栏里面的OptionButton控件按下鼠标选定,方法类似添加ComboBox控件,添加到窗体上,修改右边属性栏里面的名称为optCMD,Caption项为Inventory,Value项为True,如图10.8所示:

图10.8

然后再添加标题为Runbutton的CommandButton,其方法同添加Openbutton,修改右边属性栏里面的名称为cmdRun,Caption项为Run,如图10.9所示:

图10.9

然后再添加标题为tagsinfo的Frame,其方法同添加标题为Commands的Frame,修改右边属性栏里面的名称为frmTagInf,Caption项为tagsinfo,如图10.10所示:

图10.10

然后添加标题为listTag的ListBox,选中左边通用控件栏里面的ListBox控件按下鼠标选定,方法类似添加ComboBox控件,添加到窗体上,修改右边属性栏里面的名称为listTag,如图10.11所示:

图10.11

然后再添加标题为Outputinfo的Frame,其方法同添加标题为Commands的Frame,修改右边属性栏里面的名称为frmOutInf,Caption项为Outputinfo,如图10.12所示:

图10.12

然后再添加标题为txtInfo的TextBox,选中左边通用控件栏里面的TextBox控件按下鼠标选定,方法类似添加ComboBox控件,添加到窗体上,修改右边属性栏里面的名称为txtInfo,如图10.13所示:

图10.13

至此,程序界面的工作,已经设计完成,下面开始代码部分的工作。

二、编写实验代码

首先,把ReadDLL.dll动态链接库文件复制到系统WINDOWS\system32目录里面。

然后在VB开发软件平台里面,添加Module,修改右边属性栏里面的名称为mdlDLL,并保存为mdlDLL.bas文件,如图10.14所示:

图10.14

在打开的mdlDLL.bas文件里面,声明需要用到动态链接库里面的相应函数。

1、

PublicDeclareFunctionSetComLib"ReadDLL.dll"(ByValm_sPortAsString,ByValBaudRateAsLong,ByValDatabitAsLong,ByValParityAsString,ByValstopbitAsString)AsLong

函数名:

(设置串口)SetCom

功能:

打开串口,可以设置串口号、波特率、数据位、奇偶校验位、停止位等。

参数说明:

Input:

m_sPor:

端口号

BaudRate:

波特率

Databite:

数据位

Parity:

奇偶校验

stopbit:

停止位

Output:

2、

PublicDeclareFunctionCloseComLib"ReadDLL.dll"()AsLong

函数名:

(关闭串口)CloseCom

功能:

关闭串口。

参数说明:

Input:

Output:

00:

串口被正确关闭,

01:

关闭串口出现错误

3、

PublicDeclareFunctionInventoryLib"ReadDLL.dll"(ByReftagUIDAsByte,ByValflagAs

Byte,ByRefnTagCountAsLong)AsLong

函数名:

(读UID)Inventory

功能:

读取单个或多个TAG的UID数据。

参数说明:

Input:

flag:

标志位设定,07表示读取多个TAG,27表示只读取单个TAG.

Tagcount:

标签个数。

tagUID:

标签Uid,按顺序排里,先高位,后低位。

均为16进制。

如:

tagUID[0-7]=“E005763826000700”

Output:

00,表示有标签,

01,表示无标签,

文件如图10.15所示:

图10.15

声明好需要用的函数后,就可以添加相应的动作事件,同时定义相关的变量和数组。

用鼠标左键双击窗体界面,进入窗体代码文件,如图10.16:

图10.16

首先定义一个变量数组,用于接收存放读到的电子标签UID数据,定义如下:

DimretByte(1000)AsByte(定义1000个字节的空间存放电子标签UID的数据。

然后,添加产生窗体时,需要进行一些初始化工作的代码,如下:

PrivateSubForm_Load()

DimiAsInteger

Fori=1To15

cmdCOM.AddItem"COM"&i

Next

EndSub

此段代码其作用是在程序生产窗体时,ComboBox下生产对应于串口号的15个串口编号,以供选择相应的串口。

程序文件如图10.17:

图10.17

然后点击右边工程下窗体里面的窗体文件,回到窗体界面,用鼠标左键双击窗体界面上的Openbutton,进入编写cmdOpen_Click()过程的代码。

PrivateSubcmdOpen_Click()

DimretAsInteger

ret=SetCom(cmdCOM.Text,115200,8,"NONE","1")

Ifret=0Then

cmdOpen.Enabled=False

EndIf

EndSub

代码首先定义一个整型变量:

ret用于保存设置串口SetCom函数的返回值。

设置串口为当前选择的端口号,波特率为115200,数据位为8,无奇偶校验,1位停止位。

如果此串口打开正确,Openbutton变成无效状态,在关闭这个串口之前,不能再次打开其它的串口。

此时代码文件如图10.18所示:

图10.18

同添加Openbutton的代码,按同样的方法添加Closebutton的代码如下:

PrivateSubcmdClose_Click()

DimretAsInteger

ret=CloseCom()

Ifret=0Then

cmdOpen.Enabled=True

EndIf

EndSub

关闭串口:

如果关闭成功,Openbutton变成有效状态,此时可以再次打开串口。

同样的方法添加Runbutton的代码如下:

PrivateSubcmdRun_Click()

DimlCountAsLong

DimstrInfoAsString

DimstrLogAsString

DimretAsLong

Dimi,j,kAsInteger

strLog=""

txtInfo.Text=""

IfoptCMD.Value=TrueThen

listTag.Clear

ret=Inventory(retByte(0),7,lCount)

Ifret=0Then

Fork=0TolCount-1

strInfo=""

Forj=0To7

strInfo=strInfo&Format(Hex(retByte(k*8+j)),"00")

Next

listTag.AddItemstrInfo

Next

EndIf

strLog=Convert(ret)

EndIf

txtInfo.Text=strLog

EndSub

首先定义了几个程序运行需要的变量:

lCount用来存储读到的电子标签数量的数据;

strInfo用来存储读到的电子标签UID的字符串数据;

strLog用来存储表示读电子标签UID操作状态的字符串数据;

ret用来存储表示读电子标签UID操作状态的长整型数据;

i,j,k为临时计数变量;

然后把字符串strLog里面的数清空,把txtInfo文本框里面的数据清空;

如果optCMDOptionButton为选中状态,则先把listTag里面的数据清空,然后调用读取多个标签的指令,读取电子标签,读到的标签数量存在lCount里面,标签的UID数据,存于retByte数组里面,并把读取操作的状态赋值到ret变量。

然后,再根据ret变量的值,按单个标签的UID8个字节的数据提取UID数据,并转换为字符串数据,在listTag里面显示出来,根据lCount变量的值,按同样的方法和数据格式把所有标签的UID数据都提取出来转换为字符串数据显示出来,同时,把操作状态也转换为字符串数据,在txtInfo文本框里显示出来。

这部分的代码文件如图10.19所示:

图10.19

其中Convert函数代码如下:

PublicFunctionConvert(svalAsLong)AsString

Ifsval=1Then

Convert="ERROR"

Else

Convert="Success"

EndIf

EndFunction

至此本实验的代码部分也完成了,然后就可以点击菜单栏下边的运行命令按钮,开始执行程序,如图10.20所示:

图10.20

连接好实验系统,给实验系统上电,等待系统初始化完成,蜂鸣器响过后,选择相应的串口,点击Open打开串口,和实验系统通讯上,如图10.21所示:

图10.21

在实验系统的天线区,放置标签,点击Run按钮,开始读取电子标签的操作,如图10.22-10.23所示:

图10.22

上图为天线区放置3个标签的读取结果图。

图10.23

上图为天线区没有放置标签的读取结果图。

对比上面两张图片的区别,注意画上红圈的地方。

最后,通过VB软件文件菜单里面的生成ISO15693_Reader.exe命令,如图10.24

所示,

图10.24

就可以生成一个可双击直接运行的EXE应用程序。

实验总结:

在RFID实际工程应用上,RFID读写器厂商在提供读写器的同时,会提供给系统集成商或最终用户与读写器配套的DLL文件和相应的h头文件,以及一些说明文件,然后需要系统集成商或最终用户的工程技术人员,编写相应的应用程序,使读写器按照需要进行工作,完整整个系统的功能,这时就要求工程技术人员能够通过调用DLL文件里面的相关函数,控制读写器,完成读写器读写卡工作。

通过本实验,实验人员能完全掌握整个VB应用程序的开发流程和相应的技能,DLL动态链接库的调用、声明方法,满足将来实际工作的需要。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1