In order to browse for notifiers, you can use pre-made browse parameters available in the UABrowseParameters.Notifiers static property, and call the IEasyUAClient.Browse method. Alternatively, you can use a dedicated extension method, IEasyUAClient.BrowseNotifiers, to perform browsing for notifiers easily.
// This example shows how to browse objects under the "Objects" node and display notifiers. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . using System; using OpcLabs.EasyOpc.UA; using OpcLabs.EasyOpc.UA.AddressSpace; using OpcLabs.EasyOpc.UA.AddressSpace.Standard; using OpcLabs.EasyOpc.UA.OperationModel; namespace UADocExamples.AlarmsAndConditions { class BrowseNotifiers { public static void Overload2() { // Start browsing from the "Objects" node. try { BrowseFrom(UAObjectIds.ObjectsFolder); } catch (UAException uaException) { Console.WriteLine($"*** Failure: {uaException.GetBaseException().Message}"); } Console.WriteLine(); Console.WriteLine("Finished."); } private static void BrowseFrom(UANodeDescriptor nodeDescriptor) { // Define which server we will work with. UAEndpointDescriptor endpointDescriptor = "opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer"; Console.WriteLine(); Console.WriteLine(); Console.WriteLine($"Parent node: {nodeDescriptor}"); // Instantiate the client object. var client = new EasyUAClient(); // Obtain notifiers. UANodeElementCollection notifierNodeElementCollection = client.BrowseNotifiers( endpointDescriptor, nodeDescriptor); // Display notifiers. if (notifierNodeElementCollection.Count != 0) { Console.WriteLine(); Console.WriteLine("Notifiers:"); foreach (UANodeElement notifierNodeElement in notifierNodeElementCollection) Console.WriteLine(notifierNodeElement); } // Obtain objects. UANodeElementCollection objectNodeElementCollection = client.BrowseObjects( endpointDescriptor, nodeDescriptor); // Recurse. foreach (UANodeElement objectNodeElement in objectNodeElementCollection) BrowseFrom(objectNodeElement); } // Example output (truncated): // // //Parent node: ObjectsFolder // // //Parent node: Server // //Notifiers: //Green -> nsu=http://opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Green (Object) //Yellow -> nsu=http://opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Yellow (Object) // // //Parent node: Server_ServerCapabilities //... } }
# This example shows how to browse objects under the "Objects" node and display notifiers. # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . #requires -Version 5.1 using namespace OpcLabs.EasyOpc.UA using namespace OpcLabs.EasyOpc.UA.AddressSpace.Standard using namespace OpcLabs.EasyOpc.UA.Navigation.Parsing; using namespace OpcLabs.EasyOpc.UA.OperationModel function BrowseNotifiersFrom([UANodeDescriptor]$nodeDescriptor) { # Define which server we will work with. [UAEndpointDescriptor]$endpointDescriptor = "opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer" Write-Host Write-Host Write-Host "Parent node: $($nodeDescriptor)" # Instantiate the client object. $client = New-Object EasyUAClient # Obtain event sources. $notifierNodeElementCollection = [IEasyUAClientExtension]::BrowseNotifiers($client, $endpointDescriptor, $nodeDescriptor) # Display event sources. if ($notifierNodeElementCollection.Count -ne 0) { Write-Host Write-Host "Notifiers:" foreach ($notifierNodeElement in $notifierNodeElementCollection) { Write-Host $notifierNodeElement } } # Obtain objects. $objectNodeElementCollection = [IEasyUAClientExtension]::BrowseObjects($client, $endpointDescriptor, $nodeDescriptor) # Recurse. foreach ($objectNodeElement in $objectNodeElementCollection) { BrowseNotifiersFrom($objectNodeElement) } } # The path below assumes that the current directory is [ProductDir]/Examples-NET/PowerShell/Windows . Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcUA.dll" Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcUAComponents.dll" # Start browsing from the "Objects" node. try { [UANodeDescriptor]$startingNodeDescriptor = [UAObjectIds]::ObjectsFolder BrowseNotifiersFrom $startingNodeDescriptor } catch [UAException] { Write-Host "*** Failure: $($PSItem.Exception.GetBaseException().Message)" return } Write-Host Write-Host "Finished." # Example output (truncated): # # #Parent node: ObjectsFolder # # #Parent node: Server # #Notifiers: #Green -> nsu=http:#opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Green (Object) #Yellow -> nsu=http:#opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Yellow (Object) # # #Parent node: Server_ServerCapabilities #...
# This example shows how to browse objects under the "Objects" node and display notifiers. # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . # OPC client and subscriber examples in Python on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-Python . # The QuickOPC package is needed. Install it using "pip install opclabs_quickopc". import opclabs_quickopc # Import .NET namespaces. from OpcLabs.EasyOpc.UA import * from OpcLabs.EasyOpc.UA.AddressSpace import * from OpcLabs.EasyOpc.UA.AddressSpace.Standard import * from OpcLabs.EasyOpc.UA.OperationModel import * # Define which server we will work with. endpointDescriptor = UAEndpointDescriptor('opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer') def browseFrom(nodeDescriptor): global endpointDescriptor print() print() print('Parent node: ', nodeDescriptor, sep='') # Instantiate the client object. client = EasyUAClient() # Obtain notifiers. notifierNodeElementCollection = IEasyUAClientExtension.BrowseNotifiers(client, endpointDescriptor, nodeDescriptor) # Display notifiers. if notifierNodeElementCollection.Count != 0: print('') print('Notifiers:') for notifierNodeElement in notifierNodeElementCollection: print(notifierNodeElement) # Obtain objects. objectNodeElementCollection = IEasyUAClientExtension.BrowseObjects(client, endpointDescriptor, nodeDescriptor) # Recurse. for objectNodeElement in objectNodeElementCollection: browseFrom(objectNodeElement.ToUANodeDescriptor()) # Start browsing from the "Objects" node. try: browseFrom(UANodeDescriptor(UAObjectIds.ObjectsFolder)) except UAException as uaException: print('*** Failure: ' + uaException.GetBaseException().Message) exit() print() print('Finished.')
' This example shows how to browse objects under the "Objects" node and display notifiers. ' ' Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Imports OpcLabs.EasyOpc.UA Imports OpcLabs.EasyOpc.UA.AddressSpace Imports OpcLabs.EasyOpc.UA.AddressSpace.Standard Imports OpcLabs.EasyOpc.UA.OperationModel Namespace AlarmsAndConditions Friend Class BrowseNotifiers Public Shared Sub Overload2() ' Start browsing from the "Objects" node Try BrowseFrom(UAObjectIds.ObjectsFolder) Catch uaException As UAException Console.WriteLine("*** Failure: {0}", uaException.GetBaseException.Message) End Try End Sub Private Shared Sub BrowseFrom(nodeDescriptor As UANodeDescriptor) Console.WriteLine() Console.WriteLine() Console.WriteLine("Parent node: {0}", nodeDescriptor) ' Instantiate the client object Dim client = New EasyUAClient() ' Obtain notifiers Dim notifierNodeElementCollection As UANodeElementCollection = client.BrowseNotifiers( _ "opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer", _ nodeDescriptor) ' Display notifiers Console.WriteLine() Console.WriteLine("Notifiers:") For Each notifierNodeElement As UANodeElement In notifierNodeElementCollection Console.WriteLine(notifierNodeElement) Next notifierNodeElement ' Obtain objects Dim objectNodeElementCollection = client.BrowseObjects( _ "opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer", _ nodeDescriptor) ' Recurse For Each objectNodeElement As UANodeElement In objectNodeElementCollection BrowseFrom(objectNodeElement) Next objectNodeElement End Sub End Class End Namespace
// This example shows how to browse objects under the "Objects" node and display notifiers. // // Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . class procedure BrowseNotifiers.Main; var ObjectNodeId: _UANodeId; begin ObjectNodeId := CoUANodeId.Create; ObjectNodeId.StandardName := 'Objects'; try BrowseFrom(ObjectNodeId); except on E: EOleException do begin WriteLn(Format('*** Failure: %s', [E.GetBaseException.Message])); Exit; end; end; end; class procedure BrowseNotifiers.BrowseFrom(NodeId: _UANodeId); var Client: OpcLabs_EasyOpcUA_TLB._EasyUAClient; Count: Cardinal; Element: OleVariant; EndpointDescriptor: string; NotifierNodeElement: _UANodeElement; NotifierNodeElementEnumerator: IEnumVariant; NotifierNodeElements: _UANodeElementCollection; ObjectNodeElement: _UANodeElement; ObjectNodeElementEnumerator: IEnumVariant; ObjectNodeElements: _UANodeElementCollection; begin EndpointDescriptor := 'opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer'; WriteLn; WriteLn; WriteLn('Parent node: ', NodeId.ToString); // Instantiate the client object Client := CoEasyUAClient.Create; // Obtain notifiers NotifierNodeElements := Client.BrowseNotifiers(EndpointDescriptor, NodeId.ExpandedText); // Display notifires if NotifierNodeElements.Count <> 0 then begin WriteLn; WriteLn('Notifiers:'); NotifierNodeElementEnumerator := NotifierNodeElements.GetEnumerator; while (NotifierNodeElementEnumerator.Next(1, Element, Count) = S_OK) do begin NotifierNodeElement := IUnknown(Element) as _UANodeElement; WriteLn(NotifierNodeElement.ToString); end; end; // Obtain objects ObjectNodeElements := Client.BrowseObjects(EndpointDescriptor, NodeId.ExpandedText); // Recurse ObjectNodeElementEnumerator := ObjectNodeElements.GetEnumerator; while (ObjectNodeElementEnumerator.Next(1, Element, Count) = S_OK) do begin ObjectNodeElement := IUnknown(Element) as _UANodeElement; BrowseFrom(ObjectNodeElement.NodeId); end; end; // Example output (truncated): // // //Parent node: ObjectsFolder // // //Parent node: Server // //Notifiers: //Green -> nsu=http://opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Green (Object) //Yellow -> nsu=http://opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Yellow (Object) // // //Parent node: Server_ServerCapabilities //...
// This example shows how to browse objects under the "Objects" node and display notifiers. // // Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . // Start browsing from the "Objects" node $ObjectNodeId = new COM("OpcLabs.EasyOpc.UA.AddressSpace.UANodeId"); $ObjectNodeId->StandardName = "Objects"; try { BrowseFrom($ObjectNodeId); } catch (com_exception $e) { printf("*** Failure: %s\n", $e->getMessage()); exit(); } function BrowseFrom($NodeId) { $EndpointDescriptor = "opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer"; printf("\n"); printf("\n"); printf("Parent node: %s\n", $NodeId); // Instantiate the client object $Client = new COM("OpcLabs.EasyOpc.UA.EasyUAClient"); // Obtain notifiers $NotifierNodeElements = $Client->BrowseNotifiers($EndpointDescriptor, $NodeId->ExpandedText); // Display notifires if ($NotifierNodeElements->Count != 0) { printf("\n"); printf("Notifiers:\n"); foreach ($NotifierNodeElements as $NotifierNodeElement) { printf("%s\n", $NotifierNodeElement); } } // Obtain objects $ObjectNodeElements = $Client->BrowseObjects($EndpointDescriptor, $NodeId->ExpandedText); // Recurse foreach ($ObjectNodeElements as $ObjectNodeElement) { BrowseFrom($ObjectNodeElement->NodeId); } } // Example output (truncated): // // //Parent node: ObjectsFolder // // //Parent node: Server // //Notifiers: //Green -> nsu=http://opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Green (Object) //Yellow -> nsu=http://opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Yellow (Object) // // //Parent node: Server_ServerCapabilities //...
Rem This example shows how to browse objects under the "Objects" node and display notifiers. Rem Rem Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Option Explicit ' Start browsing from the "Objects" node Dim ObjectsNodeId: Set ObjectsNodeId = CreateObject("OpcLabs.EasyOpc.UA.AddressSpace.UANodeId") ObjectsNodeId.StandardName = "Objects" On Error Resume Next BrowseFrom ObjectsNodeId If Err.Number <> 0 Then WScript.Echo "*** Failure: " & Err.Source & ": " & Err.Description WScript.Quit End If On Error Goto 0 Sub BrowseFrom(NodeId) Dim endpointDescriptor endpointDescriptor = "opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer" WScript.Echo WScript.Echo WScript.Echo "Parent node: " & NodeId ' Instantiate the client object Dim Client: Set Client = CreateObject("OpcLabs.EasyOpc.UA.EasyUAClient") ' Obtain notifiers Dim NotifierNodeElementCollection: Set NotifierNodeElementCollection = Client.BrowseNotifiers( _ endpointDescriptor, NodeId.ExpandedText) ' Display notifiers If NotifierNodeElementCollection.Count <> 0 Then WScript.Echo WScript.Echo "Notifiers:" Dim NotifierNodeElement: For Each NotifierNodeElement In NotifierNodeElementCollection WScript.Echo NotifierNodeElement Next End If ' Obtain objects Dim ObjectNodeElementCollection: Set ObjectNodeElementCollection = Client.BrowseObjects( _ endpointDescriptor, NodeId.ExpandedText) ' Recurse Dim ObjectNodeElement: For Each ObjectNodeElement In ObjectNodeElementCollection BrowseFrom ObjectNodeElement.NodeId Next End Sub ' Example output (truncated): ' ' 'Parent node: ObjectsFolder ' ' 'Parent node: Server ' 'Notifiers: 'Green -> nsu=http://opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Green (Object) 'Yellow -> nsu=http://opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Yellow (Object) ' ' 'Parent node: Server_ServerCapabilities '...
Copyright © 2004-2024 CODE Consulting and Development, s.r.o., Plzen. All rights reserved.
Send Documentation Feedback. Technical Support