采用目前最先进的非接触式ID卡技术,作为贵宾身份标签进行识别,减少了磁卡、接触式IC卡、条形码等识别率低、识别速度慢、寿命短的缺点。系统将贵宾卡分为待遇卡和积分卡两大类。待遇卡享受优惠价、积分、分满赠礼的待遇;而积分卡则享受积分、分段打折、分满赠礼的待遇。前者多用于有业务来往的单位,它开卡后,就享有优惠价格:后者则用于普通常客,多为认卡不认人,吸引贵宾的亲戚朋友前来消费,积分到一定数量时即可打折,这样增加常客人数。两者也可相互转换,积分卡积到一定分时可转为所对应的待遇卡。
四、RFID技术在系统中的具体应用
系统涉及到读取lD卡信息,RFlD系统通过阅读器的RS232接1:3与外部计算机串口连接,进行数据交换。在进行串13通信时采用Windows的API函数,Windows系统是将串1:3看做文件一样操作的。在Delphi串口通信中用到的windawsAPI函数主要包括:CreatefiIe(),用于打开串1:3:CIOSefiIe().用于关闭串口;GetCommState().用于取得串口的设置参数:SetCommState().用于设置串口参数,包括波特率、数据位、校验位与停止位;PurgeComm()用于清除串13上的缓冲区:ReadfiIe().用于取得串I:3中的数据;Writefile().用于将数据从串口送出:ClearCommError(),清除串口错误或取得串13信息。其主要代码如下:
//以下是RFID系统的部分源程序
procedureOpenComm:
var
CC:TCOMMCONFIG:
Temp:string
Buffer:array[0.256]ofchar:
begin
Temp:=CaM+lntToStr(pDataModuleDataModulelPort).//
选择所要打开的COM
StrPCopy(Buffer.Temp)
DataModule1hComm:=CreateFile(Buffer.GENERIC—READor
GENERIC—WRITE0nilOPEN—EXISTING00\//开CaM
if(DataModule1.hComm=INVALID_HANDLE—VALUE)thenbegin
//如果CaM未打开
MessageBox(0.打开通信端口错误,”,MB—OK);
DataModule1.hC0mm:=0:
exit:
end
GetCommState(DataModulelhc0mm.CCdcb)://得知目前
CaM的状态
CCdcbBaudRate:=CBR一9600://设置波特率为9600
CC.dcb.ByteSize:=8;//字节为8bit
CCdcbParity=NOPARITY1//ParityNoneCCdcb
StopBits:=ONESTOPBIT//1个Stopbit
ifnotSetCommState(DataModulelhComm.CC.dcb)thenbegin/
/设置COM的状态
MessageBox(0,通信端口设置错误Jfl“.”,MB—OK):
CloseHandle(DataModulelhComm):
DataModulelhCOmm:=0.
exit;
end:
end;
本文采用软件工程的方法运用Delphi7和SQLSERVER2000作为开发工具,实现了一个较好的基于RFID技术的贵宾管理系统。在系统的设计与实现中,解决了四个关键的问题:其一是设计了科学、合理、人性化的客户积分体系.较好地提供了个性化的会员消费、积分、返点等完善的会员管理解决方案其二通过事务处理编程技术解决了数据修改时相关表中数据的一致性和完整性的问题:其三是采用ADO数据库访问方式,解决了在客户量增大时系统的负载和访问速度问题其四是解决了RFlD与计算机的串口数据通信问题。从最终实现的系统来看.系统具有操作简单、界面友善、灵活性好安全性高、运行稳定等特点。