From 36923d31900a7929af8ed44af38bc02aa0a5bb82 Mon Sep 17 00:00:00 2001 From: Kimdiego2098 <2248356998@qq.com> Date: Tue, 18 Jul 2023 11:13:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B7=BB=E5=8A=A0=E8=AE=A2?= =?UTF-8?q?=E9=98=85=E6=97=B6,=E5=80=BC=E6=AD=BB=E5=8C=BA=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OPCUAClient/OPCUAClient.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Plugins/ThingsGateway.Foundation.Adapter.OPCUA/OPCUAClient/OPCUAClient.cs b/src/Plugins/ThingsGateway.Foundation.Adapter.OPCUA/OPCUAClient/OPCUAClient.cs index 280d77515..4140db75f 100644 --- a/src/Plugins/ThingsGateway.Foundation.Adapter.OPCUA/OPCUAClient/OPCUAClient.cs +++ b/src/Plugins/ThingsGateway.Foundation.Adapter.OPCUA/OPCUAClient/OPCUAClient.cs @@ -283,12 +283,18 @@ public class OPCUAClient : DisposableObject m_session.AddSubscription(m_subscription); m_subscription.Create(); - foreach (var item in m_subscription.MonitoredItems.Where(a => a.Status.Error?.StatusCode == Opc.Ua.StatusCodes.BadFilterNotAllowed)) + foreach (var item in m_subscription.MonitoredItems.Where(a => a.Status.Error!=null&& StatusCode.IsBad( a.Status.Error.StatusCode))) { item.Filter = new DataChangeFilter() { DeadbandValue = OPCNode.DeadBand, DeadbandType = (int)DeadbandType.None, Trigger = DataChangeTrigger.StatusValue }; } m_subscription.ApplyChanges(); + var iserror = m_subscription.MonitoredItems.Any(a => a.Status.Error != null && StatusCode.IsBad(a.Status.Error.StatusCode)); + if(iserror) + { + UpdateStatus(iserror, DateTime.UtcNow, m_subscription.MonitoredItems.FirstOrDefault(a => a.Status.Error != null && StatusCode.IsBad(a.Status.Error.StatusCode)).Status.Error.ToString()); + } + lock (dic_subscriptions) { if (dic_subscriptions.ContainsKey(subscriptionName)) @@ -903,7 +909,7 @@ public class OPCUAClient : DisposableObject m_session = await Opc.Ua.Client.Session.Create( m_configuration, endpoint, - true, + false, false, (string.IsNullOrEmpty(OPCUAName)) ? m_configuration.ApplicationName : OPCUAName, 60000,