内容发布更新时间 : 2024/12/27 18:19:53星期一 下面是文章的全部内容请认真阅读。
WOSA/XFS及SP综述
前言:
写给ATM硬件工程师和ATM软件入门人员的无言歌,希望对工作有所帮助,能够少花些时间在解决相关问题上,多些时间做自己喜欢做的事情。
正文:
随着符合WOSA/XFS规范的跨平台ATMC软件日益铺开,确实有很多人需要稍微深入的知道一些相关概念,但没有这样的文章来介绍,并且可能在很长的时间内,都不会有这种文章,所以就出现了这篇你现在所看到文章。
该如何组织内容,其实是个比较难办的问题,只能走到哪是哪了,希望能在里面捡到一些珍珠,如果有的话。
我们先从WOSA/XFS的历史来简单的看一下,搞清楚WOSA/XFS的历史也有助于理解它。
WOSA/XFS规范目前的版本有1.0、1.11、2.0、3.0、3.01、3.02、3.03一共7个版本,其中常说谁的SP(Service Provider)符合WOSA/XFS2.0还是3.0规范,就是指上面提到的WOSA/XFS本身的规范版本。如果你见到某些厂家的SP版本并没有上面提到的几个版本,那说明厂家的SP版本是自己厂家内部定的版本号,与WOSA/XFS规范的版本没有必然联系,但是厂家的SP版本一定可以对应到符合上面几个版本中的一个版本。目前最新的是WOSA/XFS 3.03规范。
对于WOSA/XFS,XFS Manager是一定要提到的。我们简单看看WOSA/XFS的架构,这个大家应该都比较熟悉了。中间是XFS Manager,上面是ATMC,下面是SP,其中XFS Manager对上面有API(Application Programming Interface)接口,对下面有SPI(Service Provider Interface)接口。
XFS Manager是WOSA/XFS规范的核心,它规定了API和SPI接口,从而达到统一上面的ATMC和下面的SP的功能,ATM软件能够实现所谓的跨平台是靠它来主要实现的。
XFS Manager实际上是三个DLL组成,在系统目录\\Windows\\System32下面,分别是MSXFS.DLL(基本的XFS API and SPI函数,在Include目录下的XFSAPI.H和XFSSPI.H中定义)、XFS_SUPP.DLL(一些支持函数,在Include目录下的 XFSADMIN.H中定义)、XFS_CONF.DLL(配置函数,在Include目录下的Xfsconf.h中定义)。
我们上面提到的7个版本,可以通过找到MSXFS.DLL文件,然后右键查看其文件属性,里面有个版本号,从而就知道某台机器运行的SP符合哪个版本的WOSA/XFS规范,这是个判断WOSA/XFS版本的一个有效办法。
XFS Manager的这三个DLL是公开免费使用的,在WOSA/XFS 2.0以前,XFS Manager是由微软公司开发的,从WOSA/XFS 3.0以后转到CEN/XFS来开发,实际上是NEXUS公司做为主导在维护开发。如果是CEN/XFS的会员,则可以获得XFS Manager的源代码,目前几大厂商都是会员,所以基本都有XFS Manager的源代码。
我们总是在说WOSA/XFS,那到底它包含什么内容?
一、一组文档,可以认为是个软件概要设计说明书,只是设计,没有代码实现 二、上面提到的XFS Manager的三个DLL
三、每个厂商按照文档实现的一组DLL,叫过SP
前两个先不管,我们看第三个,这个是我们常见的。WOSA/XFS规定SP必须是基于DLL形式的,不管你做成什么样子,对于XFS Manager向下看,必须是看到导出SPI接口的SP DLL。
下面看看跟WOSA/XFS有关的注册表配置,对于WOSA/XFS2.0,所有的配置在HKEY_CLASSES_ROOT\\WOSA/XFS_ROOT,对于WOSA/XFS3.0,配置分到两个地方,HKEY_LOCAL_MACHINE\\SOFTWARE\\XFS和
HKEY_USERS\\.DEFAULT\\XFS。WOSA/XFS3.0把注册表分为两个部分,是考虑安全性,不同的登录用户看到的设备可能是不一样的。
不管版本的差别,注册表主要的内容有三项,一项是XFS_MANAGER,属于XFS Manager本身的配置项;一项是LOGICAL_SERVICES,是给ATMC应用用的,区别每种设备;一项是SERVICE_PROVIDERS,具体对应到某个硬件设备;另外一般有PHYSICAL_SERVICES,存放厂商的硬件配置。对于具体的每一项的说明,请参考文档《cwa14050-01-2000-Nov.pdf》的22页到25页内容。建议看看这份文档,对于从事ATM工作有很大帮助,它的细节可以不用管,只要知道一些大概的概念即可。
一般一个厂家的SP,只需要十几个文件即可,内容比较少,但是象NCR、Diebold等的SP,安装起来会花上一些时间,因为里面包含了硬件诊断工具、配置工具等实际上跟SP没有关系的东西。
因为SP的接口是统一的,所以我们会看到很多厂家提供的有XFS测试工具,能够测试多个厂家的SP,比如Wincor的WosaTest,Diebold的XTG等,这些工具可以互换使用的,反正接口都是符合一个标准的。
因为很多硬件工程师可能需要用到这些SP测试工具,这里简单说一下怎样使用这些工具,当然,如果想完全使用该工具的每个功能,不仅仅需要测试工具本身的说明,熟悉WOSA/XFS的规范是必要的,所以基本上能操作即可。
一个完整的SP测试操作如下(下面的操作一般可以在SP测试工具的菜单或者工具栏中直接找到):
一、在SP测试工具中调用WFSStartUp, 目的是把整个SP的环境启起来,包
括把XFS Manager装载到测试工具的进程空间中。
二、在SP测试工具中调用WFSOpen,目的是打开某个硬件模块,SP测试工具
一般一次只能打开一种类型的硬件设备。其中要注意的是有个参数叫过Logical Name“逻辑名”,这个一定要填对,一般的厂家都有固定的习惯,比如Diebold会叫NT_IDC、NT_CDM等,打开哪个设备就填上对应的名字。所有可能的名字在上面提到的注册表项LOGICAL_SERVICES下面,如果不清楚,你可以看看哪个名字象你要测试的设备,填上这个名字一般错不了。
三、在SP测试工具中调用WFSRegister,目的是注册一下,以便能够接收到
SP传上来的事件。
四、在SP测试工具中调用WFSLock,这步基本可以省略。目的是锁定设备,
主要是防止同时还有其他程序在访问该设备,达到独占设备的目的。 五、然后调用WFSGetInfo来获取设备的信息,相当于Read设备;也可以调用
WFSExecute来对设备发命令,相当于Write设备,这两个是一个对应。基本所有的命令都是通过这两个接口来完成的,其他步骤都是准备工作而已。对于WFSGetInfo和WFSExecute是各自包含一组命令,可以选择单独的命令来执行。至于每个命令的意思,要看WOSA/XFS的那些规范文档了,每个命令都有详细的描述。
六、所有测试完成后,调用WFSUnLock,用来解锁,如果第四步有锁定设
备。
七、在SP测试工具中调用WFSUnRegister,目的是反注册一下,表明不再接收
SP传上来的事件了。
八、在SP测试工具中调用WFSClose,目的是关闭设备,比如关闭串口通讯
等。
九、在SP测试工具中调用WFSCleanUp,目的是释放整个SP的运行环境,把
使用的相关文件和资源全部恢复。
至此,一个完整的SP测试流程已经完成了,可以经过这几步对设备进行测试,多熟悉下一个SP测试工具,就会明白每个命令是干什么的了。对于硬件工程师,如果在知道厂商硬件诊断工具之外,再知道怎样操作这个,对于诊断系统的问题也是有很大帮助的,尤其是在运行跨平台软件的机器上。目前最好的SP测试工具应该是Wincor的测试工具,使用的比较广泛,其他厂商的各有特点。