10/06/2022
Hello everyone,
In the OPC UA Core specification Part 20 (File Transfer), section:
05/30/2017
1) The issue you have is specific to the way you are using the your SDK. You could create a NodeManager that managed 'virtual nodes' that are not stored in memory.
2) Not browseable means the Node is not returned if you call Browse or TranslateBrowsePaths but it may be accessible with Read or Call.
Servers that support RolePermissions need to check if a target of a Reference is accessible before returning a reference in a call to Browse. This means the set of References returned by Browse can change depending on the access rights of the Session. In some cases, nodes may not be accessible to any Session but they still exists.
In this case, the NodeId is returned from Methods like GenerateFileForRead and the Client can use that NodeId to call Read/Call.
Lastly, no Node needs to have a "Parent". Even even a Node is the target of a hierarchical reference and appears below it in a tree view that does not mean the source of reference is the Node's "Parent". The concept of "Parent" only shows up in the NodeSets to assist implementors that need to build their internal structures; the Parent means that when the Parent is deleted then so is the child.
10/06/2022
@Randy thanks for the explanation, it helps me understand the concept a little bit better.
I think the SDK I'm using doesn't have the concept of virtual nodes or if it does, then I don't know about it. I will have to ask the implementors.
Also regarding the "parent" nodes; I understand it is rather a matter of reference between nodes, not necessarily a hierarchy in a sense of parent-child relationship. What I meant is exactly what you described: objects appearing underneath other objects in a tree view.
I created a node without references to other existing nodes and without a browse name and added it to the NodeManager. This way the node wasn't visible within the "Objects" hierarchy in the UaExpert application. However, when I tried to add a "Custom Node" in the "Data Access View", entering the NS+NodeId returned by the GenerateFileForRead method, the application gave me an error message: ret=[BadAttributeIdInvalid] without any other information.
I will try to create a dummy Client app using the same SDK and see if it gives me a more detailed error (if any).
1 Guest(s)