// Shows how to find all registrations in the GDS.
//
// 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.Discovery;
using OpcLabs.EasyOpc.UA.Extensions;
using OpcLabs.EasyOpc.UA.Gds;
using OpcLabs.EasyOpc.UA.OperationModel;
namespace UADocExamples.Gds._EasyUAGlobalDiscoveryClient
{
class FindApplications
{
public static void Main1()
{
// Define which GDS we will work with.
UAEndpointDescriptor gdsEndpointDescriptor =
((UAEndpointDescriptor)"opc.tcp://opcua.demo-this.com:58810/GlobalDiscoveryServer")
.WithUserNameIdentity("appuser", "demo");
// Instantiate the global discovery client object
var globalDiscoveryClient = new EasyUAGlobalDiscoveryClient();
// Find all (client or server) applications registered in the GDS.
UAApplicationDescription[] applicationDescriptionArray;
try
{
globalDiscoveryClient.QueryApplications(
gdsEndpointDescriptor: gdsEndpointDescriptor,
startingRecordId: 0,
maximumRecordsToReturn: 0,
applicationName: "",
applicationUriString: "",
applicationTypes: UAApplicationTypes.All,
productUriString: "",
serverCapabilities: new string[0],
lastCounterResetTime: out _,
nextRecordId: out _,
applications: out applicationDescriptionArray);
}
catch (UAException uaException)
{
Console.WriteLine("*** Failure: {0}", uaException.GetBaseException().Message);
return;
}
// For each application returned by the query, find its registrations in the GDS.
foreach (UAApplicationDescription applicationDescription in applicationDescriptionArray)
{
Console.WriteLine();
Console.WriteLine("Application URI string: {0}", applicationDescription.ApplicationUriString);
UAApplicationRecordDataType[] applicationRecordArray;
try
{
applicationRecordArray = globalDiscoveryClient.FindApplications(
gdsEndpointDescriptor,
applicationDescription.ApplicationUriString);
}
catch (UAException uaException)
{
Console.WriteLine(" *** Failure: {0}", uaException.GetBaseException().Message);
continue;
}
// Display results
foreach (UAApplicationRecordDataType applicationRecord in applicationRecordArray)
Console.WriteLine(" Application ID: {0}", applicationRecord.ApplicationId);
}
// Example output:
//
//Application URI string: urn:sampleserver
// Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=09ecaa08-6ec6-462c-a214-1e66a3099107
//
//Application URI string: urn:alarmconditionserver
// Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=783e1e9a-8036-43b6-928f-97488c460266
//
//Application URI string: urn:PC:MultiTargetUADocExamples:5.54.1026.1:neutral:null
// Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=9e700ea5-55a6-4c3c-ba9f-b91c890dc519
//
//Application URI string: urn:PC:UADocExamples:5.56.0.16:neutral:null
// Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=e182e28c-086b-4fc7-82c7-70ca7cda3033
//
//Application URI string: urn:PC:cscript:5.812.10240.16384
// Application ID: nsu=http://opcfoundation.org/UA/GDS/applications/ ;ns=2;g=aec94459-f513-4979-8619-8383555fca61
}
}
}
# Shows how to find all registrations in the GDS.
#
# 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 System import *
from OpcLabs.EasyOpc.UA import *
from OpcLabs.EasyOpc.UA.Discovery import *
from OpcLabs.EasyOpc.UA.Extensions import *
from OpcLabs.EasyOpc.UA.Gds import *
from OpcLabs.EasyOpc.UA.OperationModel import *
# Define which GDS we will work with.
gdsEndpointDescriptor = UAEndpointDescriptor('opc.tcp://opcua.demo-this.com:58810/GlobalDiscoveryServer')
gdsEndpointDescriptor = UAEndpointDescriptorExtension.WithUserNameIdentity(gdsEndpointDescriptor,
'appadmin', 'demo')
# Instantiate the global discovery client object.
globalDiscoveryClient = EasyUAGlobalDiscoveryClient()
# Find all (client or server) applications registered in the GDS.
try:
_, _, _, applicationDescriptionArray = globalDiscoveryClient.QueryApplications(
gdsEndpointDescriptor,
0, # startingRecordId
0, # maximumRecordsToReturn
'', # applicationName
'', # applicationUriString
UAApplicationTypes.All, # applicationTypes
'', # productUriString
Array.Empty[String](), # serverCapabilities
DateTime(), # out lastCounterResetTime
0, # out nextRecordId
Array.Empty[UAApplicationDescription]()) # out applications
except UAException as uaException:
print('*** Failure: ' + uaException.GetBaseException().Message)
exit()
# For each application returned by the query, find its registrations in the GDS.
for applicationDescription in applicationDescriptionArray:
print()
print('Application URI string: ', applicationDescription.ApplicationUriString, sep='')
try:
applicationRecordArray = globalDiscoveryClient.FindApplications(
gdsEndpointDescriptor,
applicationDescription.ApplicationUriString)
except UAException as uaException:
print(' *** Failure: ' + uaException.GetBaseException().Message)
continue
# Display results.
for applicationRecord in applicationRecordArray:
print(' Application ID: ', applicationRecord.ApplicationId, sep='')
print()
print('Finished.')
' Shows how to find all registrations in the GDS.
'
' 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.Discovery
Imports OpcLabs.EasyOpc.UA.Extensions
Imports OpcLabs.EasyOpc.UA.Gds
Imports OpcLabs.EasyOpc.UA.OperationModel
Namespace Gds._EasyUAGlobalDiscoveryClient
Friend Class FindApplications
Public Shared Sub Main1()
' Define which GDS we will work with.
Dim gdsEndpointDescriptor As UAEndpointDescriptor =
New UAEndpointDescriptor("opc.tcp://opcua.demo-this.com:58810/GlobalDiscoveryServer") _
.WithUserNameIdentity("appuser", "demo")
' Instantiate the global discovery client object
Dim globalDiscoveryClient = New EasyUAGlobalDiscoveryClient()
' Find all (client or server) applications registered in the GDS.
Dim applicationDescriptionArray() As UAApplicationDescription = Nothing
Try
Dim lastCounterResetTime As DateTime
Dim nextRecordId As Long
globalDiscoveryClient.QueryApplications(
gdsEndpointDescriptor:=gdsEndpointDescriptor,
startingRecordId:=0,
maximumRecordsToReturn:=0,
applicationName:="",
applicationUriString:="",
applicationTypes:=UAApplicationTypes.All,
productUriString:="",
serverCapabilities:=New String() {},
lastCounterResetTime:=lastCounterResetTime,
nextRecordId:=nextRecordId,
applications:=applicationDescriptionArray)
Catch uaException As UAException
Console.WriteLine("*** Failure: {0}", uaException.GetBaseException.Message)
Exit Sub
End Try
' For each application returned by the query, find its registrations in the GDS.
For Each applicationDescription As UAApplicationDescription In applicationDescriptionArray
Console.WriteLine()
Console.WriteLine("Application URI string: {0}", applicationDescription.ApplicationUriString)
Dim applicationRecordArray() As UAApplicationRecordDataType
Try
applicationRecordArray = globalDiscoveryClient.FindApplications(
gdsEndpointDescriptor,
applicationDescription.ApplicationUriString)
Catch uaException As UAException
Console.WriteLine("*** Failure: {0}", uaException.GetBaseException.Message)
Continue For
End Try
' Display results
For Each applicationRecord As UAApplicationRecordDataType In applicationRecordArray
Console.WriteLine(" Application ID: {0}", applicationRecord.ApplicationId)
Next applicationRecord
Next applicationDescription
End Sub
End Class
End Namespace