Client SDK - Subscribe using string nodeid

Questions regarding the use of the C++ SDK for Server or Client development or integration into customer products ...

Moderator: uasdkcpp

Post Reply
marekn
Jr. Member
Jr. Member
Posts: 1
Joined: 27 Jun 2018, 21:27

Client SDK - Subscribe using string nodeid

Post by marekn »

Hi,
I am able to read item values when string is used for node id for example:
nodeToRead[1].AttributeId = OpcUa_Attributes_Value;
UaNodeId volt(UaString("net.tcp://192.168.21.20:502/Card1/Output#FC03/13099"), 2);
volt.copyTo(&nodeToRead[1].NodeId);

When I use the same technique to subscribe status = pUaSubscription->createMonitoredItems.. then the call ends with error: BadUnexpectedError
count = 2;
monitoredItemCreateRequests.create(count);
monitoredItemCreateRequests[0].ItemToMonitor.AttributeId = OpcUa_Attributes_Value;
monitoredItemCreateRequests[0].ItemToMonitor.NodeId.Identifier.Numeric = OpcUaId_Server_ServerStatus_CurrentTime;
monitoredItemCreateRequests[1].ItemToMonitor.AttributeId = OpcUa_Attributes_Value;
UaNodeId volt("net.tcp://192.168.21.20:502/Card1/Output#FC03/13099", 2);
volt.copyTo(&monitoredItemCreateRequests[1].ItemToMonitor.NodeId);
for (i = 0; i<count; i++)
{
//monitoredItemCreateRequests.ItemToMonitor.AttributeId = OpcUa_Attributes_Value;
monitoredItemCreateRequests.MonitoringMode = OpcUa_MonitoringMode_Reporting;
monitoredItemCreateRequests.RequestedParameters.ClientHandle = i + 1;
monitoredItemCreateRequests.RequestedParameters.SamplingInterval = 1000;
monitoredItemCreateRequests.RequestedParameters.QueueSize = 1;
monitoredItemCreateRequests.RequestedParameters.DiscardOldest = OpcUa_True;
}

When I just use numeric item ids (e.g. OpcUaId_Server_ServerStatus_CurrentTime) then subscription works.

User avatar
Support Team
Hero Member
Hero Member
Posts: 3069
Joined: 18 Mar 2011, 15:09

Re: Client SDK - Subscribe using string nodeid

Post by Support Team »

Hello marekn,

there's nothing wrong I can see - your code looks just fine. So I guess that's an issue on the server.
Can you verify if that error is generated in the server?
Best regards
Unified Automation Support Team

Post Reply