0

我正在使用 node-opcua 中的客户端和服务器,当客户端尝试写入值并且出现问题时,它可以在服务器端进行错误管理。为了改善这一点,我想有一个像这个例子中的异步设置器:

        const wantedValue = namespace.addAnalogDataItem({
            componentOf: node,
            browseName: `${chamber}${folder}Req`,
            nodeId: `s=${chamber}${folder}Req`,
            dataType: "Double",
            engineeringUnits: settings.unit,
            engineeringUnitsRange: settings.range,
            value: {
                get: () => new Variant({dataType: DataType.Double, value: wrapper.readProgram(chamber, folder)}),
                set: async (variant: Variant) => {
                    const success = await wrapper.writeProgram(chamber, folder, variant.value)
                    return  success ? StatusCodes.Good : StatusCodes.Bad
                }
            }
        })    

这种幼稚的方法会导致打字错误:

    throw new Error("Cannot find StatusCode " + statusCode);

有更好的方法吗?

4

1 回答 1

0
  • get 和 set lambda 被设计为同步的。
  • 您需要使用带有 timestamped_get 和 timestamped_set 的回调表单来实现您所需要的。
于 2021-01-23T08:45:02.243 回答