WFS_ERR_SIU_INVALID_PORT (-801) 为 SIU 启用事件时出错

WFS_ERR_SIU_INVALID_PORT (-801) error when enabling events for SIU

我正在尝试为 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 上,这个 returns WFS_ERR_SIU_INVALID_PORT (-801).

根据 XFS doc,这意味着:

An attempt to set a port to a new value was invalid because the port does not exist or the port is pre-configured as an input port.

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

谢谢。

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

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

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