私は 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);
それを行うより良い方法はありますか?