摘要:4软件设计与实现4.1软件设计RFID中间件标准化划分为5部分:底层数据通信接口组件、设备网络接口组件、设备参数接口组件、对标签读写操作接口组件和数据库接口组件。各接口组件既相对独立,又密切联系。其中,本中间件的操作标签是符合ISO/IEC15693协议的电子标签。底层数据通信接口组件:负责数据通信的链路层和物理层,是读写器
4 软件设计与实现
4.1 软件设计
RFID中间件标准化划分为5部分: 底层数据通信接口组件、设备网络接口组件、设备参数接口组件、对标签读写操作接口组件和数据库接口组件。各接口组件既相对独立,又密切联系。其中,本中间件的操作标签是符合ISO/IEC 15693协议的电子标签。
底层数据通信接口组件: 负责数据通信的链路层和物理层,是读写器与应用软件通信的物理基础;在应用逻辑上,与应用通信协议无关。所以,底层数据通信应独立设计相对固定的接口,与高层应用分离。
设备网络接口组件: 为客户提供连接通信链路上的RFID读写器信息。
设备参数接口组件: 提供更改读写器工作参数的接口,实现设备管理功能。
对标签读写操作接口组件:为读写器实时工作时提供与计算机通信的接口,两者在用户和使用功能上相对对立,也可独立设计。
数据库接口组件: 实现对后台数据库的操作,为RFID中间件的开发软件提供标准的函数接口。
按照模块的应用层次和应用对象的不同独立进行设计,既降低了系统的复杂性,同时又能提高系统的稳定性和重用性。
4.2 软件实现
软件设计在Windows环境下,利用Visual C++ 6.0开发RFID中间件,实现读写器与计算机之间的企业局域网的通信;后台数据库选用SQL Server 2000,接口函数最后被封装成dll文件。
DLLIMPORTLONG OpenConnect(int nComType,char*Param)//打开一个通信连接
DLLIMPORTLONG CloseConnect(long hHandle)//关闭通信连接
DLLIMPORTLONG WriteConnect(long hHandle,
BYTE *byBuffer, int nSize, const char *strToIP = NULL, int nToPort = 0,BOOL bBroadcast = FALSE)//从通信连接发送数据
DLLIMPORTLONG ReadConnect(long hHandle,
BYTE *byBuffer,int nSize, char * chIpFrom = NULL,
int *nPortFrom = NULL)//从通信连接读取接收到的数据
long DetectAllDevice(int &iDevCnt, char *chData)//侦测网络中所有基于TCPIP相连接的设备(或者TCP/IPRS485转换器),返回网络中网络设备的网络配置信息
DLLEXPORT SetDeviceParameters(char* strDevMacAddr, char *strNewMacAddr,char *strDevIP, char *strSubnet, char *strGateWay,char *strRemoteIP, int remotePort,
int localPort,long baudRate, BYTE bParity, BYTE bProtocol)//设置设备网络配置信息
BOOL CPrr8152Deal::ReadMultiBlocks(long hConnect, BYTE byAddr, BYTE byMode, char *chUID, BYTE byBeginBlock, BYTE byBlocks, BYTE &byDB_N, BYTE &byDB_Size, char *chData, BYTE byDataFormat)//读取标签的多个数据块
BOOL CPrr8152Deal::WriteMultiBlocks(long hConnect, BYTE byAddr, BYTE byMode, char *chUID, BYTE byBeginBlock,BYTE byBlocks, BYTE byDBSize, char *chWriteData, BYTE byDataFormat)// 写标签的多个数据块[1] [2] [3] [4] [5]