9:36, EEST
April 21, 2016
Hello,
based on the SampleConsoleServer is was trying to figure out how I can use views. I wanted to create a simple view that organizes the MyDevice Node but filters some of its child nodes, let’s say MySwitch. What I did so far is this:
private UaView myView;
…
void createAddressSpace() {
…
final FolderType viewsFolder = getServer().getNodeManagerRoot().getViewsFolder();
// Folder for my views
final NodeId myViewsFolderId = new NodeId(ns, “MyViewsFolder”);
myViewsFolder = createInstance(FolderTypeNode.class, “MyViews”, myViewsFolderId);
final NodeId myViewId = new NodeId(ns, “MyView”);
myView = new UaViewNode(this, myViewId, “MyView”, Locale.ENGLISH);
myView.addReference(myDevice, Identifiers.Organizes, false);
myViewsFolder.addOrganizes(myView);
…}
This works fine so far, but I can’t figure out how to move on from there. How can I hide the HasComponent Reference from MyDevice -> MySwitch in MyView?
Also there seems to be a bug in the current version (2.2.2)
If I change the last line to:
myViewsFolder.addReference(myViewId, Identifiers.Organizes, false);
I get the following behavior:
2 – Views: FolderType (ReferenceType=Organizes, BrowseName=Views)
0 – MyViews: FolderType (ReferenceType=Organizes, BrowseName=2:MyViews)
com.prosysopc.ua.StatusException: Bad_NodeIdUnknown (0x80340000) “The node id refers to a node that does not exist in the server address space.”
If I use the addOrganizes method it works fine.
14:03, EEST
April 17, 2013
Hello,
Unfortunately, by default the usage of views is not that straightforward in the SDK. You need to at least override the NodeManagementServiceHandler.getView method in order to allow the usage of views. After this, you can do the ‘hiding’ of references for example in the MyNodeManagerListener.onBrowseNode method. And of course in order for all of this to work, the client application must use correct ViewDescription in the browse service calls.
Generally speaking, the usage of views is not that common in OPC UA applications. This is one area that needs to be improved in the future.
For the question about possible bug: I can confirm that this is what happens, but it’s not a bug. This happens because you are using myViewId and not myView. The form which uses NodeId as parameter directly does not create the node. Try
or better yet, always use the addOrganizes method if possible.
Please ask if you have further questions.
Most Users Ever Online: 1919
Currently Online:
14 Guest(s)
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Heikki Tahvanainen: 402
hbrackel: 144
rocket science: 88
pramanj: 86
Francesco Zambon: 83
Ibrahim: 78
Sabari: 62
kapsl: 57
gjevremovic: 49
Xavier: 43
Member Stats:
Guest Posters: 0
Members: 738
Moderators: 7
Admins: 1
Forum Stats:
Groups: 3
Forums: 15
Topics: 1524
Posts: 6450
Newest Members:
jonathonmcintyre, fannielima, kristiewinkle8, rust, christamcdowall, redaahern07571, nigelbdhmp, travistimmons, AnnelCib, dalenegettingerModerators: Jouni Aro: 1026, Pyry: 1, Petri: 0, Bjarne Boström: 1026, Jimmy Ni: 26, Matti Siponen: 346, Lusetti: 0
Administrators: admin: 1