using System.Diagnostics; using Microsoft.Extensions.DependencyInjection; using OpcLabs.BaseLib; using OpcLabs.EasyOpc.UA; using OpcLabs.EasyOpc.UA.OperationModel; using OpcLabs.EasyOpc.UA.Services; namespace Repro_4621; class Program { static void Main(string[] args) { EasyUAClient.AdaptableParameters.SessionParameters.HoldPeriod = 15000; EasyUAClient.AdaptableParameters.SessionParameters.RetrialDelay = 60000; EasyUAClient.SharedParameters.EngineParameters.DebuggerDetectionOverride = Sign.Negative; var client = new EasyUAClient { Isolated = false /*unnecessary*/ }; client.DataChangeNotification += ClientOnDataChangeNotification; IEasyUAClientConnectionMonitoring? clientConnectionMonitoring = client.GetService(); Debug.Assert(clientConnectionMonitoring != null); clientConnectionMonitoring.ServerConditionChanged += ClientConnectionMonitoring_ServerConditionChanged; client.SubscribeDataChange("opc.tcp://opcua.demo-this.com:51210/UA/SampleServer", "nsu=http://test.org/UA/Data/ ;i=10853", 3000); client.SubscribeDataChange("opc.tcp://localhost:48040", "nsu=http://opclabs.com/OpcUA/Custom/Objects ;s=Demo.Random", 3000); Console.ReadLine(); } static private void ClientConnectionMonitoring_ServerConditionChanged(object sender, EasyUAServerConditionChangedEventArgs e) => Console.WriteLine($"[{DateTime.UtcNow}] {e}"); static private void ClientOnDataChangeNotification(object sender, EasyUADataChangeNotificationEventArgs e) => Console.WriteLine($"[{DateTime.UtcNow}] \"{e.Arguments.EndpointDescriptor}\" {e}"); }