node.js使用许多受监视的项目
我使用node-opcua module
,我想用订阅监视许多opc ua nodes
,我看到的结果是:用户在HTML UIselect要监视的节点,然后单击监视button,发送这些nodeIds
作为参数,然后每个nodeid
将是设置订阅和.on(“更改”)适用于这些项目中的每一个并行。 现在代码如下所示:
var monitoredItem = the_subscription.monitor({ nodeId: opcua.resolveNodeId("ns=6;s=S71500ET200MP station_1.Master.111"), attributeId: 13 }, { samplingInterval: 100, discardOldest: true, queueSize: 10 }, opcua.read_service.TimestampsToReturn.Both ); console.log("-------------------------------------"); var nodes = []; monitoredItem.on("changed",function(dataValue){ //console.log(" value = ",dataValue.value.value); //console.log(" sourceTimestamp = ",dataValue.sourceTimestamp.toISOString()); //console.log(JSON.stringify(dataValue)); var Node = {nodeId: "ns=6;s=S71500ET200MP station_1.Master.111", nodeName: "111" , nodeValue: dataValue.value.value , nodeTimestamp: dataValue.sourceTimestamp.toISOString()}; var arrayNode = Object.keys(Node).map(function(k) { return Node[k] }); //console.log(JSON.stringify(Node)); nodes.push(arrayNode); // console.log(nodes); }); },
现在,如果我想设置新项目来监视它只是添加许多variablesMonitorItem1,。2,。3等
如何以更agile/dynamic
方式做到这一点? 如果我有nodeIds
数组(string),我希望在订阅中监视它们中的每一个。 代码是async.series
([code])的一部分
使用async.each方法解决
async.each(nodeIdArr, function(nodeid, callback) { var monitoredItem = the_subscription.monitor({ nodeId: opcua.resolveNodeId(nodeid), attributeId: 13 }, { samplingInterval: 100, discardOldest: true, queueSize: 10 }, opcua.read_service.TimestampsToReturn.Both ); console.log("-------------------------------------"); monitoredItem.on("changed",function(dataValue){ //console.log(" value = ",dataValue.value.value); //console.log(" sourceTimestamp = ",dataValue.sourceTimestamp.toISOString()); //console.log(JSON.stringify(dataValue)); var Node = {nodeId: nodeid, nodeName: "111" , nodeValue: dataValue.value.value , nodeTimestamp: dataValue.sourceTimestamp.toISOString()}; var arrayNode = Object.keys(Node).map(function(k) { return Node[k] }); //console.log(JSON.stringify(Node)); nodes.push(arrayNode); // console.log(nodes); });
- Node.js – “找不到模块”module.js'“
- Browserify&Jstify:“Unexpected token%=”
- 在Webstorm 7.0.3中进行debugging时,热切换Node.js文件
- Zombieasynchronous加载多个JS文件
- readline数据被推入后,数组为空
- 使用Dalekjstesting工具,如何在Option标签中没有“value”属性时selectDropdown(Select element)中的Option?
- Babel意外的令牌导出
- React Setup'npm run build'error'意外标记'b'在18:4“
- Phantom.js填写字段,点击提交,现在卡在访问下一页