lixun 2 سال پیش
والد
کامیت
62b513b907
2فایلهای تغییر یافته به همراه20 افزوده شده و 16 حذف شده
  1. 6 4
      src/YSAI.DAQ/YSAI.Opc/ua/client/OpcUaClientData.cs
  2. 14 12
      src/YSAI.DAQ/YSAI.Opc/ua/client/OpcUaClientOperate.cs

+ 6 - 4
src/YSAI.DAQ/YSAI.Opc/ua/client/OpcUaClientData.cs

@@ -148,10 +148,12 @@ namespace YSAI.Opc.ua.client
         /// </summary>
         public enum Steps
         {
-            连接成功事件,
-            异常断开事件,
-            重连成功事件,
-            订阅通知事件
+            异常,
+            连接成功,
+            异常断开,
+            重连成功,
+            订阅通知,
+            事件对象不匹配
         }
     }
 }

+ 14 - 12
src/YSAI.DAQ/YSAI.Opc/ua/client/OpcUaClientOperate.cs

@@ -134,20 +134,23 @@ namespace YSAI.Opc.ua.client
         {
             try
             {
-                if (!ReferenceEquals(session, clientSession))
+                if (!object.ReferenceEquals(session, this.clientSession))
                 {
+                    OnEventHandler?.Invoke(this, new Event() { Message = $"事件对象不匹配", Step = Steps.事件对象不匹配 });
                     return;
                 }
                 if (ServiceResult.IsBad(e.Status))
                 {
-                    //设置连接状态
+                    if (reconnectPeriod <= 0)
+                    {
+                        return;
+                    }
                     IsConnected = false;
-                    ConnectedCounet = 0;
                     if (sessionReconnectHandler == null)
                     {
                         sessionReconnectHandler = new SessionReconnectHandler();
                         sessionReconnectHandler.BeginReconnect(session, reconnectPeriod * 1000, Server_ReconnectComplete);
-                        OnEventHandler?.Invoke(this, new Event() { Message = $"连接断开,启动重连", Step = Steps.异常断开事件 });
+                        OnEventHandler?.Invoke(this, new Event() { Message = $"异常断开,启动重连", Step = Steps.异常断开 });
                     }
                     return;
                 }
@@ -158,13 +161,13 @@ namespace YSAI.Opc.ua.client
                     if (IsConnected && ConnectedCounet == 0)
                     {
                         ConnectedCounet = 1;
-                        OnEventHandler?.Invoke(this, new Event() { Message = $"已连接", State = true, Step = Steps.连接成功事件 });
+                        OnEventHandler?.Invoke(this, new Event() { Message = $"已连接", State = true, Step = Steps.连接成功 });
                     }
                 }
             }
             catch (Exception ex)
             {
-                LogHelper.Error($"{LogHead}(处理会话中的保持活动事件异常):{ex.Message}");
+                OnEventHandler?.Invoke(this, new Event() { Message = $"处理会话中的保持活动事件异常:{ex.Message}", Step = Steps.异常 });
             }
         }
 
@@ -175,20 +178,19 @@ namespace YSAI.Opc.ua.client
         {
             try
             {
-                //忽略来自被丢弃对象的回调.
                 if (!ReferenceEquals(sender, sessionReconnectHandler))
                 {
+                    OnEventHandler?.Invoke(this, new Event() { Message = $"事件对象不匹配", Step = Steps.事件对象不匹配 });
                     return;
                 }
                 clientSession = sessionReconnectHandler.Session;
                 sessionReconnectHandler.Dispose();
                 sessionReconnectHandler = null;
-
-                OnEventHandler?.Invoke(this, new Event() { Message = $"连接断开,已重连", State = true, Step = Steps.重连成功事件 });
+                OnEventHandler?.Invoke(this, new Event() { Message = $"重连成功", State = true, Step = Steps.重连成功 });
             }
             catch (Exception ex)
             {
-                LogHelper.Error($"{LogHead}(处理从重新连接处理程序完成的重新连接事件异常):{ex.Message}");
+                OnEventHandler?.Invoke(this, new Event() { Message = $"处理重新连接处理程序完成的重新连接事件异常:{ex.Message}", Step = Steps.异常 });
             }
         }
         /// <summary>
@@ -211,11 +213,11 @@ namespace YSAI.Opc.ua.client
                 param.AddOrUpdate(addressDetails.AddressName, addressValue, (k, v) => addressValue);
 
                 //响应
-                OnEventParamHandler?.Invoke(this, new EventParam() { Message = $"点位数据更新", Step = Steps.订阅通知事件, State = true, Params = param });
+                OnEventParamHandler?.Invoke(this, new EventParam() { Message = $"点位数据更新", Step = Steps.订阅通知, State = true, Params = param });
             }
             catch (Exception ex)
             {
-                OnEventHandler?.Invoke(this, new Event() { Message = ex.Message, Step = Steps.订阅通知事件 });
+                OnEventHandler?.Invoke(this, new Event() { Message = ex.Message, Step = Steps.订阅通知 });
             }
         }