Request for modification in IOManager

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

Moderator: uasdkcpp

Post Reply
toni.kalajainen
Sr. Member
Sr. Member
Posts: 11
Joined: 02 Jan 2017, 12:34

Request for modification in IOManager

Post by toni.kalajainen »

Hi,

In iomanageruanode.cpp there is method "UaStatus IOManagerUaNode::getAbsoluteChangeValue()". In the very first lines it makes a call "UaReferenceLists* pRefList = pUaVariable->getUaReferenceLists();" in order to search for "EURange" node.

The problem here is that since getUaReferenceLists() is const, the classes internal state cannot be changed when its called and therefore the list must be created in the constructor, and this makes it no longer lazy. Further more, the list uses strong references to nodes, not nodeids, which propagates the need to construct further.

I've been able to implement the server with lazy evaluation everywhere else apart from this one particular situation.

Would it be possible to have this modified so that getAbsoluteChangeValue() searches for the EURange-node with browse()-method instead, OR so that keyword 'const' is removed from "getUaReferenceLists()" method. Former very much prefered.

Thanks, Toni

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

Re: Request for modification in IOManager

Post by Support Team »

Hello Toni,

I don't see a general problem here and I'm sorry to tell you that we can't do such a modification for a customer specific implementation.
Best regards
Unified Automation Support Team

toni.kalajainen
Sr. Member
Sr. Member
Posts: 11
Joined: 02 Jan 2017, 12:34

Re: Request for modification in IOManager

Post by toni.kalajainen »

Hi,

That is unfortunate to hear. I had heard that the SDK would be thoroughly usable for very large scale address models.

-toni

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

Re: Request for modification in IOManager

Post by Support Team »

Hello Toni,

We are not sure if it makes sense to start optimization with the EURange properties if you have a large address space.
You either use the toolkit layer with all the functionality in IOManagerUaNode or you implement the IOManager interface directly than you have all freedom to optimize.
It makes no sense to partially hack the toolkit layer.

See the following introduction for SDK Level vs. Toolkit Level
http://documentation.unified-automation ... Start.html

And sample code for SDK level:
http://documentation.unified-automation ... alSdk.html

Customers who have large address spaces (more than 500.000 nodes on a regular PC) typically implement their own NodeManager / IOManager for the part of the server that contain the large number of nodes.
Best regards
Unified Automation Support Team

toni.kalajainen
Sr. Member
Sr. Member
Posts: 11
Joined: 02 Jan 2017, 12:34

Re: Request for modification in IOManager

Post by toni.kalajainen »

Hello there,

Sure IOManagerUaNode is intended for fully static models, and does it well. But it is very close from supporting most cases of dynamic models. A little bit redesigning too add some modularity would circumvent the need to implement a full manager.

Post Reply