简体   繁体   English

如何使用 XFS 标准管理 ATM 的整个设备(例如自动取款机)?

[英]how can I manage the entire device (eg dispenser) of the ATM using the XFS standard?

I am currently working on an ATM project.我目前正在从事一个 ATM 项目。 The ATM consists of four main devices (dispenser, bill acceptor, card reader, printer). ATM 由四个主要设备(取款机、票据接受器、读卡器、打印机)组成。 As far as I know, to manage all ATM devices, you need to use the XFS standard.据我所知,要管理所有 ATM 设备,您需要使用 XFS 标准。 I work in the C# programming language.我使用 C# 编程语言工作。 I found some examples online here and here , but I don't understand them.我在这里这里在网上找到了一些例子,但我不明白。

My question is: how can I manage the entire device (eg dispenser) of the ATM using the XFS standard?我的问题是:如何使用 XFS 标准管理 ATM 的整个设备(例如自动取款机)?

OK this is not gonna be what you expected but very first things you need to do are:好的,这不会是您所期望的,但您需要做的第一件事是:

  • You should receive development documentation from the ATM provider you will be using.您应该从您将使用的 ATM 提供商处收到开发文档。
  • In addition check out CEN XFS documentation as these are in case of NCR at least used as reference for standard operation.此外,请查看CEN XFS 文档,因为这些文档至少在 NCR 的情况下用作标准操作的参考。

After you have familiarized to the API through documentation you can use either of the C# API implementation you referenced in your question to actually use the device commands referenced in the documents.在您通过文档熟悉 API 后,您可以使用您在问题中引用的 C# API 实现中的任何一个来实际使用文档中引用的设备命令。

CEN XFS API is a pure c-API so all the commands use a very limited function set. CEN XFS API 是纯 c-API,因此所有命令都使用非常有限的 function 集。 Parameters of these functions are passed to device specific service providers (that you open using XFS manager).这些函数的参数被传递给设备特定的服务提供者(您使用 XFS 管理器打开)。 Some devices like note recycling devices are in fact compound devices so you need to open them multiple times.有些设备,比如纸币回收设备,实际上是复合设备,需要多次打开。 Once for each CEN XFS interface that the device supports.设备支持的每个 CEN XFS 接口一次。

In very high level pseudo code this is the flow how you manage XFS devices:在非常高级的伪代码中,这是管理 XFS 设备的流程:

Open XFS Manager
For each device:
  Open device
  Register to listen device events
  Check device status (and capabilities in case you are working in multi ATM environment so that you know what device you are dealing this time).
  Setup device if need be and recover any error conditions reported in device status

Start the service loop (Providing ATM service to customers if ATM is healthy and
  maintenance personnel to execute tasks like maintaining faulty
  devices and loading cash into the ATM etc.)

This is in no way an easy task to do so I would advice that you do acquire basic knowledge first through courses provided by the ATM manufacturer your software is aimed to work on.这绝不是一件容易的事,因此我建议您首先通过 ATM 制造商提供的课程获得基础知识,您的软件旨在处理这些课程。 I assume all will have their own training programs although I can only say this to be the case for NCR provided ATMs.我认为所有人都会有自己的培训计划,尽管我只能说 NCR 提供的 ATM 就是这种情况。

XFS.Net and XFS4NET are by far not complete.Net wrapper implementations for CEN XFS. XFS.Net 和 XFS4NET 到目前为止还不是完整的 CEN XFS 的.Net 包装器实现。

Converting the native C data structures to.Net/C# and back to C is anything but trivial (having done an implementation for this myself).将本机 C 数据结构转换为 .Net/C# 并转换回 C 绝非易事(我自己为此做了一个实现)。 You have to handle all basic types, strings, Unicode strings, arrays of strings that are terminated by two 0 characters, arrays of pointers, and so on, together with the memory management functions provided by the XFS manager. You have to handle all basic types, strings, Unicode strings, arrays of strings that are terminated by two 0 characters, arrays of pointers, and so on, together with the memory management functions provided by the XFS manager.

XFS4IoT is a complete different thing. XFS4IoT 完全不同。 It supposed to be the future, but is not compatible with CEN XFS 3.x.它应该是未来,但与 CEN XFS 3.x 不兼容。 KAL provides on open source framework https://github.com/KAL-ATM-Software for Xfs4IoT. KAL 为 Xfs4IoT 提供开源框架https://github.com/KAL-ATM-Software

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM