06/18/2018
Hi,
I am writing a generic client application that connects to a server with a analyser device using the ADI Information Model. I am basing the server and client code on UA-Standard samples. I am hoping that the client application only needs to know that an analyser device of some kind exists in the server address space.
A sub component of the device has a method that has 3 input arguments. Digging into the inputArgument nodes I get the Opc.Ua.Argument.DataType. Two of them are a system data type (therefore in namespace 0) and I've been using DataTypes.GetSystemType to get the system type. When it's not in Namespace 0 but instead in ADI namespace I am getting BadNodeIdUnknown when trying to Session.FetchReference or Session.ReadDisplayName etc. I am trying to browse the type or even getting it's BrowseName would be a start.
The NodeId is correct and the namespace is known to the client code so I am thinking it's an issue with the server? Any ideas? I understand for Part 3 4.5.1 that it might be normal that 'well-known' type definitions (such as ADI) are not in the server address space but not sure that this is related to my issue.
Any help appreciated.
06/18/2018
I was able to figure it out in the end and it was a server issue. I had 'NodeManager.LoadPredefinedNodes' for all the needed nodesets but I hadn't realized that although the references namespaces exist in the nodesets, I still needed to add the referenced namespace Urls using 'CustomNodeManager2.SetNamespaces'.
1 Guest(s)