【问题标题】:WFS_ERR_SIU_INVALID_PORT (-801) error when enabling events for SIU为 SIU 启用事件时出现 WFS_ERR_SIU_INVALID_PORT (-801) 错误
【发布时间】:2019-07-03 08:10:30
【问题描述】:

我正在尝试为 SIU 设备启用事件,如下所示:

    LPWFSRESULT lpWfsResult;
    WFSSIUENABLE commandData;
    commandData.fwSensors[WFS_SIU_OPERATORSWITCH] = WFS_SIU_ENABLE_EVENT;
    commandData.fwIndicators[WFS_SIU_OPENCLOSE] = WFS_SIU_ENABLE_EVENT;

    HRESULT hResult = WFSExecute(hService, WFS_CMD_SIU_ENABLE_EVENTS, &commandData, 10000, &lpWfsResult);
    cout << "Events enabled?:" << hResult << endl;
    WFSFreeResult(lpWfsResult);

这在其中一个测试 ATM 中按预期工作 (hResult = 0)。 但是在另一个测试 ATM 上,这会返回 WFS_ERR_SIU_INVALID_PORT (-801)。

根据XFS doc,这意味着:

尝试将端口设置为新值无效,因为该端口不存在或该端口已预先配置为输入端口。

我不太明白文档的描述。有人可以解释为什么会返回此状态以及应该做什么吗?

谢谢。

【问题讨论】:

    标签: c++ cen-xfs


    【解决方案1】:

    我认为你需要在 WFSExecute 之前初始化 WFSSIUENABLE 结构。您只是设置 Operator Switch 和 Open/close 的值,但其他的呢?尝试做一个 memset 将所有其他设置为零(WFS_SIU_NO_CHANGE):

    memset( commandData, 0, sizeof( WFSSIUENABLE));
    

    要做的另一件事是首先询问 SIU 功能,了解此 ATM 中有哪些端口可用。如果您尝试启用 ATM 中不可用的端口,则会出现此错误。并非所有 AMT 都具有相同的可用端口。

    【讨论】:

    • 嗨@SuperG280,我认为OperatorSwitch 和Open/Close Indicator 是每台ATM 都可能提供的一些基本端口。但是,最好检查一下 SIU 功能。非常感谢您的建议。我会试试你的建议。
    • 并非总是存在。在一些知名厂商的一些基本型号中,考虑到最终成本,他们去掉了OperatorSwitch按钮,打开柜门就可以切换到supervisor模式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 2018-04-12
    • 2020-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多