问题标签 [cen-xfs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 从 C# 连接到 CEN/XFS 设备
我正在尝试C#
通过CEN/XFS
.
我从CEN 网站安装并阅读了协议文档。在我的研究中,我读到我应该使用它msxfs.dll
来连接XFS Manager
用 C 语言构建的(至少是我读到的),并且没有关于这个 dll 的文档,因为微软不拥有它,并且它遵循 CEN 标准。
我迷路了,正在寻找一些关于我的起点的指导:
msxfs.dll
我是否应该在我的应用程序旁边复制并msxfs.dll
根据 CEN 规范开始调用函数。- 还是我走错了路,还有另一种构建集成的方法?
如果有人有任何关于如何连接到CEN/XFS
使用C#
的文章或教程将非常有帮助,我发现的所有示例都是通过使用j/xfs
或他们描述如何构建 SPI 函数而不是如何使用 API 函数。
c# - 将 C 结构编组为 C#
我正在尝试调用C
具有以下 C# 签名的函数
我的C#
代码如下所示:
我的问题是,每当我调用WFSGetInfo
函数时,它都会成功(hResult == 0
),但只会填充RequestID
in
wfsRESULT
并且所有其他值都将为 0(默认值),并且当我尝试转换lpBuffer
为WFSPINSTATUS
以下异常时发生。
System.NullReferenceException: 'Object reference not set to an instance of an object.'
我不认为问题出在调用的 dll 中,msxfs
因为它是标准的 windows dll。
我尝试了很多解决方案和技术(例如,我尝试将SYSTEMTIME
布局设置为Explicit
)但结果相同;我不会添加我的试验来缩短代码。
我做了很多关于编组结构和联合的搜索,以下站点对使用 C#C
进行编组非常有帮助
我不确定这些信息是否有用,但我正在构建CEN/XFS
与 EPP 设备的集成。
c# - 使用 WFSRegister 注册后,在我的应用程序中未收到 XFS 事件 [Windows 消息] (SERVICE_EVENTS,EXECUTE_EVENTS)
我有一个 C# 控制台应用程序,我在其中使用 CEN XFS(金融服务扩展)规范来获取 ATM 信息。我正在使用 PInvoke 与 msxfs.dll 进行通信。我正在注册监听 SERVICE_EVENTS、USER_EVENTS、SYSTEM_EVENTS、EXECUTE_EVENTS 调用方法
在我的代码中,我创建了一个 WNDCLASSEX 实例,将一个处理 Windows 消息的方法分配给它的 lpfnWndProc 字段;然后我使用 RegisterClassEx([In] ref WNDCLASSEX lpWndClass) 注册一个类并创建一个调用 CreateWindowEx 的窗口。
稍后在我的代码中,我执行 WFS_CMD_CDM_SET_CASH_UNIT_INFO 命令并返回 WFS_SUCCESS,根据文档,此命令将生成 WFS_SRVE_CDM_CASHUNITINFOCHANGED 服务事件,但我没有收到任何值为 304 的窗口消息(#define WFS_SRVE_CDM_CASHUNITINFOCHANGED (CDM_SERVICE_OFFSET + 4))或任何相关消息与 XFS 事件。
我正在使用的 msxfs.dll 或服务提供程序可能没有实现事件通知。我是否错过了阻止我获取 Windows 消息的内容?
xfs - XFS 中的 Dispenser Counters 与应用程序维护的 Counters 非常不同
我正在尝试构建一个应用程序,该应用程序将通过 XFS 监视 Peripheral 上的活动。
每当现金单位发生变化时,应用程序都会收到 CASHUNITINFO_CHANGED 事件。基于此,我使用 CASHUNITINFO 命令获取现金单元信息。
我发现 Dispenser XFS API 在其中一台 NCR ATM 中没有给我正确的计数器。我在 Diebold 和 Wincor 中测试了相同的代码,并且得到了正确的计数器值。
我正在使用 WFS_INF_CDM_CASH_UNIT_INFO 命令来获取每个逻辑现金单元的 ulInitialCount、ulCount、ulRejectCount、ulDispensedCount、ulPresentedCount。
例如,这就是我在 XFS 中看到的...
但在 ATM 现金柜台管理屏幕中,柜台不同,如下所示。
谢谢, 斯里瓦桑
xfs - 查找交换机连接和 ATM 状态
通过 CEN-XFS,我能够获得 ATM 中所有外围设备的设备状态。但是,是否有一种标准方法可以确定 ATM 应用程序是否已连接到交换机并处于服务状态?
xfs - 我如何知道是否完成了现金加载/现金补充操作
我正在尝试为 ATM 开发现金水平监控应用程序。
我使用 CEN-XFS API 监控 ATM 的现金柜台。
WFS_INF_CDM_CASH_UNIT_INFO 命令为我提供了当前的现金水平,但我如何知道柜台是否已清空并已完成补充或现金添加?
没有定义特定的事件来表示相同吗?我应该在计数器中查找零值以解释为“清除计数器”吗?
xfs - 我如何知道自动提款机交易是成功还是失败?
我正在尝试开发一个 ATM 现金交易监控应用程序。我正在使用 CEN-XFS API 来监听 Cash Dispenser Device Class (CWA1574-8) 接口生成的事件。我通读了 WFS_CMD_CDM_DISPENSE 命令文档,发现该命令生成的所有事件都没有清楚地表明现金交易由于现金堵塞而失败。
卡币时会产生WFS_EXEE_CDM_CASHUNITERROR吗?还有另一个事件 WFS_EXEE_CDM_NOTEERROR 表示它将在项目检测错误时生成,因此显然与现金堵塞无关。
类似地,与此相关的另一个问题是 WFS_SRVE_CDM_ITEMSTAKEN 事件指示“已获取项目”,因此,我可以收听该事件,但“未获取项目”没有事件,它作为错误代码“WFS_ERR_CDM_ITEMSNOTTAKEN”返回。我的程序只是一个监控应用程序,我的程序监听这些事件,我现在怎么知道客户没有拿走所提供的现金?看起来设计很差。
cen-xfs - WFS_CMD_IDC_READ_RAW_DATA 总是在我的应用程序中返回 WFS_EXEE_IDC_INVALIDMEDIA 事件
我正在使用 CEN/XFS API 创建应用程序,并且正在使用 PIN 和 IDC 模块。
在第一步(启动/打开/注册之后),我想让用户插入它的身份证。所以我WFS_CMD_IDC_READ_RAW_DATA
用WFSAsyncExecute
命令打电话。在此命令完成后(之后:Messages WFS_EXECUTE_COMPLETE
事件),我希望有WFS_EXEE_IDC_MEDIAINSERTED
事件,但我总是进入WFS_EXEE_IDC_INVALIDMEDIA
我的应用程序。这是怎么回事?
编辑:为了确保读卡器里面不包含任何卡,我还添加了一个检查它的状态,如果是status = WFS_EXEE_IDC_MEDIAINSERTED
,我重置它(保留所有卡),然后调用:WFS_CMD_IDC_READ_RAW_DATA
。但同样,我总是得到WFS_EXEE_IDC_INVALIDMEDIA
事件。
c++ - CEN/XFS:为什么 wAntiFraudModule 会给我这些值?
为什么我会在 LPWFSIDCSTATUS 的字段成员中获得如此疯狂的高价值?这是否意味着ATM没有反欺诈模块?我错过了什么吗?
fwDevice 或 fwMedia 等字段值会产生正确的值,所以我不确定 wAntiFraudModule 或 wDevicePosition 为什么会这样。
这是我正在进行的代码段。
c++ - CEN XFS:打开传感器和指示灯模块导致崩溃
我正在尝试从传感器和指示器模块获取一些信息,但程序总是崩溃。当我逐步调试时,我从 WFSGetInfo() 得到结果 -48 (WFS_ERR_TIMEOUT),这意味着它已经超时。传感器和指示器注册表项存在,供应商 DLL 也存在。所有其他模块都可以正常打开。知道什么给出了吗?
SIU SPI 版本是 3.02,我使用的是 SPI/XFS 版本 0x0B020003 和 XFS SDK 3.20。这会是问题之一吗?