Skip to content

Commit e5554cf

Browse files
committed
fix: apply browse node.session race condition fix to browse node
1 parent 078c6f4 commit e5554cf

File tree

1 file changed

+27
-17
lines changed

1 file changed

+27
-17
lines changed

opcua/103-opcuabrowser.js

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -124,24 +124,34 @@ module.exports = function (RED) {
124124

125125
// step 3 : browse
126126
node.debug("nodeIdBrowse:" + nodeIdToBrowse);
127-
const browseResult = await session.browse(nodeIdToBrowse);
128-
129-
130-
// step 4 : Read Value and Datatypes
131-
for(const reference of browseResult.references)
132-
{
133-
var ref_obj = Object.assign({}, reference);
134-
const dataValue = await session.read({nodeId: ref_obj.nodeId, attributeId: opcua.AttributeIds.Value});
135-
ref_obj["value"] = dataValue.value.value;
136-
ref_obj["dataType"] = opcua.DataType[dataValue.value.dataType];
137-
node.add_item(ref_obj);
127+
try {
128+
const browseResult = await session.browse(nodeIdToBrowse);
129+
130+
131+
// step 4 : Read Value and Datatypes
132+
for(const reference of browseResult.references)
133+
{
134+
var ref_obj = Object.assign({}, reference);
135+
const dataValue = await session.read({nodeId: ref_obj.nodeId, attributeId: opcua.AttributeIds.Value});
136+
ref_obj["value"] = dataValue.value.value;
137+
ref_obj["dataType"] = opcua.DataType[dataValue.value.dataType];
138+
node.add_item(ref_obj);
139+
}
140+
node.status({
141+
fill: "green",
142+
shape: "dot",
143+
text: "Items: " + node.items.length,
144+
source: { id: node.id, type: node.type, name: "OPC UA Browser"}
145+
});
146+
} catch (err) {
147+
node_error(err);
148+
node.status({
149+
fill: "yellow",
150+
shape: "ring",
151+
text: "browse error",
152+
source: { id: node.id, type: node.type, name: "OPC UA Browser" }
153+
});
138154
}
139-
node.status({
140-
fill: "green",
141-
shape: "dot",
142-
text: "Items: " + node.items.length,
143-
source: { id: node.id, type: node.type, name: "OPC UA Browser"}
144-
});
145155

146156
//step 5 close session
147157
node.debug("close browse session");

0 commit comments

Comments
 (0)