The example below configures the component to use uncolorized console output, and then triggers some user interaction.
// Shows how to configure the OPC UA Console Interaction plug-in by turning off the output colorization. using System; using System.Diagnostics; using OpcLabs.BaseLib.Console.Interaction; using OpcLabs.EasyOpc.UA; using OpcLabs.EasyOpc.UA.Engine; using OpcLabs.EasyOpc.UA.OperationModel; namespace UADocExamples.Interaction { partial class ConsoleInteraction { public static void ColorizeOutput() { // Configure the shared plug-in. // Find the parameters object of the plug-in. ConsoleInteractionParameters consoleInteractionPluginParameters = EasyUAClient.SharedParameters.PluginConfigurations.Find<ConsoleInteractionParameters>(); Debug.Assert(consoleInteractionPluginParameters != null); // Change the parameter. consoleInteractionPluginParameters.ColorizeOutput = false; // Do not implicitly trust any endpoint URLs. We want the user be asked explicitly. EasyUAClient.SharedParameters.EngineParameters.CertificateAcceptancePolicy.TrustedEndpointUrlStrings.Clear(); // Define which server we will work with. UAEndpointDescriptor endpointDescriptor = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer"; // Require secure connection, in order to enforce the certificate check. endpointDescriptor.EndpointSelectionPolicy = new UAEndpointSelectionPolicy(UAMessageSecurityModes.Secure); // Instantiate the client object. var client = new EasyUAClient(); UAAttributeData attributeData; try { // Obtain attribute data. // The component automatically triggers the necessary user interaction during the first operation. attributeData = client.Read(endpointDescriptor, "nsu=http://test.org/UA/Data/ ;i=10853"); } catch (UAException uaException) { Console.WriteLine("*** Failure: {0}", uaException.GetBaseException().Message); return; } // Display results. Console.WriteLine("Value: {0}", attributeData.Value); Console.WriteLine("ServerTimestamp: {0}", attributeData.ServerTimestamp); Console.WriteLine("SourceTimestamp: {0}", attributeData.SourceTimestamp); Console.WriteLine("StatusCode: {0}", attributeData.StatusCode); } } }
# Shows how to configure the OPC UA Console Interaction plug-in by turning off the output colorization. # The QuickOPC package is needed. Install it using "pip install opclabs_quickopc". import opclabs_quickopc # Import .NET namespaces. from OpcLabs.BaseLib.Console.Interaction import * from OpcLabs.EasyOpc.UA import * from OpcLabs.EasyOpc.UA.Engine import * from OpcLabs.EasyOpc.UA.OperationModel import * # Configure the shared plug-in. # Find the parameters object of the plug-in. consoleInteractionPluginParameters = EasyUAClient.SharedParameters.PluginConfigurations.Find[ConsoleInteractionParameters]() assert consoleInteractionPluginParameters is not None # Change the parameter. consoleInteractionPluginParameters.ColorizeOutput = False # Do not implicitly trust any endpoint URLs. We want the user be asked explicitly. EasyUAClient.SharedParameters.EngineParameters.CertificateAcceptancePolicy.TrustedEndpointUrlStrings.Clear() # Define which server we will work with. endpointDescriptor = UAEndpointDescriptor('opc.tcp://opcua.demo-this.com:51210/UA/SampleServer') # Require secure connection, in order to enforce the certificate check. endpointDescriptor.EndpointSelectionPolicy = UAEndpointSelectionPolicy(UAMessageSecurityModes.Secure) # Instantiate the client object. client = EasyUAClient() try: # Obtain attribute data. # The component automatically triggers the necessary user interaction during the first operation. attributeData = IEasyUAClientExtension.Read(client, endpointDescriptor, UANodeDescriptor('nsu=http://test.org/UA/Data/ ;i=10853')) except UAException as uaException: print('*** Failure: ' + uaException.GetBaseException().Message) exit() # Display results. print('Value: ', attributeData.Value) print('ServerTimestamp: ', attributeData.ServerTimestamp) print('SourceTimestamp: ', attributeData.SourceTimestamp) print('StatusCode: ', attributeData.StatusCode) print() print('Finished.')
' Shows how to configure the OPC UA Console Interaction plug-in by turning off the output colorization. Imports OpcLabs.BaseLib.Console.Interaction Imports OpcLabs.EasyOpc.UA Imports OpcLabs.EasyOpc.UA.Engine Imports OpcLabs.EasyOpc.UA.OperationModel Namespace Interaction Friend Class ConsoleInteraction Public Shared Sub ColorizeOutput() ' Configure the shared plug-in. ' Find the parameters object of the plug-in. Dim consoleInteractionPluginParameters = EasyUAClient.SharedParameters.PluginConfigurations.Find(Of ConsoleInteractionParameters)() Debug.Assert(consoleInteractionPluginParameters IsNot Nothing) ' Change the parameter. consoleInteractionPluginParameters.ColorizeOutput = False ' Do not implicitly trust any endpoint URLs. We want the user be asked explicitly. EasyUAClient.SharedParameters.EngineParameters.CertificateAcceptancePolicy.TrustedEndpointUrlStrings.Clear() ' Define which server we will work with. Dim endpointDescriptor As UAEndpointDescriptor = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer" ' Require secure connection, in order to enforce the certificate check. endpointDescriptor.EndpointSelectionPolicy = New UAEndpointSelectionPolicy(UAMessageSecurityModes.Secure) ' Instantiate the client object. Dim client = New EasyUAClient() Dim attributeData As UAAttributeData Try ' Obtain attribute data. ' The component automatically triggers the necessary user interaction during the first operation. attributeData = client.Read(endpointDescriptor, "nsu=http://test.org/UA/Data/ ;i=10853") Catch uaException As UAException Console.WriteLine("*** Failure: {0}", uaException.GetBaseException.Message) Exit Sub End Try ' Display results. Console.WriteLine("Value: {0}", attributeData.Value) Console.WriteLine("ServerTimestamp: {0}", attributeData.ServerTimestamp) Console.WriteLine("SourceTimestamp: {0}", attributeData.SourceTimestamp) Console.WriteLine("StatusCode: {0}", attributeData.StatusCode) End Sub End Class End Namespace
// Shows how to configure the OPC UA Console Interaction plug-in by turning off the output colorization. class procedure ConsoleInteraction.ColorizeOutput; var Arguments: OleVariant; AttributeData: _UAAttributeData; Client: OpcLabs_EasyOpcUA_TLB._EasyUAClient; ClientManagement: TEasyUAClientManagement; ConsoleInteractionParameters: _ConsoleInteractionParameters; EndpointSelectionPolicy: _UAEndpointSelectionPolicy; ReadArguments: _UAReadArguments; Result: _UAAttributeDataResult; Results: OleVariant; begin // Configure the shared plug-in. // The configuration object allows access to static behavior. ClientManagement := TEasyUAClientManagement.Create(nil); ClientManagement.Connect; // Find the parameters object of the plug-in. ConsoleInteractionParameters := IUnknown(ClientManagement.SharedParameters.PluginConfigurations.Find('OpcLabs.BaseLib.Console.Interaction.ConsoleInteractionParameters')) as _ConsoleInteractionParameters; // Change the parameter. ConsoleInteractionParameters.ColorizeOutput := False; // Do not implicitly trust any endpoint URLs. We want the user be asked explicitly. ClientManagement.SharedParameters.EngineParameters.CertificateAcceptancePolicy.TrustedEndpointUrlStrings.Clear(); // Define which server we will work with. ReadArguments := CoUAReadArguments.Create; ReadArguments.EndpointDescriptor.UrlString := 'opc.tcp://opcua.demo-this.com:51210/UA/SampleServer'; // Require secure connection, in order to enforce the certificate check. EndpointSelectionPolicy := CoUAEndpointSelectionPolicy.Create; EndpointSelectionPolicy.AllowedMessageSecurityModes := UAMessageSecurityModes_Secure; ReadArguments.EndpointDescriptor.EndpointSelectionPolicy := EndpointSelectionPolicy; ReadArguments.NodeDescriptor.NodeId.ExpandedText := 'nsu=http://test.org/UA/Data/ ;i=10853'; Arguments := VarArrayCreate([0, 0], varVariant); Arguments[0] := ReadArguments; // Instantiate the client object. Client := CoEasyUAClient.Create; // Obtain attribute data. // The component automatically triggers the necessary user interaction during the first operation. TVarData(Results).VType := varArray or varVariant; TVarData(Results).VArray := PVarArray(Client.ReadMultiple(Arguments)); Result := IInterface(Results[0]) as _UAAttributeDataResult; if Result.Succeeded then begin AttributeData := Result.AttributeData; // Display results. WriteLn('Value: ', AttributeData.Value); WriteLn('ServerTimestamp: ', DateTimeToStr(AttributeData.ServerTimestamp)); WriteLn('SourceTimestamp: ', DateTimeToStr(AttributeData.SourceTimestamp)); WriteLn('StatusCode: ', AttributeData.StatusCode.ToString); end else WriteLn('*** Failure: ', Result.ErrorMessageBrief); VarClear(Results); VarClear(Arguments); FreeAndNil(ClientManagement); end;
The program output may look like this:
Copyright © 2004-2023 CODE Consulting and Development, s.r.o., Plzen. All rights reserved. Web page: www.opclabs.com
Send Documentation Feedback. Resources: Knowledge Base. Technical support: Online Forums, FAQ.