-
Notifications
You must be signed in to change notification settings - Fork 355
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Browsing for HasTypeDefinition references is broken #1529
Comments
I dug into this a little in hopes the additional information might nudge a maintainer to attempt to fix this. For Nodes belonging to the standard OPC UA address space (ns0), the problem can be traced back to here: opcua-asyncio/schemas/generate_address_space.py Lines 345 to 359 in d4d4c84
where the target NodeClass of every ReferenceDescription created is hardcoded as In custom address spaces it can be traced to here: opcua-asyncio/asyncua/server/address_space.py Lines 382 to 389 in d4d4c84
where again, the target NodeClass is hardcoded as |
It is just a typo. Change DataType to ObjectType will fix it. |
fixing this issue FreeOpcUa/opcua-asyncio#1529
No, it won't. The target NodeClass of a HasTypeDefinition reference can be either |
I was brought here by this post https://forum.inductiveautomation.com/t/error-calling-opc-ua-method/83234 |
Yes, understood. It would fix that particular issue. It's not a general fix, though, because it just changes the hardcoded value from one incorrect NodeClass to another. Whether that's acceptable or not is up to the maintainers of this project, I guess. |
Yes you are right. As other OPC UA clients can handle the original mistake without an issue, I guess it also has something to do with how a client tolerates such problems. As everything on the server is an Object, I thought maybe changing it to a more general ObjectType could make the mistake more tolerable. I barely know anything about ignition so I couldn't really explain how that change affects it. |
Browsing a server built with opcua-asyncio for HasTypeDefinition references is broken.
When specifying a NodeClassMask of only ObjectType or VariableType, no results are returned.
If the NodeClassMask is set to 0 (all NodeClasses should be returned), then 1 result is returned, however it incorrectly identifies the NodeClass as
NodeClass.DataType
. (I suspect this is the cause of the 0 length result when a mask is supplied).This code written against Eclipse Milo dev/1.0 branch reproduces, though you should be able to reproduce from any OPC UA SDK: https://gist.github.com/kevinherron/f85ce3b0eebe84008e59a5192f6b404d
Results:
Wireshark capture: browse_has_type_definition.zip
The text was updated successfully, but these errors were encountered: