If the DataType is complex - like a structure or an array - the Server can expose elements of the structure or array as DataVariable components.
A good example for this is the "ServerStatus" Variable (defined in UA Part 5). It is a component of the Server Object and has the DataType "ServerStatusDataType" (a structure). Clients can read the whole structure or they can read individual elements of this structure, since they are all exposed as components.
One of the elements is buildInfo which is also a structured type and also its elements are exposed as components.
03/02/2017
I see! I was wondering how to achieve complex types. I am looking at ServerStatus definition and now I have a better understanding.
Just to verify my understanding, let me ask a question:
If a DataVariable has one or more components that are DataVariable, the DataVariable (the top one) is always a complex type? (In another word, would there be a case where there is a DataVariable whose dataType is a base type and has components that are DataVariables?)
Moderators-Specifications
Moderators-Companion
Moderators-Implementation
Moderators-Certification
Moderators-COM
02/24/2014
You can also look at the StateMachineType defined in Part 5 Annex B. Several VariableTypes are defined that are complex (sub types of BaseDataVariableType). They do not have a complex DataType , just a simple dataType like localized string, but the variable are complex in that they expose a number of additional properties or datavariables under them.
Paul Hunkar - DSInteroperability
1 Guest(s)