private object GetAttributeValue(
ChildNode node,
IList<QualifiedName> relativePath,
int index,
uint attributeId)
{
if (index >= relativePath.Count)
{
if (node.NodeClass == NodeClass.Object && attributeId == Attributes.NodeId)
{
return node.Value;
}
if (node.NodeClass == NodeClass.Variable && attributeId == Attributes.Value)
{
return node.Value;
}
return null;
}
for (int ii = 0; ii < node.Children.Count; ii++)
{
if (node.Children[ii].BrowseName == relativePath[index])
{
return GetAttributeValue(node.Children[ii], relativePath, index+1, attributeId);
}
}
return null;
}
#endregion