public static void Main1() { // Instantiate the client object // In order to use event pull, you must set a non-zero queue capacity upfront. var easyUAClient = new EasyUAClient { PullEventNotificationQueueCapacity = 1000 }; Console.WriteLine("Subscribing..."); easyUAClient.SubscribeEvent( "opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer", UAObjectIds.Server, 1000); Console.WriteLine("Processing event notifications for 30 seconds..."); int endTick = Environment.TickCount + 30 * 1000; do { EasyUAEventNotificationEventArgs eventArgs = easyUAClient.PullEventNotification(2 * 1000); if (eventArgs != null) { // Handle the notification event Console.WriteLine(eventArgs); } } while (Environment.TickCount < endTick); }
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); }
static void easyUAClient_EventNotification(object sender, EasyUAEventNotificationEventArgs e) { Console.WriteLine(); // Display the event if (e.EventData == null) { Console.WriteLine(e); return; } Console.WriteLine("All fields:"); foreach (KeyValuePair <UAAttributeField, ValueResult> pair in e.EventData.FieldResults) { UAAttributeField attributeField = pair.Key; ValueResult valueResult = pair.Value; Console.WriteLine(" {0} -> {1}", attributeField, valueResult); } // Extracting a specific field using a standard operand symbol Console.WriteLine("Source name: {0}", e.EventData.FieldResults[UABaseEventObject.Operands.SourceName]); // Extracting a specific field using an event type ID and a simple relative path Console.WriteLine("Message: {0}", e.EventData.FieldResults[UAFilterElements.SimpleAttribute(UAObjectTypeIds.BaseEventType, "/Message")]); }
static void easyUAClient_EventNotification(object sender, EasyUAEventNotificationEventArgs e) { // Display the event Console.WriteLine(e); }