-
Notifications
You must be signed in to change notification settings - Fork 453
Use namespace index if possible when encoding ExpandedNodeId #1451
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
Conversation
Using the namespace index is more compact than encoding a namespace URI. It's also a workaround for bugs observed in the CTT and UaExpert, where the Client ignores the explicitly specified namespace URI in the ExpandedNodeId and just uses the namespace index, which is always 0 when the URI is encoded. fixes #1450
Hello, I tried the fix an it works well for me no more errors in CTT Adress Space Base. Thank you very much. |
Hi Kevin, Greetings Johann |
I reverted the band-aid fix and replaced it with a fix for the actual root cause: 4a27357 When I tested it with your namespace and the CTT it was still fixed... I'll check again this week I suppose. Make sure that you aren't pulling in a mix of M1 and M2 artifacts. The uanodeset artifact still points to M1 artifacts. |
Actually, make sure the version of uanodeset you are using is |
Hi, |
@johannwesely it seems I had never properly published uanodeset Your nodeset file is working in both the CTT and UaExpert without errors for me. |
Hello,
otherwise it wont load namespaces at all. Can you explain me what is the diffrence between the quickfix (wich works fine ) and the M2 release for my understanding? Greetings Johann |
The quick fix PR hooked into the binary encoder and replaced every outgoing ExpandedNodeId that had a URI in it with one that used an index instead. The actual fix located the place (browsing) where ExpandedNodeId with a URI was being returned and fixed it, because it turns out there's a specific passage in the spec that states ExpandedNodeId in the browse results must use an index. I think the issue you may be having now is that the type definition in the |
Are you also overriding |
yes it looks like this
|
Ok I think this is okay... It is a little strange that a single |
@johannwesely I need to write up an issue and talk with some OPC peeps, but a patch for Milo that I think fixes your issue:
It basically just applies the same treatment to the type definition returned in a ReferenceDescription as the target NodeId gets. |
I apllied your patch and it works. Thank you . So will this be in the release also? |
1.0.0 was released yesterday, so this will have to wait a bit for the 1.0.1 patch release. |
Using the namespace index is more compact than encoding a namespace URI.
It's also a workaround for bugs observed in the CTT and UaExpert, where the Client ignores the explicitly specified namespace URI in the ExpandedNodeId and just uses the namespace index, which is always 0 when the URI is encoded.
fixes #1450