欧洲标准化委员会 专题协定
CWA 15748-9
2008年7月
ICS 35.240.50
中文版
金融服务扩展(XFS)接口说明(3.10版)第九部分:现金取款设备类接口;
程序员参考
此欧洲标准化委员会专题协定(CWA)由相关方代表专题研究组起草并通过,该专题研究组的与会成员在本协定前言部分中列出。
该专题研究组编制本协定的正式会程已经欧洲标准化委员会的各会员国背书,但欧洲标准化委员会的各会员国和欧洲标准化委员会管理中心均不对本CWA的技术性内容或与其他标准或法规可能存在的矛盾负责。
不得以任何形式将本CWA视作由欧洲标准化委员会及其成员编制的正式标准。 本CWA可以公开用作欧洲标准化委员会的会员国标准化组织的参考文件。
欧洲标准化委员会的成员包括下列国家的国家标准化组织:奥地利、比利时、保加利亚、塞浦路斯、捷克共和国、丹麦、爱沙尼亚、芬兰、法国、德国、希腊、匈牙利、冰岛、爱尔兰、意大利、拉脱维亚、立陶宛、卢森堡、马尔他、荷兰、挪威、波兰、葡萄牙、罗马尼亚、斯洛伐克、斯洛文尼亚、西班牙、瑞典、瑞士、和英国。
欧洲标准化委员会
COMITé EUROPéEN DE NORMALISATION EUROP?ISCHES KOMITEE FüR NORMUNG
管理中心地址:布鲁塞尔斯达沙特街36 B-1050(rue de Stassart, 36 B-1050 Brussels)
版权所有? 2008欧洲标准化委员会,为欧洲标准化委员会会员国在全球范围内保留以任何形式和方法进行利用的所有权利。
参考号:CWA 15748-5:2008 D/E/F
Page 2
CWA 15748-5:2008
目录
前言 ...................................................................................................................................................................................... 4
1. 绪论 ................................................................................................................................................................................. 7
1.1 颁布3.10版本的背景 ...................................................................................................................................... 7 1.2 XFS 服务-特殊程序 ........................................................................................................................................... 7
2. 现金取款设备 ................................................................................................................................................................. 8
3. 参考资料 ......................................................................................................................................................................... 9
4. 信息命令 ....................................................................................................................................................................... 10
4.1 WFS_INF_CDM_STATUS ........................................................................................................................... 10 4.2 WFS_INF_CDM_CAPABILITIES ............................................................................................................. 14 4.3 WFS_INF_CDM_CASH_UNIT_INFO ....................................................................................................... 18 4.4 WFS_INF_CDM_TELLER_INFO ............................................................................................................. 25 4.5 WFS_INF_CDM_CURRENCY_EXP ......................................................................................................... 27 4.6 WFS_INF_CDM_MIX_TYPES................................................................................................................... 28 4.7 WFS_INF_CDM_MIX_TABLE .................................................................................................................. 29 4.8 WFS_INF_CDM_PRESENT_STATUS ...................................................................................................... 30
5. 执行命令 ....................................................................................................................................................................... 32
5.1 WFS_CMD_CDM_DENOMINATE ........................................................................................................... 32 5.2 WFS_CMD_CDM_DISPENSE ................................................................................................................... 35 5.3 WFS_CMD_CDM_COUNT......................................................................................................................... 38 5.4 WFS_CMD_CDM_PRESENT..................................................................................................................... 41 5.5 WFS_CMD_CDM_REJECT ....................................................................................................................... 42 5.6 WFS_CMD_CDM_RETRACT ................................................................................................................... 43 5.7 WFS_CMD_CDM_OPEN_SHUTTER ....................................................................................................... 45 5.8 WFS_CMD_CDM_CLOSE_SHUTTER .................................................................................................... 46 5.9 WFS_CMD_CDM_SET_TELLER_INFO ................................................................................................. 47 5.10 WFS_CMD_CDM_SET_CASH_UNIT_INFO .......................................................................................... 48 5.11 WFS_CMD_CDM_START_EXCHANGE ................................................................................................. 50 5.12 WFS_CMD_CDM_END_EXCHANGE...................................................................................................... 52 5.13 WFS_CMD_CDM_OPEN_SAFE_DOOR .................................................................................................. 53 5.14 WFS_CMD_CDM_CALIBRATE_CASH_UNIT ....................................................................................... 54 5.15 WFS_CMD_CDM_SET_MIX_TABLE ...................................................................................................... 56 5.16 WFS_CMD_CDM_RESET .......................................................................................................................... 57 5.17 WFS_CMD_CDM_TEST_CASH_UNITS .................................................................................................. 59 5.18 WFS_CMD_CDM_SET_GUIDANCE_LIGH ........................................................................................... 61 5.19 WFS_CMD_CDM_POWER_SAVE_CONTROL ...................................................................................... 62 5.20 WFS_CMD_CDM_PREPARE_DISPENSE ............................................................................................... 63
Page 3
CWA 15748-5:2008
6. 事件 ............................................................................................................................................................................... 64
6.1 WFS_SRVE_CDM_SAFEDOOROPEN ..................................................................................................... 64 6.2 WFS_SRVE_CDM_SAFEDOORCLOSED ............................................................................................... 65 6.3 WFS_USRE_CDM_CASHUNITTHRESHOLD ........................................................................................ 66 6.4 WFS_SRVE_CDM_CASHUNITINFOCHANGED ................................................................................... 67 6.5 WFS_SRVE_CDM_TELLERINFOCHANGED ....................................................................................... 68 6.6 WFS_EXEE_CDM_DELAYEDDISPENSE ............................................................................................... 69 6.7 WFS_EXEE_CDM_STARTDISPENSE ..................................................................................................... 70 6.8 WFS_EXEE_CDM_CASHUNITERROR .................................................................................................. 71 6.9 WFS_SRVE_CDM_ITEMSTAKEN ........................................................................................................... 72 6.10 WFS_SRVE_CDM_COUNTS_CHANGED ............................................................................................... 73 6.11 WFS_EXEE_CDM_PARTIALDISPENSE ................................................................................................. 74 6.12 WFS_EXEE_CDM_SUBDISPENSEOK .................................................................................................... 75 6.13 WFS_EXEE_CDM_INCOMPLETEDISPENSE ...................................................................................... 76 6.14 WFS_EXEE_CDM_NOTEERROR ............................................................................................................ 77 6.15 WFS_SRVE_CDM_ITEMSPRESENTED ................................................................................................ 78 6.16 WFS_SRVE_CDM_MEDIADETECTED .................................................................................................. 79 6.17 WFS_EXEE_CDM_INPUT_P6 .................................................................................................................. 80 6.18 WFS_SRVE_CDM_DEVICEPOSITION ................................................................................................... 81 6.19 WFS_SRVE_CDM_POWER_SAVE_CHANGE ........................................................................................... 82
7. 单步取款命令流程 ....................................................................................................................................................... 83
8. 钞箱激活规则 ............................................................................................................................................................... 86
9. C-头文件 ........................................................................................................................................................................ 87
Page 4
CWA 15748-5:2008
前言
本CWA是XFS接口说明的3.10版。
欧洲标准化委员会/信息系统标准化委员会(CEN/ISSS)XFS专题研究组召集了供应商、银行和其他金融服务公司参与研讨。可以从CEN/ISSS秘书处获得参与该专题研究组并给予本CWA支持的公司名录。
本CWA于2007年11月29日经XFS专题研究组正式批准通过。欧洲标准化委员会/信息系统标准化委员会(CEN/ISSS)XFS专题研究组将持续对该规范进行评审和提出意见。因此,以后还会适时发行此CWA规范的修订版本,更新版本将取代本3.10版。
发行的CWA由以下多个部分组成:
第1部分:应用程序编程接口(API) – 服务提供程序接口(SPI)–程序员参考 第2部分:服务分类说明–程序员参考
第3部分:打印机和扫描仪设备类接口 – 程序员参考 第4部分:身份证件识别设备类接口 – 程序员参考 第5部分:现金取款设备类接口 – 程序员参考 第6部分:PIN 键盘设备类接口 – 程序员参考
第7部分:支票读取器/扫描设备类接口 – 程序员参考 第8部分:存放设备类接口 – 程序员参考
第9部分:文本终端单元设备类接口 – 程序员参考
第10部分:传感器和指示器单元设备类接口 – 程序员参考 第11部分:由供应商依赖模式设备类接口 – 程序员参考 第12部分:摄像头设备类接口 – 程序员参考 第13部分:报警设备类接口 – 程序员参考
第14部分:信用卡凸字识别单元设备类接口 – 程序员参考 第15部分:现金存入设备类接口 – 程序员参考 第16部分:发卡机设备类接口 – 程序员参考 第17部分:条形码读取设备类接口 – 程序员参考 第18部分:物品处理单元设备类接口 – 程序员参考 第19部分到第28部分:保留将来备用。
第29部分到第47部分是对本CWA的可选补充内容。这些部分定义了SNMP标准和服务提供程序输出统计信息的状态设置的整合。
第29部分:XFS MIB结构和SNMP扩展 – 程序员参考 第30部分:XFS MIB设备专用定义 – 打印机类 第31部分:XFS MIB设备专用定义 – ID卡设备类 第32部分:XFS MIB设备专用定义 – 现金取款设备类 第33部分:XFS MIB设备专用定义 – PIN 键盘设备类
第34部分:XFS MIB设备专用定义 – 支票读取器/扫描设备类 第35部分:XFS MIB设备专用定义 – 存放设备类
第36部分:XFS MIB设备专用定义 – 文本终端单元设备类
第37部分:XFS MIB设备专用定义 – 传感器和指示器单元设备类 第38部分:XFS MIB设备专用定义 – 摄像头设备类 第39部分:XFS MIB设备专用定义 – 报警设备类
第40部分:XFS MIB设备专用定义 – 信用卡凸字识别系统类
Page 5
CWA 15748-5:2008
第41部分:XFS MIB设备专用定义 – 现金存入设备类 第42部分:保留将来备用。
第43部分:XFS MIB设备专用定义 – 供应商依赖模式设备类 第44部分:XFS MIB应用管理
第45部分:XFS MIB设备专用定义 – 发卡机设备类 第46部分:XFS MIB设备专用定义 – 条形码读取设备类 第47部分:XFS MIB设备专用定义 – 物品处理单元设备类 第48部分到第60部分保留将来备用。
第61部分:应用程序编程接口(API) – 服务提供程序接口(SPI) – 3.10版(本CWA)移植3.0版(CWA 14050) –
程序员参考 第62部分:打印机设备类接口 – 3.10版(本CWA)移植3.0版(CWA 14050) – 程序员参考 第63部分:身份证识别设备类接口 – 3.10版(本CWA)移植3.02版(CWA 14050) – 程序员参考 第64部分:现金取款设备类接口 – 3.10版(本CWA)移植3.0版(CWA 14050) – 程序员参考 第65部分:PIN键盘设备类接口 – 3.10版(本CWA)移植3.03版(CWA 14050) – 程序员参考 第66部分:支票读取器/扫描设备类接口 – 3.10版(本CWA)移植3.0版(CWA 14050) – 程序员参考 第67部分:存款设备类接口 – 3.10版(本CWA)移植3.0版(CWA 14050) – 程序员参考 第68部分:文本终端单元设备类接口 – 3.10版(本CWA)移植3.0版(CWA 14050) – 程序员参考 第69部分:传感器和指示器单元设备类接口 – 3.10版(本CWA)移植3.01版(CWA 14050) – 程序员参考 第70部分:供应商依赖模式设备类接口 – 3.10版(本CWA)移植3.0版(CWA 14050) – 程序员参考 第71部分:摄像头设备类接口 – 3.10版(本CWA)移植3.0版(CWA 14050) – 程序员参考 第72部分:报警设备类接口 – 3.10版(本CWA)移植3.0版(CWA 14050) – 程序员参考
第73部分:信用卡凸字识别设备类接口 – 3.10版(本CWA)移植3.0版(CWA 14050) – 程序员参考 第74部分:现金存入设备类接口 – 3.10版(本CWA)移植3.02版(CWA 14050) – 程序员参考
除了上述程序员参考规范外,本CWA的读者还应参考本文的补充性文件——《版本注释》。《版本注释》包括对CWA规范的解释和说明,而非要求进行功能变更。可以从http://www.cen.eu/isss/Workshop/XFS上找到现行的《版本注释》版本。
该文件中的信息代表该主题研究组截止到发行之日对其所包含的问题的现有见解。仅供参考,可能对其进行更改,恕不另行通知。CEN/ISSS不对该文件做任何明示或默示保证。
本CWA可以公开用作欧洲标准化委员会的会员国标准化组织的参考文件:AENOR、AFNOR、ASRO、BDS、BSI、CSNI、CYS、DIN、DS、ELOT、EVS、IBN、IPQ、IST、LVS、LST、MSA、MSZT、NEN、NSAI、ON、PKN、SEE、SIS、SIST、SFS、SN、SNV、SUTN和UNI。
欢迎用户就CWA提出意见和建议,如有这些意见和建议请联系欧洲标准化委员会管理中心。
Page 6
CWA 15748-5:2008
修订历史: 1.0 1.11 1993年5月24日 1995年2月3日 API和SPI规范的最初版本 为API/SPI和服务类别定义分别编制单独规范;而且进行了更新。 2.0 3.0 1996年11月11日 2000年10月18日 发行更新版本,其中包括自助服务环境。 详细情况见日期为2000年10月18日的《CWA14050-16 API/SPI文件移植2.0版生成3.0版,1.00修订版》。 3.10 2007年11月29日 有关变更详情,请见《CWA 15748-61:2007 API/SPI移植3.0版(见CWA14050)生成3.10版》。
Page 7
CWA 15748-5:2008
1. 绪论
1.1 颁布3.10版本的背景
CEN/ISSS XFS专题研究组旨在推动规范的制定,以清晰明确地定义金融周边设备的多供应商软件接口。金融服务扩展(XFS)说明是经欧洲标准化委员会/信息系统标准化委员会(CEN/ISSS)专题研究组环境下编制的。CEN/ISSS专题研究组旨在就某一事项在欧洲范围内达成一致意见,形成可以发行的欧洲标准化委员会专题协定(CWA)。 CEN/ISSS XFS专题研究组鼓励银行和供应商能够积极参与工业标准的制定。CEN/ISSS XFS专题研究组通过下设的研究小组以电子方式针对议题进行合作,并且每季度召开一次例会。
3.10版XFS规范的制定以C API为基础,坚持以保护现有应用的技术投入为承诺。一系列因素促成了XFS规范这个版本的发行。
技术的改进要求对现有规范的范围进行扩展,使该规范范围覆盖新设备,如:条形码读取、发卡机和物品处理单元。 此外,还有通过实施经验和附加要求,带来的对规范现已覆盖的设备功能和能力的扩展压力。
1.2 XFS 服务-特殊程序
特殊程序由它们各自的特殊服务命令和相关的数据结构,错误码,信息等构成。这些特殊命令用来请求特定于一个或多个类别服务驱动的函数,由于不通用于全部的服务驱动,因此不包括在通用的函数或管理API函数中。
当一个特殊服务命令通用于两个或更多服务驱动时,此令的语法在所有的服务中要尽可能类似,因为XFS的一个主要目标是指定各种服务的功能代码和结构。例如,利用WFSExecute函数,从不同服务所读取的各种数据命令将尽可能的在语意和数据结构上相似。
通常,某一服务类型的特殊命令集被定义为某特殊能力的扩展集,它很可能由该服务类型的研发者提供。因而任何特定读卡器,通常只支持一种指定命令系列的子集。
在以下三种情况下,服务驱动可能会收到它不支持的特殊服务的命令:
XFS指定书为服务驱动的类别定义了性能要求,然而厂商的特定服务工具却不支持它,而且不受支持的性能未被考虑为此服务的基本性能。在此种情况中,服务驱动将返回一个成功完成的消息,但实际并不运转。一个实例便是,应用程序请求开启存折打印机的控制指示灯,服务驱动认可此命令,但由于存折打印机的管理不包括这个指示灯,服务驱动将不运做,并给用程序传回一个成功完成申请的消息。
XFS指定书为服务驱动的类别定义了性能要求,然而厂商的特定服务工具却不支持它,而且不受支持的性能不被考虑为此服务的基本性能。在此种情况中,服务驱动将返回一个成功完成的消息,但实际并不运转。一个实例便是,应用程序请求现金取款器分配硬币,服务驱动认可此命令,但由于现金取款器只能管理钞票取款,则将返回此请求为错误。
XFS指定书没有为服务驱动的类别定义性能要求。在此种情况中,将给发出调用的应用程序传回一个WFS_ERR_INVALID_COMMAND错误代码。
此种设计允许服务能在一定的范围内使用应用程序,为它们的服务类型所定义的函数提供不同的子集。应用程序能够使用WFSGetInfo 和 WFSAsyncGetInfo命令来查询它将使用的服务的性能,并相应地对自己的动作做出调整;或者它们可使用函数,然后再对返回的WFS_ERR_UNSUPP_
COMMAND错误代码做出相应处理,从而决定如何使用此服务。
Page 8
CWA 15748-5:2008
2. 现金取款设备
此规范描述完整的现金取款模块(CDM)SP功能。定义了SP可以用WFSGetInfo, WFSAsyncGetInfo,WFSExecute 和WFSAsyncExecute 函数发出的特殊服务命令。
经过停电,打开会话,关闭会话和系统复位的固定值将保持不变。
此规范包含钞币的分发。钞币被定义为任何可以被分配的媒介,包括优惠卷,文档,纸币和硬币。然而,如果硬币和纸币同时被分配,不同的SP必须彼此有效。
所有的货币参数在此规范中被表现为最小分配单元数,在WFS_INF_CDM_CURRENCY_EXP命令的描述中有相关的定义(参见第4.5节)。
CDM的两种类型:自助服务CDM和柜员机CDM。自助服务CDM操作在自动环境中,柜员机CDM需要依靠操作者提示。下列命令提供的功能仅适用于柜员机CDM:
WFS_CMD_CDM_SET_TELLER_INFO WFS_INF_CDM_TELLER_INFO
CDM可能是包含了现金存款模块(CIM)的组合设备的一部份。这种CIM/CDM的组合在“现金循环设备”中有被提及。关于CIM的更多信息请参考备注三。
在现金循环设备中,如果钞箱激活被请求在两者共同接口之上,激活操作不能同时执行。一个接口的激活操作必须在另一个接口的激活操作之后(WFS_CMD_CDM_END_EXCHANGE必须完成)开始进行。WFS_ERR_CDM_EXCHANGEACTIVE错误代码将在此正确顺序没有被执行时返回。
CIM接口能被使用于循环设备上所有的激活操作。CIM接口应该在设备是拥有多个币种/面额的循环箱时被使用(包括相同面额的多种纸币)。
如果CIM接口的操作影响到通过CDM接口的钞箱计数,将发送出WFS_SRVE_CDM_COUNTS_CHANGED事件。
CIM接口的下列命令可能影响到CDM计数:
WFS_CMD_CIM_CASH_IN
WFS_CMD_CIM_CASH_IN_ROLLBACK WFS_CMD_CIM_RETRACT
WFS_CMD_CIM_SET_CASH_IN_UNIT_INFO WFS_CMD_CIM_END_EXCHANGE WFS_CMD_CIM_RESET
Page 9
CWA 15748-5:2008
3. 参考资料
1. XFS 应用程序接口(API), 服务提供接口(SPI),程序员参考3.10版 2. ISO 4217 位于:http://www.iso.org 3. XFS 存款模块设备接口类,程序员参考3.10版
Page 10
CWA 15748-5:2008
4. 信息命令
4.1 WFS_INF_CDM_STATUS
描述: 此命令用于获取CDM的状态。它也返回厂商特殊状态信息。 输入参数: 无
输出参数: LPWFSCDMSTATUS lpStatus;
typedef struct _wfs_cdm_status {
WORD fwDevice; WORD fwSafeDoor; WORD fwDispenser;
WORD fwIntermediateStacker; LPWFSCDMOUTPOS *lppPositions; LPSTR lpszExtra;
DWORD dwGuidLights[WFS_CDM_GUIDLIGHTS_SIZE]; WORD wDevicePosition;
USHORT usPowerSaveRecoveryTime; } WFSCDMSTATUS, *LPWFSCDMSTATUS;
fwDevice
CDM所提供的状态。然而,fwDevice的WFS_CDM_DEVONLINE状态不是取款实现的唯一前提,fwDispenser参数的值也必须有效。在某些版本中,保险箱(fwSafeDoor)的状态也需要考虑。CDM的状态将会是下列值之一: 值
WFS_CDM_DEVONLINE WFS_CDM_DEVOFFLINE WFS_CDM_DEVPOWEROFF WFS_CDM_DEVNODEVICE WFS_CDM_DEVHWERROR WFS_CDM_DEVUSERERROR WFS_CDM_DEVBUSY
WFS_CDM_DEVFRAUDATTEMPT
fwSafeDoor 保险箱提供的状态。此参数将会是下列值之一: 值
WFS_CDM_DOORNOTSUPPORTED WFS_CDM_DOOROPEN WFS_CDM_DOORCLOSED WFS_CDM_DOORUNKNOWN
fwDispenser
提供取款机的逻辑钞箱状态。此参数将会是下列值之一:
涵义
设备没有保险箱或箱门状态报告不被支持。 保险箱打开状态。 保险箱关闭状态。
由于硬件故障或其他情况,箱门状态不能够被确定。 涵义
设备在线。当取款机存在并操作时被返回。
设备离线。(例如管理员按动开关或拉出设备使设备脱机) 设备电源关闭或实际上未接通电源。
无此设备。比如,该类型的自助银行不包含这样的设备或内部没有配置这样的设备
由于硬件错误导致设备无法运行。 设备存在,但人为阻止了设备运行。 设备繁忙,此时无法处理执行命令。 设备存在,但已侦测到一个欺骗尝试。
Page 11
CWA 15748-5:2008
值
WFS_CDM_DISPOK WFS_CDM_DISPCUSTATE WFS_CDM_DISPCUSTOP
涵义
所有钞箱状态正常。
取款机工作正常。一个或者多个钞箱处于将空,空或关闭状态。交易可以通过至少一个钞箱正常进行。
由于钞箱故障无法正常取款。取款机工作正常,但所有的钞箱都处于空或关闭状态,使得交易无法正常进行。也可能是拒绝/回收钞箱满或者不存在所导致,或者是应用程序锁住了钞箱。
WFS_CDM_DISPCUUNKNOWN
fwIntermediateStacker
由于硬件故障或其他情况,钞箱状态不能够被确定。
提供暂存状态。此参数将会是下列值之一: 值
WFS_CDM_ISEMPTY WFS_CDM_ISNOTEMPTY WFS_CDM_ISNOTEMPTYCUST WFS_CDM_ISNOTEMPTYUNK WFS_CDM_ISUNKNOWN WFS_CDM_ISNOTSUPPORTED
lppPositions
指向WFSCDMOUTPOS结构以NULL结尾的指针数组。此结构体所有参数均有效且能够被分配。
typedef struct _wfs_cdm_position
{
涵义 暂存为空。
暂存非空。客户无法使用钞币。
暂存非空。客户正在使用钞币。如果设备在回收暂存上的钞币,可能是由于早先的存款操作。 暂存非空。未知的客户使用情况。
由于硬件故障或其他情况,暂存状态不能够被确定。 物理设备不支持暂存。
WORD fwPosition; WORD fwShutter; WORD fwPositionStatus; WORD fwTransport; WORD fwTransportStatus;
} WFSCDMOUTPOS, *LPWFSCDMOUTPOS;
fwPosition
提供下列值的输出位置。 值
WFS_CDM_POSLEFT WFS_CDM_POSRIGHT WFS_CDM_POSCENTER WFS_CDM_POSTOP
WFS_CDM_POSBOTTOM WFS_CDM_POSFRONT WFS_CDM_POSREAR
涵义
左输出位置 右输出位置 中间输出位置 上输出位置 下输出位置 前输出位置 后输出位置
Page 12
CWA 15748-5:2008
fwShutter
提供下列值的钞门状态。 值
WFS_CDM_SHTCLOSED WFS_CDM_SHTOPEN WFS_CDM_SHTJAMMED WFS_CDM_SHTUNKNOWN WFS_CDM_SHTNOTSUPPORTED
涵义 钞门被关闭 钞门被打开 钞门被干扰
由于硬件故障或其他情况,钞门状态不能够被确定 物理设备没有钞门或其状态报告不被支持
fwPositionStatus
返回可能在输出位上的相关钞币信息。如果设备循环可能,由于支持存款操作,输出位将非空。 参数将会是下列值之一: 值
WFS_CDM_PSEMPTY WFS_CDM_PSNOTEMPTY WFS_CDM_PSUNKNOWN WFS_CDM_PSNOTSUPPORTED
值
WFS_CDM_TPOK WFS_CDM_TPINOP WFS_CDM_TPUNKNOWN WFS_CDM_TPNOTSUPPORTED
fwTransportStatus
返回可能在传输通道上的相关钞币信息。如果设备循环可能,由于支持存款操作,传诵通道将非空。 参数将会是下列值之一: 值
WFS_CDM_TPSTATEMPTY WFS_CDM_TPSTATNOTEMPTY WFS_CDM_TPSTATNOTEMPTYCUST WFS_CDM_TPSTATNOTEMPTY_UNK WFS_CDM_TPSTATNOTSUPPORTED
lpszExtra
指向厂商特有或任何其它扩展信息的一个列表。返回信息为一系列“键=值”字符串以便SP进行轻松扩展。每一个字符串都是以空字符NULL结束的,最后一个字符串以两个空字符NULL结束。一个空列表可通过一个空指针或两个连续的空字符NULL来表示。
涵义
传输通道为空 传输通道非空
客户正在使用传输通道
由于硬件故障或其他情况,无法确定传输通道上是否有钞币
设备报告无法确认传输通道上是否有钞币
fwTransport
提供传输通道状态。参数将会是下列值之一:
涵义
通道状态正常
传输通道不活动,由于硬件故障或者传输媒介异常 由于硬件故障或其他情况,传输通道状态不能够被确定 物理设备没有传输通道或其状态报告不被支持 涵义
输出位为空。 输出位非空。
由于硬件故障或其他情况,输出位状态不能够被确定 设备报告无法确认输出位置。
Page 13
CWA 15748-5:2008
dwGuidLights [...]
指定指示灯的显示状态。指示灯的类型说明如下。厂商指定的指示灯都是从数组的尾端开始确定的。最大的指示灯指定为WFS_PTR_GUIDLIGHTS_MAX。
指定指示灯的显示状态为WFS_PTR_GUIDANCE_NOT_AVAILABLE、WFS_PTR_GUIDANCE_ OFF或下列标志组合,这些标志由一个B型加上一个C型组成,C型可选。 值
WFS_CDM_GUIDANCE_NOT_AVAILABLE WFS_CDM_GUIDANCE_OFF
WFS_CDM_GUIDANCE_SLOW_FLASH WFS_CDM_GUIDANCE_MEDIUM_FLASH WFS_CDM_GUIDANCE_QUICK_FLASH WFS_CDM_GUIDANCE_CONTINUOUS WFS_CDM_GUIDANCE_RED WFS_CDM_GUIDANCE_GREEN WFS_CDM_GUIDANCE_YELLOW WFS_CDM_GUIDANCE_BLUE WFS_CDM_GUIDANCE_CYAN
WFS_CDM_GUIDANCE_MAGENTA WFS_CDM_GUIDANCE_WHITE
涵义
不可使用状态 灯关闭状态 灯慢速闪动 灯中速闪动 灯快速闪动
灯连续开启(常亮) 红色灯 绿色灯 黄色灯 蓝色灯 蓝绿色灯 品红色灯 白色灯
类型 A A B B B B C C C C C C C
wDevicePosition
时,fwDevice可以拥有上述规定的任何值(包括WFS_PTR_DEVONLINE或WFS_PTR_DEVOFFLINE)。如果设备不在其正常的工作位置(例如:WFS_PTR_DEVICEINPOSITION),那么,媒介也许没有通过正常接口到位。
此参数可能为下列值之一:
值
WFS_CDM_DEVICEINPOSITION WFS_CDM_DEVICENOTINPOSITION WFS_CDM_DEVICEPOSUNKNOWN WFS_CDM_DEVICEPOSNOTSUPP
usPowerSaveRecoveryTime
设定从当前的省电模式恢复到正常的业务状态下实际所需要的秒数。如果不是省电模式或者没有节电控制提供支持,此值为零。
错误代码: 此命令仅产生定义在[参考一]的一般错误代码。
注释: 应用程序所依赖的参数lpszExtra可能没有设备或与厂商无关。
在此情况,与设备间的通讯将会丢失,当设备被移除时fwDevice将报告WFS_CDM_ DEVPOWEROFF。当通讯意外中断时候将报告WFS_CDM_DEVHWERROR。 所有其他结果将包含一个基于下列规则的值: 1. 报告值未知
2. 报告值为一般H/W错误 3. 报告值为最后已知值
涵义
设备处于正常操作位置或固定位不能被移动 该设备被从正常操作位置移除。
由于硬件故障或其他情况,无法确定设备位置 该物理设备不具备检测位置的能力
指定设备的位置。设备位置值与fwDevice值无关,例如,当设备位置报告为WFS_PTR_DEVICENOTINPOSITION
Page 14
CWA 15748-5:2008
4.2 WFS_INF_CDM_CAPABILITIES
描述: 此命令用于检索CDM的能力。它也返回供应商的具体能力信息。暂存和传输通道被视为单独的部分。某些
设备可以通过传输通道把钞币从钞箱移动到暂存。同样某些设备可以回收传输通道和暂存的钞币到钞箱。
输入参数:无
输出参数:LPWFSCDMCAPS lpCaps; typedef struct _wfs_cdm_caps { WORD wClass; WORD fwType; WORD wMaxDispenseItems; BOOL bCompound; BOOL bShutter; BOOL bShutterControl; WORD fwRetractAreas; WORD fwRetractTransportActions; WORD fwRetractStackerActions; BOOL bSafeDoor; BOOL bCashBox; BOOL bIntermediateStacker; BOOL bItemsTakenSensor; WORD fwPositions; WORD fwMoveItems; WORD fwExchangeType; LPSTR lpszExtra; DWORD dwGuidLights[WFS_CDM_GUIDLIGHTS_SIZE]; BOOL bPowerSaveControl; BOOL bPrepareDispense; } WFSCDMCAPS, *LPWFSCDMCAPS;
wClass
设定逻辑服务类为WFS_SERVICE_CLASS_CDM。 fwType 提供CDM的类型为下列值之一:
值
WFS_CDM_TELLERBILL WFS_CDM_SELFSERVICEBILL WFS_CDM_TELLERCOIN
涵义
CDM是一个钞票柜员机
CDM是一个自助服务钞票的取款机 CDM是一个硬币柜员机
WFS_CDM_SELFSERVICECOIN CDM是一个自助服务硬币的取款机 wMaxDispenseItems
提供单分配操作的最大能分配钞币数。如果没有限制使用此值将为零,在此情况下,如果尝试分配比硬件所允许的钞币数更多,SP将实施一系列单独分配操作。[参照第八节,单步取款命令流程]
bCompound
设定CDM是否为复合设备。如果CDM是一个以计算机集成制造的复合设备,那么这种组合称为循环。在此情况,没有存款钞箱通过CDM提供的相关接口。CDM接口将提供共享回收或拒绝钞箱和回收钞箱的信息。
bShutter
设定命令WFS_CMD_CDM_OPEN_SHUTTER和WFS_CMD_CDM_CLOSE_SHUTTER是否被支持。
Page 15
CWA 15748-5:2008
bShutterControl
如果为TURE, 将由SP提供钞门的控制。如果设置为FALSE,钞门必须通过应用程序使用WFS_CMD_CDM_OPEN_SHUTTER和WFS_CMD_CDM_CLOSE_SHUTTER命令而被明确的控制。如果设备没有钞门此值恒为TRUE。此值适用于所有的钞门和输出位置。
fwRetractAreas
设定钞币可能通过下面的标志组合被回收: 值
WFS_CDM_RA_RETRACT WFS_CDM_RA_TRANSPORT WFS_CDM_RA_STACKER WFS_CDM_RA_REJECT WFS_CDM_RA_ITEMCASSETTE WFS_CDM_RA_NOTSUPP
值
WFS_CDM_PRESENT WFS_CDM_RETRACT WFS_CDM_REJECT WFS_CDM_ITEMCASSETTE WFS_CDM_NOTSUPP
fwRetractStackerActions
设定可能已执行被回收到堆栈的动作的钞币。如果设备没有回收能力,此参数将为 WFS_CDM_NOTSUPP。否则,为下列标志的组合: 值
WFS_CDM_PRESENT WFS_CDM_RETRACT WFS_CDM_REJECT WFS_CDM_ITEMCASSETTE WFS_CDM_NOTSUPP
bSafedoor
设定命令WFS_CMD_CDM_OPEN_SAFE_DOOR是否被支持。 bCashBox
此字段仅适用于CDM类型为WFS_CDM_TELLERBILL和WFS_CDM_TELLERCOIN。 它指定是否显示已分配的现金箱。
涵义
钞币可能被呈现
钞币可能被回收到回收钞箱 钞币可能被拒绝到拒绝执行
钞币可能被回收到机芯,即可以从机芯分配 CDM没有从堆栈回收的功能 涵义
钞币可能被呈现
钞币可能被回收到回收钞箱 钞币可能被拒绝到拒绝执行
钞币可能被回收到机芯,即可以从机芯分配 CDM没有从传输通道回收的功能
fwRetractTransportActions
设定可能已执行被回收到传输通道的动作的钞币。如果设备没有回收能力,参数为 WFS_CDM_NOTSUPP。此参数可以为下列标志的组合:
涵义
钞币可能被回收到回收钞箱 钞币可能被回收到传输通道 钞币可能被回收到暂存 钞币可能被回收到拒绝钞箱
钞币可能被回收到机芯,即可以从机芯分配 CDM没有回收功能
Page 16
CWA 15748-5:2008
bIntermediateStacker
bItemsTakenSensor
设定CDM是否能侦测到钞币在出口位被客户取走。如果为TRUE,SP将产生一个附加的WFS_SRVE_CDM_ITEMS_TAKEN事件。
fwPositions
设定CDM的输出位。可以是下列标志的组合: 值
WFS_CDM_POSLEFT WFS_CDM_POSRIGHT WFS_CDM_POSCENTER WFS_CDM_POSTOP WFS_CDM_POSBOTTOM WFS_CDM_POSFRONT WFS_CDM_POSREAR
fwMoveItems
设定CDM的移动钞币位。可以是下列标志的组合: 值
WFS_CDM_FROMCU WFS_CDM_TOCU
fwExchangeType
设定CDM所支持的钞箱激活类型。可以是下列标志的组合: 值
WFS_CDM_EXBYHAND lpszExtra
指向厂商特有或任何其它扩展信息的一个列表。返回信息为一系列“键=值”字符串以便SP进行轻松扩展。每一个字符串都是以空字符NULL结束的,最后一个字符串以两个空字符NULL结束。一个空列表可通过一个空指针或两个连续的空字符NULL来表示。
dwGuidLights [...]
指定指示灯的显示状态。指示灯的类型说明如下。厂商指定的指示灯都是从数组的尾端开始确定的。最大的指示灯指定为WFS_PTR_GUIDLIGHTS_MAX。
涵义
CDM支持手动添加物品到钞箱或更换钞箱 涵义
CDM可以通过传输通道把钞币从钞箱移动到暂存 当暂存上有钞币的时候, CDM 能撤回钞箱的钞币
涵义
CDM 有一个左边的输出位置。 CDM 有一个右边的输出位置。 CDM 有一个中间的输出位置。 CDM 有一个上面的输出位置。 CDM 有一个下面的输出位置。 CDM 有一个前面的输出位置。 CDM 有一个后面的输出位置。
设定CDM是否支持堆栈钞币被移动到出口位之前的中间位置。如果为TRUE,WFS_CMD_CDM_DISPENSE命令的bPresent参数可以设置为FALSE。
WFS_CDM_TOTRANSPORT 当暂存上有钞币的时候, CDM 能撤回传输通道的钞币
WFS_CDM_EXTOCASSETTES CDM支持从一个钞箱到另一个钞箱移动钞币
Page 17
CWA 15748-5:2008
指示灯的显示在数组元素中被设定为闪烁频率(类型B)和颜色(类型C)的组合。如果指示灯指示器仅支持一种颜色,类型C则不起作用。WFS_CDM_GUIDANCE_NOT_AVAILABLE表示设备没有指示灯指示器或装置控制没有此应用控制的能力。 值
WFS_CDM_GUIDANCE_NOT_AVAILABLE WFS_CDM_GUIDANCE_OFF
WFS_CDM_GUIDANCE_SLOW_FLASH WFS_CDM_GUIDANCE_MEDIUM_FLASH WFS_CDM_GUIDANCE_QUICK_FLASH WFS_CDM_GUIDANCE_CONTINUOUS WFS_CDM_GUIDANCE_RED WFS_CDM_GUIDANCE_GREEN WFS_CDM_GUIDANCE_YELLOW WFS_CDM_GUIDANCE_BLUE WFS_CDM_GUIDANCE_CYAN WFS_CDM_GUIDANCE_MAGENTA WFS_CDM_GUIDANCE_WHITE
bPowerSaveControl
设定是否为省电模式,TRUE为可能,否则,FALSE。
bPrepareDispense
某些硬件需要花费大量的时间在取款机的准备分配媒介上。这些设备可以用WFS_CMD _CDM_PREPARE_DISPENSE命令来改善其处理能力。此参数被设定为如果硬件通过
WFS_CMD_CDM_PREPARE_DISPENSE命令请求程序使用最大的处理能力。如果此参数为TRUE,表示命令被支持,否则,FALSE。
错误代码: 此命令仅产生定义在[参考一]的一般错误代码。
注释: 应用程序参数lpszExtra可能不是设备或独立供应商。
涵义
无效指示灯控制位 灯光能够被关闭 灯光能够慢速闪烁的 灯光能够中速闪烁的 灯光能够快速闪烁的 灯光能够连续(稳定的) 灯光能够是红色的 灯光能够是绿色的 灯光能够是黄色的 灯光能够是蓝色的 灯光能够是蓝绿色的 灯光能够是品红色的 灯光能够是白色的
类型 A B B B B B C C C C C C C
Page 18
CWA 15748-5:2008
4.3 WFS_INF_CDM_CASH_UNIT_INFO
描述: 此命令被用来获取CDM中钞箱的相关状态信息。
逻辑钞箱配置没有对应的物理钞箱时,缺少的钞箱信息将在参数lppList中被返回。钞箱状态将被报告为
WFS_CDM_STATCUMISSING。
一个逻辑钞箱可能与多个物理钞箱相关。这时,将会在钞箱结构描述lpCashUnitInfo中返回CDM的逻辑钞箱数。例如,如果系统含有四个物理钞箱但其中两个被做为一个逻辑钞箱,lpCashUnitInfo将以usCount=3的形式描述为三个逻辑钞箱。物理钞箱相关的逻辑钞箱信息包含在WFSCDMCASHUNIT结构体中。
多个逻辑钞箱与一个物理钞箱相关联也是可能的。这仅存在于物理钞箱能够处理的情况下,即能够存储多种面额并报告其有效计数以及每种面额相应的补充信息,或者有单独逻辑单元来存储拒绝或回收的钞币并报告其有效计数以及相应的有效补充信息。在此情况,lpCashUnitInfo的返回信息里也会提及CDM中逻辑钞箱数的相关信息。
逻辑类型
一个钞箱拥有一个逻辑类型。逻辑类型将基于下列WFSCDMCASHUNIT结构:
lpszCashUnitName usType cCurrencyID ulValues
一个钞箱的逻辑类型可能和多个物理钞箱相关。逻辑类型与逻辑数(usNumber)不同。即usNumber不能提供逻辑盒式类型。 计数
钞币计数典型地以软件计数为基础因此可能不会体现钞箱中钞币的实际数。经过断电,打开会话,结束会话和系统复位的固定值将被保持。如果钞箱在CDM和CIM的设备类中被共享,CDM的操作将会改变CIM的钞箱计数,反之亦然。所有的计数将会在两者的接口上被一致的体现。
在钞箱的分配钞币上,如果ulCount(逻辑和物理钞箱计数)为零时则不再进行减法,会保持在零。当ulCount为零时,无法继续使用分配动作或者重命名钞箱,除非SP提供参数配置继续使用ulCount为零时的钞箱。配置参数的默认设置必须停止使用此值为零时的钞箱。如果SP提供当ulCount为零时钞箱仍然能被使用,那么WFS_CDM_STATCUEMPTY不能被实现,准确的说,只有当所有与物理钞箱关联的逻辑钞箱为空的时候,它才能实现。
在回收设备上,SP不应该配置当ulCount为零时钞箱可以继续使用,因为它可能是不正确的。然而,如果SP配置成当ulCount为零可以继续使用钞箱,那么钞箱的计数定义和ulInitialCount,ulDispensedCount,ulRetractedCount及CIM ulCashInCount相关。例:计数 = ulInitialCount – ulDispensedCount + ulRetractedCount + CIM::ulCashInCount。
线程事件
Page 19
CWA 15748-5:2008
WFS_USRE_CDM_CASHUNITTHRESHOLD事件将通过硬件传感器或ulCount到达ulMinimum及ulMaximum值时被触发。如果设备被允许查询物理钞箱的bHardwareSensors值,应用程序将会检查。如果任何与逻辑钞箱相关联的物理钞箱有此能力,那么线程事件将以传感器为基础被触发。
在一个钞箱关联多个物理钞箱的情况中,如果SP具备此能力,事件WFS_USRE_CDM_CASHUNITTHRESHOLD将在任何一个物理钞箱达到阈值时被触发。最后一个物理钞箱达到阈值时,事件也会被触发。 激活
如果物理钞箱没有在激活状态时被插入(包括交换),物理钞箱的usStatus将被设置成WFS_CDM_STATCUMANIP,先前物理钞箱的值将会被WFS_INF_CDM_CASH_UNIT_INFO命令所返回的任何值覆盖。物理钞箱无法进行任何操作,为了恢复,应用程序必须执行激活操作为物理钞箱设置新值。
在循环和回收箱上的计数和状态被一致的报告在CDM和CIM两者共同的接口之上。当一个接口的值通过激活被改变,另一个接口的值也同时被改变。 循环
CDM不报告仅存钞箱但CIM分享了它的钞箱报告,即循环钞箱(WFS_CDM_TYPERECYCLING)和拒绝/回收钞箱(WFS_CDM_TYPEREJECTCASSETTE / WFS_CDM_TYPERETRACTCASSETTE)。CIM报告所有类型的所有钞箱,包括仅由CDM接口的命令所使用的。
输入参数:无
输出参数:LPWFSCDMCUINFO lpCashUnitInfo;
typedef struct _wfs_cdm_cu_info
{
USHORT usTellerID; USHORT usCount; LPWFSCDMCASHUNIT *lppList;
} WFSCDMCUINFO, *LPWFSCDMCUINFO;
usTellerID
参数没被使用,恒为零。
指定钞箱的返回数。 lppList
指向一个WFSCDMCASHUNIT结构体的指针数组。
usCount
Page 20
CWA 15748-5:2008
typedef struct _wfs_cdm_cashunit
{ USHORT usNumber; USHORT usType; LPSTR lpszCashUnitName; CHAR cUnitID[5]; CHAR cCurrencyID[3]; ULONG ulValues; ULONG ulInitialCount; ULONG ulCount; ULONG ulRejectCount; ULONG ulMinimum; ULONG ulMaximum; BOOL bAppLock; USHORT usStatus; USHORT usNumPhysicalCUs; LPWFSCDMPHCU *lppPhysical; ULONG ulDispensedCount; ULONG ulPresentedCount; ULONG ulRetractedCount;
} WFSCDMCASHUNIT, *LPWFSCDMCASHUNIT;
usNumber
钞箱结构体索引数。每个结构体唯一的标识,从1开始并持续递增。 usType
钞箱类型,可能是下列值:
值
WFS_CDM_TYPENA
WFS_CDM_TYPEREJECTCASSETTE WFS_CDM_TYPEBILLCASSETTE WFS_CDM_TYPECOINCYLINDER WFS_CDM_TYPECOINDISPENSER WFS_CDM_TYPERETRACTCASSETTE WFS_CDM_TYPECOUPON WFS_CDM_TYPEDOCUMENT WFS_CDM_TYPEREPCONTAINER WFS_CDM_TYPERECYCLING lpszCashUnitName
帮助识别逻辑钞箱类型的名字。尤其使用当WFS_CDM_TYPEDOCUMENT类型的钞箱在不同的文档中有一个通用值时。例如:旅行支票和银行支票可能具有相同的货币价值但仍旧需要在不同的类型文档中被识别。与实际无关的(例:钞票钞箱)指针为空。值是固定的。 cUnitID 钞箱标识符。 cCurrencyID
三个字符存储ISO格式的通用ID。这个值将由三个ASCII 0x20h的字符关于多个通用类型钞箱包含项或非通用钞币。如果这个钞箱的usStatus值为WFS_CDM_STATCUNOVAL应用程序将为此参数分配一个值。
涵义
不可使用,典型为没有钞箱
拒绝钞箱,此类型也指拒绝/回收钞箱 包含纸币的钞箱 硬币圆桶
硬币取款机整个单元 回收钞箱
钞箱包含票据和广告材料 钞箱包含文档
补充容器,钞箱通过此被补充
循环钞箱。仅显示于含有CIM的复合设备
Page 21
CWA 15748-5:2008
ulValues
设定钞箱单项的值。这个值被描述为最小分配单元[参照第4.5节WFS_INF_
CDM_CURRENCY_EXP],如果cCurrencyID所代表的钞箱为空,此值将为零。如果钞箱的usStatus值为WFS_CDM_STATCUNOVAL,应用程序将分配一个值给它。这个值是恒定的。 ulInitialCount
钞箱所包含的钞币的初始数。值是固定的。 ulCount
参数值取决于钞箱的类型。值是固定的。所有钞箱为回收钞箱(usType值不为WFS_CDM_TYPERETRACTCASSETTE)时,这个值设定所有和此钞箱相关的物理钞箱的内部钞币数。
对于所有取款钞箱(usType的值为WFS_CDM_TYPEBILLCASSETTE,WFS_CDM_TYPECOINCYLINDER,WFS_CDM_TYPECOINDISPENSER,WFS_CDM_TYPECOUPON,WFS_CDM_TYPEDOCUMENT或WFS_CDM_TYPERE -CYCLING),此参数包含物理钞箱还未显示给客户的任何钞币。当钞币呈现给客户或者被回收时,此值递减。
如果CIM接口的钞箱可使用(usType的值为WFS_CDM_TYPERECYCLING,WFS_CDM_TYPERETRACTCASSETTE 或WFS_CDM_TYPEREJECTCASSETTE),由于存款操作,此值得将递增。
注意,拒绝钞箱时(usType的值为WFS_CDM_TYPEREJECTCASSETTE),此值将是不可靠的,典型原因为拒绝钞箱的钞币倾倒导致计数失败。
对于回收钞箱(usType的值为WFS_CDM_TYPERETRACTCASSETTE),此参数设定造成进入钞箱的回收操作数 (CDM命令,CIM命令或错误恢复)。 ulRejectCount
处理拒绝操作的钞箱的钞币计数,此时值是不可靠的,典型原因为拒绝钞箱的钞币倾倒导致拾取失败。 对于拒绝和回收钞箱(usTypee的值为WFS_CDM_TYPEREJECTCASSETTE或WFS_CDM_TYPERETRACT -CASSETTE),此参数无效且设置为零。参数是固定的。 ulMinimum
此参数不作用于回收或拒绝钞箱,对于其他所有的钞箱,ulCount达到阈值时WFS_USRE_CDM_CASHUNITTHRESHOLD(WFS_CDM_STATCULOW)事件将被触发,如果此值 非零那么硬件设备的传感器将不触发阈值事件,否则触发。此值恒定。 ulMaximum
此参数仅作用于回收或拒绝钞箱。当器将不触发阈值事件,否则触发。此值恒定。 bAppLock
此参数不作用于回收或拒绝钞箱,如果为TRUE钞币将不能被钞箱分配,如果此时应用程序尝试进行钞币分配,钞箱将会触发一个WFS_EXEE_CDM_CASHUNITERROR事件并返回错误代码WFS_ERR_CDM_CASHUNITERROR。 usStatus
设定钞箱的状态为下列值之一:
ulCount
达到这个阈值时,事件
WFS_USRE_CDM_CASHUNITTHRESHOLD(WFS_CDM_STATCULOW)将被触发。如果此值非零那么硬件设备的传感
Page 22
CWA 15748-5:2008
值
WFS_CDM_STATCUOK WFS_CDM_STATCUFULL WFS_CDM_STATCUHIGH
涵义
钞箱状态良好
钞箱已满。这个值仅用于usType为WFS_CDM_TYPEREJE -CTCASSETTE或WFS_CDM_TYPERETRACTCASSETTE的钞箱 钞箱将满(即达到或超过了被ulMaximum定义的阈值), 这个值仅用于usType为WFS_CDM_TYPEREJECTCASSETTE或WFS_CDM_TYPERETRACTCASSETTE的钞箱
WFS_CDM_STATCULOW 钞箱将空(即达到或低于被ulMinimum定义的阈值),这个值不可用于usType为WFS_CDM_TYPEREJECTCASSETTE或WFS_CDM_TYPERETRACTCASSETTE的钞箱
WFS_CDM_STATCUEMPTY 钞箱已空或残留项不够将来的分配操作,这个值不可用于usType为WFS_CDM_TYPEREJECTCASSETTE或WFS_CDM_ TYPERETRACTCASSETTE的钞箱
WFS_CDM_STATCUINOP WFS_CDM_STATCUNOVAL WFS_CDM_STATCUNOREF WFS_CDM_STATCUMANIP
钞箱未被激活 设定钞箱不可见
钞箱注释无参考值可用,钞箱未被校正 设备不处于激活状态时,钞箱被插入(包括更换)。此钞箱不能做分配动作
WFS_CDM_STATCUMISSING 钞箱不可见
ulDispensedCount
与此钞箱相关的所有物理钞箱分配的钞币数。当钞币从任一相关物理钞箱被移出时,计数将增加。这个计数包括拒绝时的分配操作。
钞箱usType为WFS_CDM_TYPEREJECTCASSETTE或WFS_CDM_TYPERETRACTCASSETTE时,此值固定并恒为零。
ulPresentedCount
与此分配给客户的钞箱相关的所有物理钞箱的钞币数。当钞币呈现给客户时,此计数将增加。如果无法得知客户分配的钞币,此计数不更新。
钞箱usType为WFS_CDM_TYPEREJECTCASSETTE或WFS_CDM_TYPERETRACTCASSETTE时,此值固定并恒为零。
ulRetractedCount
与此钞箱相关的所有物理钞箱能够被回收的钞币数,此值固定。
usNumPhysicalCUs
物理钞箱结构返回的下列lppPhysical数组的计数。此值至少为1。
Page 23
CWA 15748-5:2008
lppPhysical
指向WFSCDMPHCU结构指针的数组。 typedef struct _wfs_cdm_physicalcu
{
LPSTR lpPhysicalPositionName; CHAR cUnitID[5]; ULONG ulInitialCount; ULONG ulCount; ULONG ulRejectCount; ULONG ulMaximum; USHORT usPStatus; BOOL bHardwareSensor;
ULONG ulDispensedCount; ULONG ulPresentedCount; ULONG ulRetractedCount;
} WFSCDMPHCU, *LPWFSCDMPHCU;
lpPhysicalPositionName
物理逻辑钞箱的可识别名。这个值被用来识别CDM同CIM复合设备共享钞箱。 cUnitID
唯一识别物理钞箱的五个字符数组。 ulInitialCount
钞箱所包含的钞币的初始数。值是固定的。 ulCount
描述逻辑定义参数于单个物理钞箱中使用,除了下面的例外: 1.计数不包括还没有准备的分配钞币。
2.钞箱属于逻辑钞箱并且usType值为WFS_CDM_TYPERETRACTCASSETTE的物理计数的表现为钞币数,除非在回收时设备不能钞币计数,此时计数为零。 3.此参数为固定值。 ulRejectCount
描述逻辑定义参数于单个物理钞箱中使用,此参数为固定值。 ulMaximum
钞箱能够支持的钞币最大数。仅为目的信息。没有阈值事件WFS_USRE_CDM_CASHUNITTHRESHOLD被触发,此参数为固定值。 usPStatus
设定物理钞箱状态为下列值: 值
WFS_CDM_STATCUOK WFS_CDM_STATCUFULL WFS_CDM_STATCUHIGH
涵义
钞箱状态良好
钞箱已满。这个值仅用于usType为WFS_CDM_
TYPEREJECTCASSETTE或WFS_CDM_TYPERETRACTCASSETTE的钞箱 钞箱将满(即达到或超过了被ulMaximum定义的阈值), 这个值仅用于usType为WFS_CDM_TYPEREJECTCASSETTE或WFS_CDM_ TYPERETRACTCASSETTE的钞箱
Page 24
CWA 15748-5:2008
WFS_CDM_STATCULOW 钞箱将空(即达到或低于被ulMinimum定义的阈值),这个值不可用于usType为WFS_CDM_TYPEREJECTCASSETTE或WFS_CDM_
TYPERETRACTCASSETTE的钞箱
WFS_CDM_STATCUEMPTY 钞箱已空或残留项不够将来的分配操作,这个值不可用于usType为WFS_CDM_TYPEREJECTCASSETTE或WFS_CDM_ TYPERETRACTCASSETTE的钞箱
WFS_CDM_STATCUINOP WFS_CDM_STATCUNOVAL WFS_CDM_STATCUNOREF WFS_CDM_STATCUMANIP
bHardwareSensor
钞箱未被激活 设定钞箱不可见
钞箱注释无参考值可用,钞箱未被校正 钞箱被插入(包括更换)后设备未处于激活状态。此钞箱不能做分配动作
WFS_CDM_STATCUMISSING 钞箱不可见
设定基于设备硬件传感器的阈值事件是否可以被触发。如果此值为TRUE,任何与逻辑钞箱关联的物理钞箱基于硬件传感器对应的逻辑计数阈值事件将被触发。
ulDispensedCount
描述逻辑定义参数于单个物理钞箱中使用。如果H/W不支持物理计数,此值为零,否则此值为有效。
ulPresentedCount
描述逻辑定义参数于单个物理钞箱中使用。如果H/W不支持物理计数,此值为零,否则此值为有效。
ulRetractedCount
描述逻辑定义参数于单个物理钞箱中使用。如果H/W不支持物理计数,此值为零,否则此值为有效。
错误代码: 此命令仅产生定义在[参考一]的一般错误代码。
注释: 无
Page 25
CWA 15748-5:2008
4.4 WFS_INF_CDM_TELLER_INFO
描述: 此命令仅用于柜员机CDM。允许应用程序获取各种货币分配到柜员机的计数。这些计数表现为柜员机在
所有的交易中分配的货币总量。
此命令也允许应用程序获得每个柜员机的分配位置。如果输入参数为NULL,此命令将返回所有柜员机和货币的信息。柜员机的信息是固定的。
输入参数: LPWFSCDMTELLERINFO lpTellerInfo; typedef struct _wfs_cdm_teller_info {
输出参数:
USHORT usTellerID; CHAR cCurrencyID[3]; } WFSCDMTELLERINFO, *LPWFSCDMTELLERINFO; usTellerID
定义柜员机。如果参数无效或错误将返回WFS_ERR_CDM_INVALIDTELLERID。 cCurrencyID
三个字符的ISO货币定义格式[参考二]
当这个参数为三个ASCII 0x20h的字符时,所有的货币交易信息都将被返回。
指向一个以NULL结尾的WFSCDMTELLERDETAILS结构体指针。 typedef struct _wfs_cdm_teller_details { USHORT usTellerID; ULONG ulInputPosition; WORD fwOutputPosition; LPWFSCDMTELLERTOTALS *lppTellerTotals; } WFSCDMTELLERDETAILS, *LPWFSCDMTELLERDETAILS; usTellerID 定义柜员机。 ulInputPosition
柜员机为现金进入分配输入位置。这仅是一个兼容性设置除非设备为一个复合性设备。 参数可以设定为下列标志: 值
涵义
WFS_CDM_POSNULL 柜员机没有指定位置 WFS_CDM_POSINLEFT 左边位置被柜员机指定 WFS_CDM_POSINRIGHT 右边位置被柜员机指定 WFS_CDM_POSINCENTER 中间位置被柜员机指定 WFS_CDM_POSINTOP 上面位置被柜员机指定 WFS_CDM_POSINBOTTOM 下面位置被柜员机指定 WFS_CDM_POSINFRONT 前面位置被柜员机指定 WFS_CDM_POSINREAR 后面位置被柜员机指定
fwOutputPosition
现金被分配到柜员机的输出位置。参数可以设定为下列标志: 值
涵义
WFS_CDM_POSNULL 柜员机没有指定位置 WFS_CDM_POSINLEFT 左边位置被柜员机指定 WFS_CDM_POSINRIGHT 右边位置被柜员机指定 WFS_CDM_POSINCENTER
中间位置被柜员机指定 LPWFSCDMTELLERDETAILS *lppTellerDetails;
Page 26
CWA 15748-5:2008
错误代码:注释:
WFS_CDM_POSINTOP 上面位置被柜员机指定 WFS_CDM_POSINBOTTOM 下面位置被柜员机指定 WFS_CDM_POSINFRONT 前面位置被柜员机指定 WFS_CDM_POSINREAR 后面位置被柜员机指定
lppTellerTotals
指向一个以NULL结尾的WFSCDMTELLERTOTALS结构体指针数组。 typedef struct _wfs_cdm_teller_totals {
CHAR cCurrencyID[3]; ULONG ulItemsReceived; ULONG ulItemsDispensed; ULONG ulCoinsReceived; ULONG ulCoinsDispensed; ULONG ulCashBoxReceived; ULONG ulCashBoxDispensed;
} WFSCDMTELLERTOTALS, *LPWFSCDMTELLERTOTALS;
cCurrencyID 三个字符的ISO货币定义格式[参考二]
ulItemsReceived
设定接受货币的总金额(硬币除外),金额表达为最小分配单元。(参WFS_INF_CDM_CURRENCY_EXP)
ulItemsDispensed
设定分配货币的总金额(硬币除外),金额表达为最小分配单元。(参WFS_INF_CDM_CURRENCY_EXP) ulCoinsReceived
接受的硬币的总金额,金额表达为最小分配单元。(参见WFS_INF_CDM_CURRENCY_EXP) ulCoinsDispensed
分配的硬币的总金额,金额表达为最小分配单元。(参见WFS_INF_CDM_CURRENCY_EXP) ulCashBoxReceived
现金盒里接受的货币的总金额,金额表达为最小分配单元。(参见WFS_INF_CDM_CURRENCY_EXP)
ulCashBoxDispensed
现金盒里分配的货币的总金额,金额表达为最小分配单元。(参见WFS_INF_CDM_CURRENCY_EXP)
除了定义在[参考一]的一般错误代码外,下列错误代码可能产生:
错误代码
涵义
WFS_ERR_CDM_INVALIDCURRENCY 货币设定不可用 WFS_ERR_CDM_INVALIDTELLERID 无效柜员机ID
无。
Page 27
CWA 15748-5:2008
4.5 WFS_INF_CDM_CURRENCY_EXP
描述:
输入参数: 无
输出参数: LPWFSCDMCURRENCYEXP *lppCurrencyExp; 此命令返回SP对各种已知货币的分配指数
{
CHAR cCurrencyID[3]; SHORT sExponent;
} WFSCDMCURRENCYEXP, *LPWFSCDMCURRENCYEXP;
错误代码: 注释:
指向一个以NULL结尾的WFSCDMCURRENCYEXP结构体指针数组。 typedef struct _wfs_cdm_currency_exp
cCurrencyID
货币定义为ISO 4217格式[参考二]
SExponent
货币说明以ISO 4217格式[参考二]
此命令仅产生定义在[参考一]的一般错误代码。 对于每种货币,ISO 4217定义货币标识符(三个字符码)为一个货币单元(例如:欧洲的‘EUR’,日本的‘JPY’)。在此定义规则的接口中,所有货币的总数将根据其最小量的倍数为被指定的分配单元,然后分配单元再乘以10的货币指数次幂。
总数 = 分配单元 * 10 ^ 货币指数
例 #1 - 欧元 货币定义为 ‘EUR’
货币单元为 1 欧元 (=100分)
SP开发了款分配硬币的ATM机而降到1分。货币指数被设为-2,所以最小的分配单元是1分(1 * 10^-2 欧元),所有的XFS接口以分为单位。因此,总量为10050的实际为100个欧元和50分组成。
例 #2 - 日元 货币定义为 ‘JPY’ 货币单元为 1 日元
SP被请求的最小分配数为1000元。货币指数被设为+3,所以最小的分配单元是1000元。所有的XFS接口以1000元为倍数。因此,总量15实际为15000元。 Page 28
CWA 15748-5:2008
4.6 WFS_INF_CDM_MIX_TYPES
描述:
输入参数: 无。
输出参数: LPWFSCDMMIXTYPE *lppMixTypes;
指向一个以NULL结尾的WFSCDMMIXTYPE结构体指针数组。 typedef struct _wfs_cdm_mix_type
此命令用来获取被支持的复杂算法及可用的混合结构表的链表。
CMD_CDM_DISPENSE
usSubType
lpszName
错误代码:
注释:
usMixNumber
识别算法和结构表的数字定义。此数值可能是WFS_INF_CDM_MIX_TABLE,WFS_ 和WFS_CMD_CDM_DENOMINATE命令。
usMixType 设定是否复杂算法或结构表混合类型。可能的值为: 值
涵义 WFS_CDM_MIXALGORITHM 复杂算法 WFS_CDM_MIXTABLE 结构表
包含识别算法或结构表类型的厂商定义的数值定义。个别厂商定义的混合算法在十六进位的7FFF上。SP定义的混合算法在8000-8999中。应用程序定义的混合算法由十六进位的9000开始。所有低于8000的数字将被保留。 预定义值: 值
涵义
WFS_CDM_MIX_MINIMUM_NUMBER选择需要的钞币的最小可能数的混合
_OF_BILLS
WFS_CDM_MIX_EQUAL_EMPTYING基于以下标准选择面额,CDM钞箱操作过程结束_OF_CASH_UNITS
尽可能的在相同比例下先清空。因此,达到最低点和空的时间大致相同。
WFS_CDM_MIX_MAXIMUM_NUMBER基于以下标准选择面额,不同的逻辑钞箱被使用_OF_CASH_UNITS 的最大数。 指向被使用的表或算法的名字。
此命令仅产生定义在[参考一]的一般错误代码。 无。
{ USHORT usMixNumber; USHORT usMixType; USHORT usSubType; LPSTR lpszName;
} WFSCDMMIXTYPE, *LPWFSCDMMIXTYPE; Page 29
CWA 15748-5:2008
4.7 WFS_INF_CDM_MIX_TABLE 描述:
此命令用于获取提供混合数据的指定隐藏混合表。
输入参数: LPUSHORT lpusMixNumber;
lpusMixNumber
指向被请求的隐藏混合表的数字。
输出参数: LPWFSCDMMIXTABLE lpMixTable; typedef struct _wfs_cdm_mix_table
{
USHORT usMixNumber; LPSTR lpszName; USHORT usRows; USHORT usCols;
LPULONG lpulMixHeader; LPWFSCDMMIXROW *lppMixRows;
} WFSCDMMIXTABLE, *LPWFSCDMMIXTABLE;
错误代码:注释:
usMixNumber 隐藏混合表的识别数字。 lpszName 指向表的名字。 usRows
隐藏混合表的行数。每个不同的总金额至少有一行表示。如果根据当前钞箱状态取走的是第一行,那么更多的行数是没必要的。
usCols隐藏混合表的列数。清楚的表明隐藏混合表中每项的意思。 lpulMixHeader
指向长度为usCols的unsigned longs类型数组。每个元素定义为对应列的钞币相关值。(参考WFS_INF_CDM_CURRENCY_EXP) lppMixRows
指向一个WFSCDMMIXROW结构体指针数组(usRows的长度) typedef struct _wfs_cdm_mix_row
{
ULONG ulAmount; LPUSHORT lpusMixture; } WFSCDMMIXROW, *LPWFSCDMMIXROW; ulAmount
此混合行的命名总数。(参考WFS_INF_CDM_CURRENCY_EXP) lpusMixture
指向混合行长度为usCols的unsigned integers型数组。每个元素定义为各个被使用的混合钞币面额,元素总数量为ulAmount。
除了定义在[参考一]的一般错误代码外,下列错误代码可能产生:
值
涵义
WFS_ERR_CDM_INVALIDMIXNUMBER lpusMixNumber参数不符合混合表中的预定义
无。
Page 30
CWA 15748-5:2008
4.8 WFS_INF_CDM_PRESENT_STATUS 描述:
此命令用于获取最近尝试分配或呈现给客户的钞币的状态。此钞币由于WFS_CMD_CDM_PRESENT或WFS_CMD_CDM_DISPENSE命令可能已经被分配或呈现给客户。如果没有其他的分配或呈现钞币命令,此状态不会改变。
状态值将持续有效直到下一次尝试分配或呈现钞币给客户。
如果钞箱已经被重新配置过,此命令的报告可能不会准确的反映出操作信息。 (例如:钞箱的相关值被改变或新的钞箱被配置)
输入参数: LPWORD lpfwPosition;
lpfwPosition
指向钞币被分配或呈现的输出位。将会是下列中的值: 值
WFS_CDM_POSNULL WFS_CDM_POSLEFT WFS_CDM_POSRIGHT WFS_CDM_POSCENTER WFS_CDM_POSTOP WFS_CDM_POSBOTTOM WFS_CDM_POSFRONT WFS_CDM_POSREAR
输出参数: LPWFSCDMPRESENTSTATUS lpPresentStatus;
typedef struct _wfs_cdm_present_status
{ LPWFSCDMDENOMINATION lpDenomination; WORD wPresentState;
LPSTR lpszExtra;
} WFSCDMPRESENTSTATUS, *LPWFSCDMPRESENTSTATUS;
lpDenomination
指向WFSCDMDENOMINATION结构体,它包含了分配总额和从每个钞箱分配的钞币数。关于WFSCDMDENOMINATION结构体的描述请参看WFS_CMD_CDM_DENOMINATE命令中的定义。
混合币种被分配时,面额结构里的ulAmount参数将为零且cCurrency的值被设置成为三个ASCII为0x20h的字符。
wPresentState
提供最后分配和呈现的操作状态。可能的值为:
值
WFS_CDM_PRESENTED WFS_CDM_NOTPRESENTED WFS_CDM_UNKNOWN
涵义
钞币被分配。此状态客户将尽可能快的获得钞币 客户一直不能获得钞币 无法得知客户存取钞币 涵义
钞币通过默认配置被分配 钞币通过左边输出位被分配 钞币通过右边输出位被分配 钞币通过中间输出位被分配 钞币通过上面输出位被分配 钞币通过下面输出位被分配 钞币通过前面输出位被分配 钞币通过后面输出位被分配
Page 31
CWA 15748-5:2008
lpszExtra
指向厂商特有或任何其它扩展信息的一个列表。返回信息为一系列“键=值”字符串以便SP进行轻松扩展。每一个字符串都是以空字符NULL结束的,最后一个字符串以两个空字符NULL结束。一个空列表可通过一个空指针或两个连续的空字符NULL来表示。
错误代码:此命令仅产生定义在[参考一]的一般错误代码。
注释: 无。
Page 32
CWA 15748-5:2008
5. 执行命令
5.1 WFS_CMD_CDM_DENOMINATE
描述: 此命令提供一个面额。面额所指定的数目需要依靠每个钞箱的支持来满足。面额取决于货币,混合算法及提
供面额的任何部分都要被应用程序支持。
此命令也被用于确认应用程序可以分配的任何有效面额。
如果不同的币种拥有相同的面额,货币名必须为一个三ASCII 0x20h 字符的数组,总额必须为零,而且混合数必须为WFS_CDM_INDIVIDUAL。然而,此约定并不被应用在单币种或非货币的情况下,例如息票。 如果WFS_INF_CDM_CAPABILITIES命令返回的结构体WFSCDMCAPS中的bCashBox值为TRUE,假设全部面额不能被满足,那么将返回部分面额,缺少的面额由现金盒来提供。
此命令被使用于四个不同的情况:
1. 为了检查是否能够分配特定的面额,命令输入的参数为币种和面额,混合算法为WFS_CDM_INDIVIDUAL,
总额为零。如果不同的币种被分配,货币名必须为一个三ASCII 0x20h 字符的数组。
2. 为了使特定总额,特定面额和可能分配的面额有效。命令输入的参数为总额,币种和面额,混合算法为
WFS_CDM_INDIVIDUAL。
3. 为了获得特定金额的面额,输入的参数必须有总额,币种和混合数。
4. 为了完成特定金额的部分面额,输入参数必须有币种,总额,混合数和特定面额部分或现金盒最小金额
中的一个,完成的面额被返回。此命令执行后,面额结构中的ulCashBox参数将被修改。
输入参数: LPWFSCDMDENOMINATE lpDenominate;
typedef struct _wfs_cdm_denominate {
USHORT usTellerID; USHORT usMixNumber; LPWFSCDMDENOMINATION lpDenomination; } WFSCDMDENOMINATE, *LPWFSCDMDENOMINATE;
usTellerID
识别柜员机。如果设备是自助服务CDM,参数将被忽略。
usMixNumber
混合算法或隐藏结构表被使用。
lpDenomination
指向一个WFSCDMDENOMINATION结构体,描述操作面额的上下文信息。
typedef struct _wfs_cdm_denomination
{
CHAR cCurrencyID[3]; ULONG ulAmount; USHORT usCount; LPULONG lpulValues; ULONG ulCashBox;
} WFSCDMDENOMINATION, *LPWFSCDMDENOMINATION;
输出参数:
错误代码:
Page 33
CWA 15748-5:2008
cCurrencyID
识别币种,符合ISO格式[参考二].如果面额包含多种币种,此参数将被设置为三个ASCII 0x20h的字符数组。
ulAmount
被定义或分配的总额。如果面额包含多种币种,此参数为零。 usCount
lpulValues链表的大小,此参数和最后的WFS_INF_CDM_CASH_UNIT_INFO命令所返回的usCount值相同,或者可以被WFS_CMD_CDM_SET_CASH_UNIT_INFO或WFS_CMD_CDM_END_EXCHANGE命令所设置。如果混合算法被使用,此参数不是必要的且被设置为零。
如果应用程序被设置为有效的usCount,SP将返回WFS_ERR_INVALID_DATA。
lpulValues
指向一个ULONG型数组。此链表指定从每个钞箱提取的钞币数。此链表同样与WFS_INF_CDM_CASH_UNIT_INFO命令返回的钞箱结构数组一致,或者可以被
WFS_CMD_CDM_SET_CASH_UNIT_INFO或WFS_CMD_CDM_END_EXCHANGE命令所设置。数组的第一个值与
钞箱结构索引为1的相关联。
数组包含每个可能的钞箱。如果钞箱在面额中不是必须的,数组相关的值应该被设置为零。 如果应用程序不需要特定的面额,lpulValues指针将为NULL。
ulCashBox
仅使用于柜员机CDM设备。柜员机现金盒所需支付的总额。
LPWFSCDMDENOMINATION lpDenomination; 相关描述参照输入结构。
混合币种被定义时,面额结构里的ulAmount参数将为零且cCurrency的值被设置成为三个ASCII为0x20h的字符。
除了定义在[参考一]的一般错误代码外,下列错误代码可能产生: 值
涵义
WFS_ERR_CDM_INVALIDCURRENCY 在CDM的钞箱中,无法找到cCurrency参数所对应的币种
WFS_ERR_CDM_INVALIDTELLERID 无效柜员机ID。此错误不会在自助服务CDM中产生
WFS_ERR_CDM_CASHUNITERROR 钞箱的问题。WFS_EXEE_CDM_CASHUNIT -ERROR事件被发送,描述此详细信息。 WFS_ERR_CDM_ usMixNumber参数为WFS_CDM_INDIVIDUAL并且INVALIDDENOMINATION
ulCashBox的值和lpulValues所指定的钞币与特定的非零总额不匹配。此错误代码不出现在特定总额为零的情况下。
WFS_ERR_CDM_INVALIDMIXNUMBER 未知的混合算法。
WFS_ERR_CDM_NOCURRENCYMIX 面额中被指定的钞箱不是相同币种。 WFS_ERR_CDM_NOTDISPENSABLE CDM无法分配此总额。 WFS_ERR_CDM_TOOMANYITEMS
请求了过多的被分配项。
Page 34
CWA 15748-5:2008
WFS_ERR_CDM_EXCHANGEACTIVE CDM处于激活状态中。
(参考WFS_CMD_CDM_START_EXCHANGE)
WFS_ERR_CDM_NOCASHBOXPRESENT
事件:
柜员机无法指派足够的现金盒。
WFS_ERR_CDM_AMOUNTNOTINMIXTABLE 无法在混合表中找到此特定金额。 除了定义在[参考一]的一般事件外,下列事件也可能产生: 值
WFS_EXEE_CDM_CASHUNITERROR
注释:
无。
涵义
一个错误在钞箱尝试面额事件中发生
Page 35
CWA 15748-5:2008
5.2 WFS_CMD_CDM_DISPENSE
描述: 此命令执行分配钞币给客户。此命令提供与WFS_CMD_CDM_DENOMINATE命令相同的钞币分配附加能力。如果
不同的币种钞币被分配,货币名必须是三个ASCII 0x20h的字符,总额必须是零,混合算法必须是WFS_CDM_INDIVIDUAL。然而,此约定并不被应用在单币种或非货币的情况下,例如息票。
此命令被使用于下列情况:
1. 输入参数为总额,币种和面额。混合算法为WFS_CDM_INDIVIDUAL。因此,如果确
定为有效面额,可以被分配。
2. 输入参数为总额,币种和面额。因此,总额的定义如果成功,可以被分配。
3. 如果总额为零,币种和面额被混合算法WFS_CDM_INDIVIDUAL所支持并有效,可以被分配。
4. 命令将计算特定金额的部分面额,并且完成面额的分配。因次,命令的输入参数应该有币种,总额,混
合算法和部分特定面额或现金盒最小金额中的一个。此命令完成后,现金盒金额可能改变。 当多个物理钞箱对应一个逻辑钞箱时,设备选择当前钞箱进行分配操作。
如果WFS_INF_CDM_CAPABILITIES命令所返回的WFSCDMCAPS结构体中的bCashBox参数为TRUE,假设全部面额不能被满足,那么将返回部分面额,缺少的面额由现金盒提供。
如果设备是柜员机CDM,输入的usPosition参数可以是WFS_CDM_POSNULL。在此情况,usTellerID参数将提供分配操作的柜员机分配位置。
WFSCDMDISPENSE结构体中的bPresent参数定义为分配操作中是否已经呈现给客户的部分。如果此参数为TRUE,钞币将被移动到通道中,否则钞币将会被移动到暂存。第二种情况,参数将在WFS_CMD_CDM_PRESENT命令中分配钞币给客户时被使用。如果bPresent参数为FALSE,thefwPosition参数将无效。如果CDM没有暂存,bPresent参数无效。
输入参数: LPWFSCDMDISPENSE lpDispense;
typedef struct _wfs_cdm_dispense {
USHORT usTellerID; USHORT usMixNumber; WORD fwPosition; BOOL bPresent;
LPWFSCDMDENOMINATION lpDenomination; } WFSCDMDISPENSE, *LPWFSCDMDISPENSE;
usTellerID
定义柜员机。当设备为自助服务CDM时,参数无效。
usMixNumber
混合算法和隐藏混合表被使用于建立支持总额的面额。如果参数值为WFS_CDM_
INDIVIDUAL,被lpDenomination值支持的有效面额优先进行分配操作。如果找到的是无效的,没选择的面额将会被计算。
Page 36
CWA 15748-5:2008
输出参数:
错误代码:
fwPosition
定义金额从哪个位置被分配。如果设备为自助CDM此参数无效,这时,输出位将和usTellerID参数相关。此参数可能为下列特定值: 值
涵义
WFS_CDM_POSNULL 默认配置信息被使用。可能是随即位或由柜员机自己决定。
WFS_CDM_POSLEFT 呈现钞币到设备的左边位置 WFS_CDM_POSRIGHT 呈现钞币到设备的右边位置 WFS_CDM_POSCENTER 呈现钞币到设备的中间位置 WFS_CDM_POSTOP 呈现钞币到设备的上面位置 WFS_CDM_POSBOTTOM 呈现钞币到设备的下面位置 WFS_CDM_POSFRONT 呈现钞币到设备的前面位置 WFS_CDM_POSREAR 呈现钞币到设备的后面位置
bPresent
如果参数为TRUE,钞币将被移动到退出位置。否则,钞币将会被移动到暂存。
lpDenomination
指向WFSCDMDENOMINATION结构体,此结构体将描述分配动作中被使用的面额信息。关于WFSCDMDENOMINATION结构体的更多信息请参考WFS_CMD_CDM_DENOMINATE命令中的定义。
LPWFSCDMDENOMINATION lpDenomination;
关于WFSCDMDENOMINATION结构体的更多信息请参考WFS_CMD_CDM_DENOMINATE命令中的定义。
此结构体的值显示为分配总额和每个钞箱的分配钞币数。
混合币种被分配时,面额结构里的ulAmount参数将为零且cCurrency的值被设置成为三个ASCII为0x20h的字符。
除了定义在[参考一]的一般错误代码外,下列错误代码可能产生:
值
涵义
WFS_ERR_CDM_INVALIDCURRENCY 在CDM的钞箱中,无法找到cCurrency参数所对应的币种
WFS_ERR_CDM_INVALIDTELLERID 无效柜员机ID。此错误不会在自助服务CDM中产生
WFS_ERR_CDM_CASHUNITERROR
钞箱的问题。WFS_EXEE_CDM_CASHUNIT -ERROR事件被发送,描述此详细信息。
WFS_ERR_CDM_INVALIDDENOMINATION 现金盒与钞箱值的总数多余指定的金额 WFS_ERR_CDM_INVALIDMIXNUMBER 未知的混合算法。
WFS_ERR_CDM_NOCURRENCYMIX 钞箱中包含两个或更多的不同币种被选择 WFS_ERR_CDM_NOTDISPENSABLE CDM无法分配此总额。
WFS_ERR_CDM_TOOMANYITEMS 请求了过多的被分配项。此错误一般也出现在bPresent为FALSE时候单步取款动作的请求 WFS_ERR_CDM_UNSUPPOSITION 指定的输出位置不被支持
WFS_ERR_CDM_SAFEDOOROPEN
保险箱是打开的。为了完成此次操作,设备需要保险箱是关闭的。 Page 37
CWA 15748-5:2008
WFS_ERR_CDM_EXCHANGEACTIVE WFS_ERR_CDM_NOCASHBOXPRESENT WFS_ERR_CDM_ITEMSNOTTAKEN WFS_ERR_CDM_ITEMSLEFT
CDM处于激活状态中。
柜员机无法指派足够的现金盒。
在单步取款动作时钞币未被取走,此错误出现在硬件操时情况
由于优先分配,呈现或回收存款操作的结果,钞币被留在传输通道或出口位置
WFS_ERR_CDM_AMOUNTNOTINMIXTABLE 混合表无法找到此特定金额。
如果WFSCDMDISPENSE结构体中的bPresent参数值为TRUE,下列错误也可能产生: 值
涵义 呈现。
WFS_ERR_CDM_SHUTTEROPEN
需要关闭时,钞门依旧开着。没有钞币呈现。 呈现。
WFS_ERR_CDM_PRERRORITEMS
错误发生在钞币应该被移动到出口位时,至少有一些钞币没有呈现。
WFS_ERR_CDM_PRERRORUNKNOWN 错误发生在钞币应该被移动到出口位时,钞币的位
置未知。可能需要介入现金总额统计进行调解。
WFS_ERR_CDM_PRERRORNOITEMS 错误发生在钞币应该被移动到出口位时,没有钞币WFS_ERR_CDM_SHUTTERNOTOPEN 在需要的时候,钞门没有打开或打不开。没有钞币
事件:
除了定义在[参考一]的一般事件外,下列事件也可能产生: 值
WFS_USRE_CDM_CASHUNITTHRESHOLD WFS_EXEE_CDM_DELAYEDDISPENSE WFS_EXEE_CDM_STARTDISPENSE WFS_EXEE_CDM_CASHUNITERROR WFS_SRVE_CDM_ITEMSTAKEN WFS_EXEE_CDM_PARTIALDISPENSE WFS_EXEE_CDM_SUBDISPENSEOK
涵义
一个钞箱已经达到阈值情况 分配操作在指定时间之前被延时 分配操作开始延时时被触发 钞箱因为分配操作而产生一个错误
用户移动了呈现钞币。如果取款不是单步取款,事件将在取款动作完成后触发。 显示分配动作被服务单部分配操作分开 单步取款操作成功完成
论此面额处于暂存或被客户取走,都将反回WFS_ERR_CDM_NOTDISPENSABLE错误代码。
WFS_EXEE_CDM_NOTEERROR WFS_EXEE_CDM_INPUT_P6
注释:
无。
一个钞币发现错误已经发生。
ECB6 水平2和/或水平3的纸币已被发现。
WFS_EXEE_CDM_INCOMPLETEDISPENSE 无法分配完整的面额,仅能分配部分面额,无
Page 38
CWA 15748-5:2008
5.3 WFS_CMD_CDM_COUNT
描述: 此命令将清空物理钞箱。钞箱的所有钞币都将被分配和移动到指定输出位置。
CDM能够侦测到的钞币分配数和钞币记录数可能不同。如果CDM无法区别钞币分配数和钞币记录数,那么,ulDispensed参数将会和ulCounted参数相同。
如果WFS_CMD_CDM_COUNT命令执行成功,物理钞箱WFSCDMPHCU结构体的ulCount参数将被重置。
输入参数: LPWFSCDMPHYSICALCU lpPhysicalCU;
typedef struct _wfs_cdm_physical_cu {
BOOL bEmptyAll; WORD fwPosition;
LPSTR lpPhysicalPositionName; } WFSCDMPHYSICALCU, *LPWFSCDMPHYSICALCU;
输出参数:
{ LPSTR lpPhysicalPositionName; CHAR cUnitId[5]; ULONG ulDispensed; ULONG ulCounted; USHORT usPStatus;
} WFSCDMCOUNTEDPHYSCU, *LPWFSCDMCOUNTEDPHYSCU;
bEmptyAll
指定是否所有的物理钞箱都被清空。如果此参数为TRUE,lpPhysicalPositionName参数将无效。 fwPosition
指定本地的哪些钞币将被移动。参数可能是下列值之一: 值
涵义
WFS_CDM_POSNULL 输出位置由SP决定
WFS_CDM_POSLEFT 呈现钞币到设备的左边位置 WFS_CDM_POSRIGHT 呈现钞币到设备的右边位置 WFS_CDM_POSCENTER 呈现钞币到设备的中间位置 WFS_CDM_POSTOP 呈现钞币到设备的上面位置 WFS_CDM_POSBOTTOM 呈现钞币到设备的下面位置 WFS_CDM_POSFRONT 呈现钞币到设备的前面位置 WFS_CDM_POSREAR 呈现钞币到设备的后面位置 WFS_CDM_POSREJECT 拒绝使用输出位置
lpPhysicalPositionName
设定哪一个物理钞箱将被清空计数。此参数在WFSCDMPHCU结构体中的具有详细说明。
LPWFSCDMCOUNT lpCount; typedef struct _wfs_cdm_count
{ USHORT usNumPhysicalCUs;
LPWFSCDMCOUNTEDPHYSCU *lppCountedPhysCUs; } WFSCDMCOUNT, *LPWFSCDMCOUNT; usNumPhysicalCUs
参数指定返回的物理钞箱结构(WFSCDMCOUNTEDPHYSCU)的数字。参数值总是大于1。 lppCountedPhysCUs 指向一个WFSCDMCOUNTEDPHYSCU结构体的数组。 typedef struct _wfs_cdm_counted_phys_cu
错误代码:
事件:
Page 39
CWA 15748-5:2008
lpPhysicalPositionName
设定哪一个物理钞箱将被清空计数。此参数在WFSCDMPHCU结构体中的具有详细说明。 cUnitID
钞箱ID。此参数是WFSCDMPHCU结构体中用于定义的标识。
ulDispensed
在清空钞箱时被分配的钞币数。
ulCounted
在清空钞箱时被记录的钞币数。
usPStatus
提供物理钞箱的状态。可能是下列值之一: 值
涵义
WFS_CDM_STATCUOK 钞箱状态良好 WFS_CDM_STATCUFULL 钞箱已满
WFS_CDM_STATCUHIGH 钞箱将满(即达到或超过了WFSCDMCASH -UNIT 结构体中定义的ulMaximum阈值) WFS_CDM_STATCULOW 钞箱将空 WFS_CDM_STATCUEMPTY 钞箱已空 WFS_CDM_STATCUINOP 无效的钞箱 WFS_CDM_STATCUMISSING 没有钞箱
WFS_CDM_STATCUNOVAL 设定钞箱的值无效 WFS_CDM_STATCUNOREF 钞箱注释无参考值可用
WFS_CDM_STATCUMANIP
设备不处于激活状态时,钞箱被插入(包括更换)。此钞箱不能做分配动作
除了定义在[参考一]的一般错误代码外,下列错误代码可能产生:
值
涵义
WFS_ERR_CDM_CASHUNITERROR 钞箱的问题。WFS_EXEE_CDM_CASHUNIT -ERROR事件被发送,描述此详细信息。 WFS_ERR_CDM_UNSUPPOSITION 指定位置不被支持。
WFS_ERR_CDM_SAFEDOOROPEN
保险箱是打开的。为了完成此次操作,设备需要保险箱是关闭的。
WFS_ERR_CDM_EXCHANGEACTIVE CDM服务处于激活状态中
除了定义在[参考一]的一般事件外,下列事件也可能产生: 值
涵义
WFS_EXEE_CDM_CASHUNITERROR 钞箱因为记录操作而产生一个错误 WFS_SRVE_CDM_ITEMSTAKEN
腾空到输出位置上的钞币已经被用户取走 WFS_SRVE_CDM_ITEMSPRESENTED 钞币已经被腾空到输出位置。继续操作前,这
些钞币可能需要从输出位上移走。
WFS_EXEE_CDM_NOTEERROR 一个钞币发现错误已经发生。
WFS_EXEE_CDM_INPUT_P6
ECB6 水平2和/或水平3的纸币已被发现。
Page 40
CWA 15748-5:2008
注释:
无。
Page 41
CWA 15748-5:2008
5.4 WFS_CMD_CDM_PRESENT
描述: 此命令将移动钞币到输出位给客户取走。如果钞门存在,它将会在分配操作时被固定的控制,即使
bShutterControl参数被设置为FALSE。当用户取走钞币或者钞币被回收时,钞门将会关闭。如果通过WFS_CMD_CDM_DISPENSE命令使得参数lpfwPosition指向的位置为WFS_CDM_POSNULL,钞币将被分配和使用。
当此命令成功完成时,钞币属于客户。
输入参数: LPWORD lpfwPosition
输出参数:错误代码:事件:
注释:
lpfwPosition
指向分配金额的输出位置。参数将会是下列值之一: 值
涵义
WFS_CDM_POSNULL 默认配置信息被使用。可能是随即位或由柜员机自己决定。
WFS_CDM_POSLEFT 呈现钞币到设备的左边位置 WFS_CDM_POSRIGHT 呈现钞币到设备的右边位置 WFS_CDM_POSCENTER 呈现钞币到设备的中间位置 WFS_CDM_POSTOP 呈现钞币到设备的上面位置 WFS_CDM_POSBOTTOM 呈现钞币到设备的下面位置 WFS_CDM_POSFRONT 呈现钞币到设备的前面位置 WFS_CDM_POSREAR
呈现钞币到设备的后面位置
无。
除了定义在[参考一]的一般错误代码外,下列错误代码可能产生:
值
涵义 WFS_ERR_CDM_SHUTTERNOTOPEN 在需要的时候,钞门没有打开或打不开。没有钞币
呈现。
WFS_ERR_CDM_SHUTTEROPEN 需要关闭时,钞门依旧开着。没有钞币呈现。 WFS_ERR_CDM_NOITEMS
堆栈上没有钞币。
WFS_ERR_CDM_EXCHANGEACTIVE CDM服务处于激活状态中。
WFS_ERR_CDM_PRERRORNOITEMS 错误发生在钞币应该被移动到出口位时,没有钞币
呈现。
WFS_ERR_CDM_PRERRORITEMS
错误发生在钞币应该被移动到出口位时,至少有一些钞币没有呈现。
WFS_ERR_CDM_PRERRORUNKNOWN 错误发生在钞币应该被移动到出口位时,钞币的位
置未知。可能需要介入现金总额统计进行调解。
WFS_ERR_CDM_UNSUPPOSITION 指定位置不被支持。
除了定义在[参考一]的一般事件外,下列事件也可能产生: 值
涵义
WFS_USRE_CDM_CASHUNITTHRESHOLD 一个钞箱已经达到阈值情况
WFS_SRVE_CDM_ITEMSTAKEN 腾空到输出位置上的钞币已经被用户取走 WFS_EXEE_CDM_INPUT_P6
ECB6 水平2和/或水平3的纸币已被发现。
无。
Page 42
CWA 15748-5:2008
5.5 WFS_CMD_CDM_REJECT
描述: 此命令将把钞币从暂存和传输通道移动到拒绝钞箱(即钞箱的usType参数为WFS_CDM_TYPEREJECTCASSETTE
时)。拒绝钞箱的参数ulCount为被增加的分配操作时的拒绝钞币数或设备通过拒绝的计数。注意:拒绝计数是不可靠的。
输入参数: 无。
输出参数: 无。
错误代码:
事件:
注释:
除了定义在[参考一]的一般错误代码外,下列错误代码可能产生:
值
涵义
WFS_ERR_CDM_CASHUNITERROR 拒绝钞箱的问题。WFS_EXEE_CDM_CASHUNIT -ERROR事件被发送,描述此详细信息。 WFS_ERR_CDM_NOITEMS 堆栈上没有钞币。 WFS_ERR_CDM_EXCHANGEACTIVE
CDM服务处于激活状态中。
除了定义在[参考一]的一般事件外,下列事件也可能产生: 值
涵义
WFS_USRE_CDM_CASHUNITTHRESHOLD 拒绝阈值已达到。
WFS_EXEE_CDM_CASHUNITERROR 钞箱在拒绝操作时出现错误。
WFS_EXEE_CDM_INPUT_P6 ECB6 水平2和/或水平3的纸币已被发现。
无。
Page 43
CWA 15748-5:2008
5.6 WFS_CMD_CDM_RETRACT
描述: 此命令将回收可能属于客户的钞币。回收的钞币可能被移动到回收钞箱,拒绝钞箱,钞币钞箱,传输通道或
暂存的任何一个地方。钞币回收之后,钞门将被自动关闭,即使bShutterControl参数被设置成FALSE。
如果钞币被移动到回收钞箱(即钞箱参数usType为WFS_CDM_TYPERETRACTCASSETTE时),回收钞箱的ulCount参数将会增加到从1到指定的回收数之间的数。如果钞币被回收到任何其他的钞箱(即钞箱参数usType为WFS_CDM_TYPEREJECTCASSETTE时),钞箱的参数ulCount需要被增加此次WFS_CMD_CDM_RETRACT命令已经传出的被分配的钞币数或者增加设备通过回收所记录的数目。注意:回收计数是不可靠的。
输入参数: LPWFSCDMRETRACT lpRetract;
typedef struct _wfs_cdm_retract
无论WFSCDMCAPS结构体中bRetract参数的值是否有效,此命令都被支持。
{
WORD fwOutputPosition;
USHORT usRetractArea; USHORT usIndex;
} WFSCDMRETRACT, *LPWFSCDMRETRACT;
fwOutputPosition
指定回收钞币的输出位置。可能是下列值之一: 值
WFS_CDM_POSNULL WFS_CDM_POSLEFT WFS_CDM_POSRIGHT WFS_CDM_POSCENTER WFS_CDM_POSTOP WFS_CDM_POSBOTTOM WFS_CDM_POSFRONT WFS_CDM_POSREAR
usRetractArea
设定钞币被回收到的区域。可能是下列值之一: 值
WFS_CDM_RA_RETRACT WFS_CDM_RA_TRANSPORT WFS_CDM_RA_STACKER WFS_CDM_RA_REJECT
WFS_CDM_RA_ITEMCASSETTE usIndex
如果参数usRetractArea被设为WFS_CDM_RA_RETRACT,逻辑回收位里将包含被回收的现金。第一逻辑回收位的逻辑计数从1开始,在此之后的每个位置的逻辑计数加1。如果此容器包含多个逻辑回收箱(WFS_INF_CDM_CASH_UNIT_INFO命令里的WFS_CDM_TYPERETRACTCASSETTE类型),那么,WFSCDMCUINFO结构体里的usIndex计数将从第一回收钞箱的第一回收位开始,渐加到最后回收钞箱的最后回收位结束。usIndex参数的最大值为每个回收钞箱里对应的WFSCDMCASHUNIT.ulMaximum。如果参数usRetractArea没有设为WFS_CDM_RA_RETRACT,本参数无效。
涵义
回收钞币到回收钞箱。 回收钞币到传输通道。 回收钞币到暂存。 回收钞币到拒绝钞箱。
回收钞币到钞币盒,即能被从分配的盒子 涵义
默认培植信息被使用。
回收钞币从左边的输出位置。 回收钞币从右边的输出位置。 回收钞币从中间的输出位置。 回收钞币从上面的输出位置。 回收钞币从下面的输出位置。 回收钞币从前面的输出位置。 回收钞币从后面的输出位置。
Page 44
CWA 15748-5:2008
输出参数: 无。
错误代码: 除了定义在[参考一]的一般错误代码外,下列错误代码可能产生:
值
WFS_ERR_CDM_CASHUNITERROR
涵义
回收钞箱出现问题。WFS_EXEE_
CDM_CASHUNITERROR事件被发送,描述此详细信息。
WFS_ERR_CDM_NOITEMS WFS_ERR_CDM_EXCHANGEACTIVE WFS_ERR_CDM_SHUTTERNOTCLOSED WFS_ERR_CDM_ITEMSTAKEN
没有钞币要回收。 CDM在激活状态中。 关闭钞门失败。
钞币在开始操作前被分配到输出位置上,但在操作结束后没有被取走,—部分或全部钞币没有被回收。
WFS_ERR_CDM_INVALIDRETRACTPOSITION 参数usIndex的值不被支持。 WFS_ERR_CDM_NOTRETRACTAREA
事件:
除了定义在[参考一]的一般事件外,下列事件也可能产生: 值
WFS_EXEE_CDM_CASHUNITERROR WFS_SRVE_CDM_ITEMSTAKEN WFS_EXEE_CDM_INPUT_P6
注释:
无。
涵义
回收钞币到回收或拒绝钞箱时出现错误 分配的钞币已经被用户取走。
ECB6 水平2和/或水平3的纸币已被发现。
WFS_USRE_CDM_CASHUNITTHRESHOLD 回收或拒绝钞箱已达到阈值。
参数usRetractArea所指定的回收区域不被支持。
Page 45
CWA 15748-5:2008
5.7 WFS_CMD_CDM_OPEN_SHUTTER
描述: 此命令用于打开钞门。
输入参数: LPWORD lpfwPosition;
lpfwPosition
输出参数:
错误代码: 事件:
注释:
指向钞门被打开的输出位置。如果应用程序不需要指定钞门,此参数可以被设置成NULL或WFS_CDM_POSNULL的上下文信息。此位置可能为下列情况: 值
涵义
WFS_CDM_POSNULL 默认配置信息被使用。 WFS_CDM_POSLEFT 在左边的输出位置打开钞门。 WFS_CDM_POSRIGHT 在右边的输出位置打开钞门。 WFS_CDM_POSCENTER 在中间的输出位置打开钞门。 WFS_CDM_POSTOP 在上面的输出位置打开钞门。 WFS_CDM_POSBOTTOM 在下面的输出位置打开钞门。 WFS_CDM_POSFRONT 在前面的输出位置打开钞门。 WFS_CDM_POSREAR 在后面的输出位置打开钞门。
无。 除了定义在[参考一]的一般错误代码外,下列错误代码可能产生:
值
涵义
WFS_ERR_CDM_UNSUPPOSITION 指定位置不被支持。 WFS_ERR_CDM_SHUTTERNOTOPEN 打开钞门失败。 WFS_ERR_CDM_SHUTTEROPEN
钞门已经被打开。 WFS_ERR_CDM_EXCHANGEACTIVE CDM处于激活状态中。
此命令仅产生定义在[参考一]的一般事件。
无。
Page 46
CWA 15748-5:2008
5.8 WFS_CMD_CDM_CLOSE_SHUTTER
描述: 此命令用于关闭钞门。
输入参数: LPWORD lpfwPosition;
lpfwPosition
输出参数:
错误代码: 事件:
注释:
指向钞门被关闭的输出位置。如果应用程序不需要指定钞门,此参数可以被设置成NULL或WFS_CDM_POSNULL的上下文信息。此位置可能为下列情况: 值
涵义
WFS_CDM_POSNULL 默认配置信息被使用。 WFS_CDM_POSLEFT 在左边的输出位置关闭钞门。 WFS_CDM_POSRIGHT 在右边的输出位置关闭钞门。 WFS_CDM_POSCENTER 在中间的输出位置关闭钞门。 WFS_CDM_POSTOP 在上面的输出位置关闭钞门。 WFS_CDM_POSBOTTOM 在下面的输出位置关闭钞门。 WFS_CDM_POSFRONT 在前面的输出位置关闭钞门。 WFS_CDM_POSREAR
在后面的输出位置关闭钞门。
无。 除了定义在[参考一]的一般错误代码外,下列错误代码可能产生:
值
涵义
WFS_ERR_CDM_UNSUPPOSITION 指定位置不被支持。 WFS_ERR_CDM_SHUTTERCLOSED 钞门已经被关闭。 WFS_ERR_CDM_SHUTTERNOTCLOSED 关闭钞门失败。
WFS_ERR_CDM_EXCHANGEACTIVE
CDM处于激活状态中。 此命令仅产生定义在[参考一]的一般事件。
无。
Page 47
CWA 15748-5:2008
5.9 WFS_CMD_CDM_SET_TELLER_INFO
描述: 此命令被允许设置柜员机的初始位置以及被分配的各个币种的初始计数。通过此命令设定的值是不变的。此
命令仅应用于柜员机CDM。
输入参数: LPWFSCDMTELLERUPDATE lpTellerUpdate;
typedef struct _wfs_cdm_teller_update
{
USHORT usAction;
LPWFSCDMTELLERDETAILS lpTellerDetails; } WFSCDMTELLERUPDATE, *LPWFSCDMTELLERUPDATE;
输出参数:
错误代码:
事件:
注释:
usAction
指定执行的动作可能如下: 值
涵义
WFS_CDM_CREATE_TELLER 一个柜员机被增加。 WFS_CDM_MODIFY_TELLER 修改已存在的柜员机信息。 WFS_CDM_DELETE_TELLER 一个柜员机被移除。
lpTellerDetails
更多信息请参照WFS_INF_CDM_TELLER_INFO命令的WFSCDMTELLERDETAILS结构体。
无。 除了定义在[参考一]的一般错误代码外,下列错误代码可能产生:
值
涵义
WFS_ERR_CDM_INVALIDCURRENCY 指定币种不是有效币种。
WFS_ERR_CDM_INVALIDTELLERID 柜员机ID无效。此错误不会出现在自助服务的
CDM上。
WFS_ERR_CDM_UNSUPPOSITION 指定位置不被支持。
WFS_ERR_CDM_EXCHANGEACTIVE
目的柜员机正处于激活操作中。 除了定义在[参考一]的一般事件外,下列事件也可能产生: 值
涵义
WFS_SRVE_CDM_TELLERINFOCHANGED 柜员机信息被创建,修改或删除。
无。
Page 48
CWA 15748-5:2008
5.10 WFS_CMD_CDM_SET_CASH_UNIT_INFO
描述: 此命令用于校正CDM中钞箱关于状态和上下文的信息。
此命令出现在服务事件WFS_SRVE_CDM_CASHUNITINFOCHANGED通知应用程序钞箱被改变信息的时候。 WFSCDMCASHUNIT结构体的下列值可能通过此命令被更新:
ulInitialCount
ulCount ulRejectCount ulMaximum ulDispensedCount ulPresentedCount ulRetractedCount ulMinimum bAppLock
也可能是WFSCDMPHCU结构体的下列值: ulInitialCount
ulCount ulRejectCount ulDispensedCount ulPresentedCount ulRetractedCount
任何其他的变化必须通过改变操作来执行。
如果lppPhysical指向的ulCount 和ulRejectCount 值通过此命令被设置为零,应用程序将提示物理钞箱的计数不能被保持。逻辑钞箱的计数依旧被保持并且能够被应用程序所使用。如果物理计数通过此命令被设置,逻辑计数将是物理计数的总数,而逻辑计数发送的任何值将被忽略。 通过此命令设置的值将是固定的。
输入参数: LPWFSCDMCUINFO lpCUInfo;
关于WFSCDMCUINFO结构体的更多信息请参考WFS_INF_CDM_CASH_UNIT_INFO命令的文档。
输出参数: 无。
错误代码: 除了定义在[参考一]的一般错误代码外,下列错误代码可能产生:
值
WFS_ERR_CDM_INVALIDTELLERID WFS_ERR_CDM_INVALIDCASHUNIT WFS_ERR_CDM_EXCHANGEACTIVE WFS_ERR_CDM_CASHUNITERROR
事件:
值
WFS_USRE_CDM_CASHUNITTHRESHOLD WFS_EXEE_CDM_CASHUNITERROR
涵义
一个钞箱已经达到阈值情况。 一个错误在访问钞箱时发生。
除了定义在[参考一]的一般事件外,下列事件也可能产生:
涵义
无效的柜员机ID。此错误不会出现在自助服务的CDM上。 无效的钞箱。
CDM正处于激活状态中。
钞箱出现问题。WFS_EXEE_CDM_CASHUNITERROR事件被发送,描述此详细信息。
WFS_SRVE_CDM_CASHUNITINFOCHANGED 钞箱被此命令更新。
Page 49
CWA 15748-5:2008
注释:
无。
Page 50
CWA 15748-5:2008
5.11 WFS_CMD_CDM_START_EXCHANGE
描述: 此命令把CDM设置为激活状态,即钞箱的状态可能为空,补充,移走或者交换。其他的更新将通过
WFS_CMD_CDM_SET_CASH_UNIT_INFO命令,钞箱所有的变化必须处于激活状态中。
此命令返回的当前钞箱信息在WFS_INF_CDM_CASH_UNIT_INFO命令的文档中被描述。此命令也初始化任何可能需要执行钞箱访问的物理过程。在使用此命令之前,应用程序应该首先确定拥有CDM的唯一控制权。 如果WFS_EXEE_CDM_CASHUNITERROR事件被触发,此命令可能返回WFS_SUCCESS。如果命令返回的是WFS_SUCCESS或WFS_ERR_CDM_EXCHANGEACTIVE,CDM处于激活状态中。
当处于激活状态中,CDM将进行所有的除WFS[Async]执行命令之外的WFS请求。除了下面被列出的这些: WFS_CMD_CDM_END_EXCHANGE WFS_CMD_CDM_SET_MIX_TABLE
所有其他的WFS[Async]执行命令将在错误WFS_ERR_CDM_EXCHANGEACTIVE中被触发。
如果通过此命令返回一个错误,WFS_CMD_CDM_CASH_UNIT_INFO命令将被用来确定钞箱的信息。
如果CDM是同时存在CIM的复合设备的一部分(即现金循环机),激活操作能在复合设备的每个接口上分别被执行,或者能通过CIM接口完成整个激活操作。 通过CDM和CIM的接口进行激活:
如果激活由CDM和CIM的接口分别提供,这些操作不能同时进行。激活状态因此必须按照下列顺序进行执行: CDM
(Lock)
WFS_CMD_CDM_START_EXCHANGE ?exchange action? WFS_CMD_CDM_END_EXCHANGE (Unlock)
CIM
(Lock)
WFS_CMD_CIM_START_EXCHANGE ?exchange action? WFS_CMD_CIM_END_EXCHANGE (Unlock)
在循环机时,存款箱的计数通过CIM的接口被设置,取款箱计数通过CDM的接口被设置。循环箱能通过两者的接口被设置。然而,如果设备有多个币种(面额)的循环箱(或多个等价面额的相关票据),CIM接口应该对这些受到影响的单元进行激活操作。CIM和CDM钞箱所留下的未被激活的相同部分将在其他的接口上被激活(或WFS_CMD_XXX_SET_CASH_UNIT_INFO)。例如:如果CDM被用于设置当前计数,而CIM的lpNoteNumberList结构中没有对应改变。即是两者的数据不一致。
通过CIM的接口进行激活: