// This example shows how to subscribe to events and display the event message with each notification. It also shows how to
// unsubscribe afterwards.
//
// Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
// OPC client and subscriber examples in Object Pascal (Delphi) on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-OP .
// Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
// a commercial license in order to use Online Forums, and we reply to every post.
type
TClientEventHandlers = class
// Notification event handler
procedure OnNotification(
ASender: TObject;
sender: OleVariant;
const eventArgs: _EasyAENotificationEventArgs);
end;
procedure TClientEventHandlers.OnNotification(
ASender: TObject;
sender: OleVariant;
const eventArgs: _EasyAENotificationEventArgs);
begin
if not eventArgs.Succeeded then
WriteLn(Format('*** Failure: %s', [eventArgs.ErrorMessageBrief]));
if eventArgs.EventData <> nil then
WriteLn(eventArgs.EventData.Message);
end;
class procedure SubscribeEvents.Main;
var
Client: TEasyAEClient;
ClientEventHandlers: TClientEventHandlers;
Handle: Integer;
ServerDescriptor: _ServerDescriptor;
State: OleVariant;
SubscriptionParameters: _AESubscriptionParameters;
begin
ServerDescriptor := CoServerDescriptor.Create;
ServerDescriptor.ServerClass := 'OPCLabs.KitEventServer.2';
// Instantiate the client object and hook events
Client := TEasyAEClient.Create(nil);
ClientEventHandlers := TClientEventHandlers.Create;
Client.OnNotification := ClientEventHandlers.OnNotification;
WriteLn('Subscribing events...');
SubscriptionParameters := CoAESubscriptionParameters.Create;
SubscriptionParameters.NotificationRate := 1000;
Handle := Client.SubscribeEvents(ServerDescriptor, SubscriptionParameters, true, State);
WriteLn('Processing event notifications for 1 minute...');
PumpSleep(60*1000);
WriteLn('Unsubscribing events...');
Client.UnsubscribeEvents(Handle);
WriteLn('Finished.');
FreeAndNil(Client);
FreeAndNil(ClientEventHandlers);
end;
// This example shows how to subscribe to events and display the event message with each notification. It also shows how to
// unsubscribe afterwards.
//
// Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
// OPC client and subscriber examples in PHP on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-PHP .
// Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
// a commercial license in order to use Online Forums, and we reply to every post.
class DEasyEAClientEvents {
function Notification($Sender, $E)
{
if (!($E->Succeeded))
{
printf("*** Failure: %s\n", $E->ErrorMessageBrief);
Exit();
}
if (!is_null($E->EventData))
{
print $E->EventData->Message;
print "\n";
}
}
}
$ServerDescriptor = new COM("OpcLabs.EasyOpc.ServerDescriptor");
$ServerDescriptor->ServerClass = "OPCLabs.KitEventServer.2";
$Client = new COM("OpcLabs.EasyOpc.AlarmsAndEvents.EasyAEClient");
$Events = new DEasyEAClientEvents();
com_event_sink($Client, $Events, "DEasyEAClientEvents");
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";
$startTime = time(); do { com_message_pump(1000); } while (time() < $startTime + 60);
print "Unsubscribing events...\n";
$Client->UnsubscribeEvents($handle);
print "Finished.\n";
REM This example shows how to subscribe to events and display the event message with each notification. It also shows how to
REM unsubscribe afterwards.
REM
REM Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
REM OPC client and subscriber examples in Visual Basic on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VB .
REM Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
REM a commercial license in order to use Online Forums, and we reply to every post.
Private Sub SubscribeEvents_Main_Command_Click()
OutputText = ""
Dim serverDescriptor As New serverDescriptor
serverDescriptor.ServerClass = "OPCLabs.KitEventServer.2"
' Instantiate the client object and hook events
Set Client1 = New EasyAEClient
OutputText = OutputText & "Subscribing..." & vbCrLf
Dim subscriptionParameters As New AESubscriptionParameters
subscriptionParameters.notificationRate = 1000
Dim handle
Dim state
handle = Client1.SubscribeEvents(serverDescriptor, subscriptionParameters, True, state)
OutputText = OutputText & "Processing event notifications for 1 minute..." & vbCrLf
Pause 60000
OutputText = OutputText & "Unsubscribing events..." & vbCrLf
Client1.UnsubscribeEvents handle
OutputText = OutputText & "Waiting for 5 seconds..." & vbCrLf
Pause 5000
OutputText = OutputText & "Finished." & vbCrLf
Set Client1 = Nothing
End Sub
Private Sub Client1_OnNotification(ByVal sender As Variant, ByVal eventArgs As EasyAENotificationEventArgs)
If Not eventArgs.Succeeded Then
OutputText = OutputText & eventArgs.ErrorMessageBrief & vbCrLf
Exit Sub
End If
If Not eventArgs.EventData Is Nothing Then
OutputText = OutputText & eventArgs.EventData.Message & vbCrLf
End If
End Sub
Rem This example shows how to subscribe to events and display the event message with each notification. It also shows how to
Rem unsubscribe afterwards.
Rem
Rem Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
Rem OPC client and subscriber examples in VBScript on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VBScript .
Rem Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
Rem a commercial license in order to use Online Forums, and we reply to every post.
Option Explicit
Dim ServerDescriptor: Set ServerDescriptor = CreateObject("OpcLabs.EasyOpc.ServerDescriptor")
ServerDescriptor.ServerClass = "OPCLabs.KitEventServer.2"
Dim Client: Set Client = CreateObject("OpcLabs.EasyOpc.AlarmsAndEvents.EasyAEClient")
WScript.ConnectObject Client, "Client_"
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..."
WScript.Sleep 60*1000
WScript.Echo "Unsubscribing events..."
Client.UnsubscribeEvents handle
WScript.Echo "Finished."
Rem Notification event handler
Sub Client_Notification(Sender, e)
If Not e.Succeeded Then
WScript.Echo "*** Failure: " & e.ErrorMessageBrief
Exit Sub
End If
If Not e.EventData Is Nothing Then WScript.Echo e.EventData.Message
End Sub