Example #1
0
            static void easyUAClient_EventNotification(object sender, EasyUAEventNotificationEventArgs e)
            {
                Console.WriteLine();

                // Display the event
                if (e.EventData == null)
                {
                    Console.WriteLine(e);
                    return;
                }
                UABaseEventObject baseEventObject = e.EventData.BaseEvent;

                Console.WriteLine("Source name: {0}", baseEventObject.SourceName);
                Console.WriteLine("Message: {0}", baseEventObject.Message);
                Console.WriteLine("Severity: {0}", baseEventObject.Severity);
            }
Example #2
0
            public static void Main1()
            {
                // Instantiate the client object
                var easyUAClient = new EasyUAClient();

                UANodeId nodeId = null;

                byte[] eventId = null;
                var    anEvent = new ManualResetEvent(initialState: false);

                Console.WriteLine("Subscribing...");
                easyUAClient.SubscribeEvent(
                    "opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer",
                    UAObjectIds.Server,
                    1000,
                    new UAEventFilterBuilder(
                        UAFilterElements.Equals(
                            UABaseEventObject.Operands.NodeId,
                            new UANodeId(expandedText: "nsu=http://opcfoundation.org/Quickstarts/AlarmCondition;ns=2;s=1:Colours/EastTank?Yellow")),
                        UABaseEventObject.AllFields),
                    (sender, eventArgs) =>
                {
                    if (!eventArgs.Succeeded)
                    {
                        Console.WriteLine(eventArgs.ErrorMessageBrief);
                        return;
                    }
                    if (eventArgs.EventData != null)
                    {
                        UABaseEventObject baseEventObject = eventArgs.EventData.BaseEvent;
                        Console.WriteLine(baseEventObject);

                        // Make sure we do not catch the event more than once
                        if (anEvent.WaitOne(0))
                        {
                            return;
                        }

                        nodeId  = baseEventObject.NodeId;
                        eventId = baseEventObject.EventId;

                        anEvent.Set();
                    }
                },
                    state: null);

                Console.WriteLine("Waiting for an event for 30 seconds...");
                if (!anEvent.WaitOne(30 * 1000))
                {
                    Console.WriteLine("Event not received");
                    return;
                }

                Console.WriteLine("Acknowledging an event...");
                easyUAClient.Acknowledge(
                    "opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer",
                    nodeId,
                    eventId,
                    "Acknowledged by an automated example code");

                Console.WriteLine("Waiting for 5 seconds...");
                Thread.Sleep(5 * 1000);

                Console.WriteLine("Unsubscribing...");
                easyUAClient.UnsubscribeAllMonitoredItems();

                Console.WriteLine("Waiting for 5 seconds...");
                Thread.Sleep(5 * 1000);
            }