Page 1 of 1

How to get the node attribute handle for Writing values to t

Posted: 15 Jan 2019, 15:28
by arnebodin
Upon creating the OPC Ua server, we firstly create objects like this:

cosSettings = new CreateObjectSettings()
{
ParentNodeId = onTunnelTypeNode.NodeId,
ReferenceTypeId = ReferenceTypeIds.Organizes,
RequestedNodeId = new NodeId(tSectionObject.szObject, InstanceNamespaceIndex),
BrowseName = new QualifiedName(tSectionObject.szObject, InstanceNamespaceIndex),
TypeDefinitionId = new NodeId(SVV.HBT.ObjectTypes.SectionType, TypeNamespaceIndex)
};
onSectionTypeNode = CreateObject(Server.DefaultRequestContext, cosSettings);

Then we have the nodes, but dont know how to get NodeAttributeHandle (nah) variable for the object:
sc = Write(Server.DefaultRequestContext, nah, null, dv);

I way to get this NodeAttributeHandle is to override the StartDataMonitoring procedure and subscribe the objects,
then the NodeAttributeHandle is received thru the second parameter MonitoredItemHandle.NodeHandle.

Do you have a way to retrive this NodeAttributeHandle thru the ObjectNode?

Re: How to get the node attribute handle for Writing values

Posted: 18 Jan 2019, 07:30
by Support Team
Hello,

To get the NodeAttributeHandle you have to call GetNodeHandle. You need to call GetNodeHandle for each Variable you want to write.

Please note that there are other options to set or update the values of nodes. Please see our examples and tutorials.
If you want to set a value only once, you can call SetVariableDefaultValue after the creation of the object.
If the value should change during runtime, you should set the variable configuration to ExternalPolled or ExternalPushed and implement the required methods in your BaseNodeManager implementation. Please see the server getting started and the DemoServer example.