I am working with server development based on UA SDK. I have a variable "Connectionstate"defined in my data model under an Enum DataType:
Code: Select all
<UAVariable DataType="ConnectionStatusEnumerationType" Historizing="true" ParentNodeId="ns=1;i=1003" NodeId="ns=1;i=15492" BrowseName="1:ConnectionState" UserAccessLevel="5" AccessLevel="5">
<DisplayName Locale="en">ConnectionState</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=1003</Reference>
<Reference ReferenceType="HasModellingRule">i=78</Reference>
</References>
<Value>
<uax:Int32>1</uax:Int32>
</Value>
</UAVariable>
Code: Select all
std::vector<UaNodeId> Server::getDatatypesForNodes(const std::vector<UaNode*>& nodes)
{
std::vector<UaNodeId> dataTypes;
for (unsigned int i = 0; i < nodes.size(); i++)
{
UaDataValue uaDataValue;
UaNodeId dataTypeNodeId;
nodes[i]->getAttributeValue(NULL, OpcUa_Attributes_DataType, uaDataValue);
UaVariant datatype(*uaDataValue.value());
datatype.toNodeId(dataTypeNodeId);
dataTypes.push_back(dataTypeNodeId);
}
return dataTypes;
}
<Alias Alias="ConnectionStatusEnumerationType">ns=1;i=3013</Alias>
Thanks and best regards
rG