// This example shows how to subscribe to events and obtain the notification events by pulling them. using System; using OpcLabs.EasyOpc.AlarmsAndEvents; using OpcLabs.EasyOpc.AlarmsAndEvents.OperationModel; namespace DocExamples.AlarmsAndEvents._EasyAEClient { class PullNotification { public static void Main1() { // Instantiate the client object. // In order to use event pull, you must set a non-zero queue capacity upfront. using (var client = new EasyAEClient { PullNotificationQueueCapacity = 1000 }) { Console.WriteLine("Subscribing events..."); int handle = client.SubscribeEvents("", "OPCLabs.KitEventServer.2", 1000); Console.WriteLine("Processing event notifications for 1 minute..."); int endTick = Environment.TickCount + 60 * 1000; do { EasyAENotificationEventArgs eventArgs = client.PullNotification(2 * 1000); if (!(eventArgs is null)) // Handle the notification event Console.WriteLine(eventArgs); } while (Environment.TickCount < endTick); Console.WriteLine("Unsubscribing events..."); client.UnsubscribeEvents(handle); Console.WriteLine("Finished."); } } } }
# This example shows how to subscribe to events and obtain the notification events by pulling them. #requires -Version 5.1 using namespace OpcLabs.EasyOpc.AlarmsAndEvents # The path below assumes that the current directory is [ProductDir]/Examples-NET/PowerShell/Windows . Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcClassicCore.dll" Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcClassic.dll" Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcClassicComponents.dll" # Instantiate the client object. $client = New-Object EasyAEClient # In order to use event pull, you must set a non-zero queue capacity upfront. $client.PullNotificationQueueCapacity = 1000 Write-Host "Subscribing events..." $handle = [OpcLabs.EasyOpc.AlarmsAndEvents.IEasyAEClientExtension]::SubscribeEvents($client, "", "OPCLabs.KitEventServer.2", 1000) Write-Host "Processing event notifications for 1 minute..." $stopwatch = [System.Diagnostics.Stopwatch]::StartNew() while ($stopwatch.Elapsed.TotalSeconds -lt 60) { $eventArgs = $client.PullNotification(2*1000) if ($eventArgs -ne $null) { # Handle the notification event Write-Host $eventArgs } } Write-Host "Unsubscribing events..." $client.UnsubscribeEvents($handle) Write-Host "Finished."
# This example shows how to subscribe to events and obtain the notification events by pulling them. # The QuickOPC package is needed. Install it using "pip install opclabs_quickopc". import opclabs_quickopc import time # Import .NET namespaces. from OpcLabs.EasyOpc import * from OpcLabs.EasyOpc.AlarmsAndEvents import * # Instantiate the client object client = EasyAEClient() # In order to use event pull, you must set a non-zero queue capacity upfront. client.PullNotificationQueueCapacity = 1000 print('Subscribing events...') handle = IEasyAEClientExtension.SubscribeEvents(client, '', 'OPCLabs.KitEventServer.2', 1000) print('Processing event notifications for 1 minute...') endTime = time.time() + 60 while time.time() < endTime: eventArgs = IEasyAEClientExtension.PullNotification(client, 2*1000) if eventArgs is not None: # Handle the notification event print(eventArgs) print('Unsubscribing events...') client.UnsubscribeAllEvents() print('Finished.')
' This example shows how to subscribe to events and obtain the notification events by pulling them. Imports OpcLabs.EasyOpc.AlarmsAndEvents Imports OpcLabs.EasyOpc.AlarmsAndEvents.OperationModel Namespace AlarmsAndEvents._EasyAEClient Partial Friend Class PullNotification Public Shared Sub Main1() Using client = New EasyAEClient() ' In order to use event pull, you must set a non-zero queue capacity upfront. client.PullNotificationQueueCapacity = 1000 Console.WriteLine("Subscribing events...") Dim handle As Integer = client.SubscribeEvents("", "OPCLabs.KitEventServer.2", 1000) Console.WriteLine("Processing event notifications for 1 minute...") Dim endTick As Integer = Environment.TickCount + 60 * 1000 Do Dim eventArgs As EasyAENotificationEventArgs = client.PullNotification(2 * 1000) If Not eventArgs Is Nothing Then ' Handle the notification event Console.WriteLine(eventArgs) End If Loop While Environment.TickCount < endTick Console.WriteLine("Unsubscribing events...") client.UnsubscribeEvents(handle) End Using Console.WriteLine("Finished.") End Sub End Class End Namespace
// This example shows how to subscribe to events and obtain the notification events by pulling them. class procedure PullNotification.Main; var Client: OpcLabs_EasyOpcClassic_TLB._EasyAEClient; EndTick: Cardinal; EventArgs: _EasyAENotificationEventArgs; Handle: Integer; ServerDescriptor: _ServerDescriptor; State: OleVariant; SubscriptionParameters: _AESubscriptionParameters; begin ServerDescriptor := CoServerDescriptor.Create; ServerDescriptor.ServerClass := 'OPCLabs.KitEventServer.2'; // Instantiate the client object Client := CoEasyAEClient.Create; // In order to use event pull, you must set a non-zero queue capacity upfront. Client.PullNotificationQueueCapacity := 1000; WriteLn('Subscribing events...'); SubscriptionParameters := CoAESubscriptionParameters.Create; SubscriptionParameters.NotificationRate := 1000; Handle := Client.SubscribeEvents(ServerDescriptor, SubscriptionParameters, true, State); WriteLn('Processing event notifications for 1 minute...'); EndTick := Ticks + 60*1000; while Ticks < EndTick do begin EventArgs := Client.PullNotification(2*1000); if EventArgs <> nil then // Handle the notification event WriteLn(EventArgs.ToString); end; WriteLn('Unsubscribing events...'); Client.UnsubscribeEvents(Handle); WriteLn('Finished.'); end;
// This example shows how to subscribe to events and obtain the notification events by pulling them. $ServerDescriptor = new COM("OpcLabs.EasyOpc.ServerDescriptor"); $ServerDescriptor->ServerClass = "OPCLabs.KitEventServer.2"; $Client = new COM("OpcLabs.EasyOpc.AlarmsAndEvents.EasyAEClient"); // In order to use event pull, you must set a non-zero queue capacity upfront. $Client->PullNotificationQueueCapacity = 1000; print "Subscribing events...\n"; $SubscriptionParameters = new COM("OpcLabs.EasyOpc.AlarmsAndEvents.AESubscriptionParameters"); $SubscriptionParameters->NotificationRate = 1000; $handle = $Client->SubscribeEvents($ServerDescriptor, $SubscriptionParameters, TRUE, NULL); print "Processing event notifications for 1 minute...\n"; $endTime = time() + 60; do { $EventArgs = $Client->PullNotification(2*1000); if (!is_null($EventArgs)) { // Handle the notification event print $EventArgs->ToString(); print "\n"; } } while (time() < $endTime); print "Unsubscribing events...\n"; $Client->UnsubscribeEvents($handle); print "Finished.\n";
# This example shows how to subscribe to events and obtain the notification events by pulling them. # The Python for Windows (pywin32) extensions package is needed. Install it using "pip install pypiwin32". # CAUTION: We now recommend using Python.NET package instead. Full set of examples with Python.NET is available! import time import win32com.client serverDescriptor = win32com.client.Dispatch('OpcLabs.EasyOpc.ServerDescriptor') serverDescriptor.UrlString = 'opcae://localhost/OPCLabs.KitEventServer.2' #serverDescriptor.ServerClass = 'OPCLabs.KitEventServer.2' # Instantiate the client object client = win32com.client.Dispatch('OpcLabs.EasyOpc.AlarmsAndEvents.EasyAEClient') # In order to use event pull, you must set a non-zero queue capacity upfront. client.PullNotificationQueueCapacity = 1000 print('Subscribing events...') subscriptionParameters = win32com.client.Dispatch('OpcLabs.EasyOpc.AlarmsAndEvents.AESubscriptionParameters') subscriptionParameters.NotificationRate = 1000 handle = client.SubscribeEvents(serverDescriptor, subscriptionParameters, True, None) print('Processing event notifications for 1 minute...') endTime = time.time() + 60 while time.time() < endTime: eventArgs = client.PullNotification(2*1000) if eventArgs is not None: # Handle the notification event print(eventArgs) print('Unsubscribing events...') client.UnsubscribeAllEvents() print('Finished.')
Rem This example shows how to subscribe to events and obtain the notification events by pulling them. Private Sub PullNotification_Main_Command_Click() OutputText = "" Dim eventArgs As EasyAENotificationEventArgs Dim serverDescriptor As New serverDescriptor serverDescriptor.ServerClass = "OPCLabs.KitEventServer.2" ' Instantiate the client object Dim client As New EasyAEClient ' In order to use event pull, you must set a non-zero queue capacity upfront. client.PullNotificationQueueCapacity = 1000 OutputText = OutputText & "Subscribing events..." & vbCrLf Dim subscriptionParameters As New AESubscriptionParameters subscriptionParameters.notificationRate = 1000 Dim handle Dim state handle = client.SubscribeEvents(serverDescriptor, subscriptionParameters, True, state) OutputText = OutputText & "Processing event notifications for 1 minute..." & vbCrLf Dim endTick As Long endTick = GetTickCount + 60000 While GetTickCount < endTick Set eventArgs = client.PullNotification(2 * 1000) If Not eventArgs Is Nothing Then ' Handle the notification event OutputText = OutputText & eventArgs & vbCrLf End If Wend OutputText = OutputText & "Unsubscribing events..." & vbCrLf client.UnsubscribeEvents handle OutputText = OutputText & "Finished." & vbCrLf End Sub
Rem This example shows how to subscribe to events and obtain the notification events by pulling them. Option Explicit Dim ServerDescriptor: Set ServerDescriptor = CreateObject("OpcLabs.EasyOpc.ServerDescriptor") ServerDescriptor.ServerClass = "OPCLabs.KitEventServer.2" Dim Client: Set Client = CreateObject("OpcLabs.EasyOpc.AlarmsAndEvents.EasyAEClient") ' In order to use event pull, you must set a non-zero queue capacity upfront. Client.PullNotificationQueueCapacity = 1000 WScript.Echo "Subscribing events..." Dim SubscriptionParameters: Set SubscriptionParameters = CreateObject("OpcLabs.EasyOpc.AlarmsAndEvents.AESubscriptionParameters") SubscriptionParameters.NotificationRate = 1000 Dim handle: handle = Client.SubscribeEvents(ServerDescriptor, SubscriptionParameters, True, Nothing) WScript.Echo "Processing event notifications for 1 minute..." Dim endTime: endTime = Now() + 60*(1/24/60/60) Do Dim EventArgs: Set EventArgs = Client.PullNotification(2*1000) If Not (EventArgs Is Nothing) Then ' Handle the notification event WScript.Echo EventArgs End If Loop While Now() < endTime WScript.Echo "Unsubscribing events..." Client.UnsubscribeEvents handle WScript.Echo "Finished."
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.