Shunnet 2 rokov pred
rodič
commit
ece137c3d5
45 zmenil súbory, kde vykonal 378 pridanie a 724 odobranie
  1. 2 2
      src/YSAI.DAQ/YSAI.Can/CanData.cs
  2. 2 2
      src/YSAI.DAQ/YSAI.Can/CanOperator.cs
  3. 29 0
      src/YSAI.DAQ/YSAI.Core/data/EventResult.cs
  4. 2 39
      src/YSAI.DAQ/YSAI.Core/data/OperateResult.cs
  5. 60 0
      src/YSAI.DAQ/YSAI.Core/data/Result.cs
  6. 10 2
      src/YSAI.DAQ/YSAI.Core/enum/Enums.cs
  7. 0 47
      src/YSAI.DAQ/YSAI.Core/interface/unify/IBase.cs
  8. 4 73
      src/YSAI.DAQ/YSAI.Core/interface/unify/IBaseAbstract.cs
  9. 2 2
      src/YSAI.DAQ/YSAI.Core/interface/unify/IDaq.cs
  10. 20 0
      src/YSAI.DAQ/YSAI.Core/interface/unify/IEvent.cs
  11. 0 28
      src/YSAI.DAQ/YSAI.Core/serialport/SerialPortData.cs
  12. 3 12
      src/YSAI.DAQ/YSAI.Core/serialport/SerialPortOperate.cs
  13. 0 26
      src/YSAI.DAQ/YSAI.Core/socket/tcp/client/SocketTcpClientData.cs
  14. 9 9
      src/YSAI.DAQ/YSAI.Core/socket/tcp/client/SocketTcpClientOperate.cs
  15. 0 31
      src/YSAI.DAQ/YSAI.Core/socket/tcp/service/SocketTcpServiceData.cs
  16. 6 6
      src/YSAI.DAQ/YSAI.Core/socket/tcp/service/SocketTcpServiceOperate.cs
  17. 7 6
      src/YSAI.DAQ/YSAI.Core/socket/tcpClient/Operate.cs
  18. 6 6
      src/YSAI.DAQ/YSAI.Core/socket/tcpListener/Operate.cs
  19. 0 27
      src/YSAI.DAQ/YSAI.Core/socket/udp/SocketUdpData.cs
  20. 5 15
      src/YSAI.DAQ/YSAI.Core/socket/udp/SocketUdpOperate.cs
  21. 5 16
      src/YSAI.DAQ/YSAI.Core/socket/udpClient/Operate.cs
  22. 0 30
      src/YSAI.DAQ/YSAI.Core/subscribe/SubscribeData.cs
  23. 7 7
      src/YSAI.DAQ/YSAI.Core/subscribe/SubscribeOperate.cs
  24. 2 2
      src/YSAI.DAQ/YSAI.DB/DBOperate.cs
  25. 5 4
      src/YSAI.DAQ/YSAI.DaqManage/DaqManageOperate.cs
  26. 22 22
      src/YSAI.DAQ/YSAI.Manage.Core/base/ManageBaseOperate.cs
  27. 2 2
      src/YSAI.DAQ/YSAI.Modbus/client/ModbusClientOperate.cs
  28. 0 26
      src/YSAI.DAQ/YSAI.Mqtt/client/MqttClientData.cs
  29. 7 2
      src/YSAI.DAQ/YSAI.Mqtt/client/MqttClientOperate.cs
  30. 1 40
      src/YSAI.DAQ/YSAI.Mqtt/service/MqttServiceData.cs
  31. 55 27
      src/YSAI.DAQ/YSAI.Mqtt/service/MqttServiceOperate.cs
  32. 51 35
      src/YSAI.DAQ/YSAI.Mqtt/service/websocket/MqttWebSocketServiceOperate.cs
  33. 1 28
      src/YSAI.DAQ/YSAI.Opc/da/client/OpcDaClientData.cs
  34. 6 4
      src/YSAI.DAQ/YSAI.Opc/da/client/OpcDaClientOperate.cs
  35. 0 26
      src/YSAI.DAQ/YSAI.Opc/da/http/OpcDaHttpData.cs
  36. 6 6
      src/YSAI.DAQ/YSAI.Opc/da/http/OpcDaHttpOperate.cs
  37. 0 33
      src/YSAI.DAQ/YSAI.Opc/ua/client/OpcUaClientData.cs
  38. 10 10
      src/YSAI.DAQ/YSAI.Opc/ua/client/OpcUaClientOperate.cs
  39. 0 19
      src/YSAI.DAQ/YSAI.Opc/ua/service/OpcUaServiceData.cs
  40. 5 5
      src/YSAI.DAQ/YSAI.Opc/ua/service/OpcUaServiceOperate.cs
  41. 0 18
      src/YSAI.DAQ/YSAI.RabbitMQ/RabbitMQData.cs
  42. 6 2
      src/YSAI.DAQ/YSAI.RabbitMQ/RabbitMQOperate.cs
  43. 10 7
      src/YSAI.DAQ/YSAI.Relay/RelayOperate.cs
  44. 2 2
      src/YSAI.DAQ/YSAI.S7/client/S7ClientOperate.cs
  45. 8 18
      src/YSAI.DAQ/YSAI.Test/TestAll.cs

+ 2 - 2
src/YSAI.DAQ/YSAI.Can/CanData.cs

@@ -64,9 +64,9 @@ namespace YSAI.Can
             }
         }
         /// <summary>
-        /// 事件抛出
+        /// 结果数据
         /// </summary>
-        public class Event
+        public class ResultData
         {
             /// <summary>
             /// CANID

+ 2 - 2
src/YSAI.DAQ/YSAI.Can/CanOperator.cs

@@ -12,7 +12,7 @@ namespace YSAI.Can
     /// <summary>
     /// can的读取比较特殊无须地址
     /// </summary>
-    public class CanOperator : IBaseAbstract<CanData.Event>, ICan
+    public class CanOperator : IBaseAbstract, ICan
     {
         protected override string LogHead => "[ CanOperator 操作 ]";
         protected override string ClassName => "CanOperator";
@@ -244,7 +244,7 @@ namespace YSAI.Can
                             {
                                 msg = ByteTool.ByteTrimEnd(msg);
 
-                                CanData.Event candata = new CanData.Event() { CanID = id, ByteData = msg, StrByteData = ByteTool.HexToStr(msg), Flag = flag, Length = dlc, Time = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddMilliseconds(time).ToLocalTime() };
+                                CanData.ResultData candata = new CanData.ResultData() { CanID = id, ByteData = msg, StrByteData = ByteTool.HexToStr(msg), Flag = flag, Length = dlc, Time = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddMilliseconds(time).ToLocalTime() };
 
 
                                 string? Value = candata.StrByteData;

+ 29 - 0
src/YSAI.DAQ/YSAI.Core/data/EventResult.cs

@@ -0,0 +1,29 @@
+using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using YSAI.Core.@enum;
+
+namespace YSAI.Core.data
+{
+    /// <summary>
+    /// 事件结果
+    /// </summary>
+    public class EventResult : Result
+    {
+        public EventResult()
+        {
+        }
+        public EventResult(bool State, string Message, object? RData = null, ResultType RType = ResultType.NULL) : base(State, Message, RData, RType)
+        {
+            this.State = State;
+            this.Message = Message;
+            this.RData = RData;
+            this.RType = RType;
+        }
+    }
+
+}

+ 2 - 39
src/YSAI.DAQ/YSAI.Core/data/OperateResult.cs

@@ -9,12 +9,12 @@ namespace YSAI.Core.data
     /// <summary>
     /// 操作结果
     /// </summary>
-    public class OperateResult
+    public class OperateResult : Result
     {
         public OperateResult()
         {
         }
-        public OperateResult(bool State, string Message, double RunTime, object? RData = null, ResultType RType = ResultType.NULL)
+        public OperateResult(bool State, string Message, double RunTime, object? RData = null, ResultType RType = ResultType.NULL) : base(State, Message, RData, RType)
         {
             this.State = State;
             this.Message = Message;
@@ -23,45 +23,8 @@ namespace YSAI.Core.data
             this.RType = RType;
         }
         /// <summary>
-        /// 信息
-        /// </summary>
-        public string? Message { get; set; }
-        /// <summary>
-        /// 状态
-        /// </summary>
-        public bool State { get; set; }
-        /// <summary>
         /// 次函数的运行时间
         /// </summary>
         public double RunTime { get; set; }
-        /// <summary>
-        /// 创建时间
-        /// </summary>
-        public string CreatedTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
-        /// <summary>
-        /// 结果数据
-        /// </summary>
-        public object? RData { get; set; } = null;
-        /// <summary>
-        /// 结果数据类型
-        /// </summary>
-        [JsonConverter(typeof(StringEnumConverter))]
-        public ResultType RType { get; set; } = ResultType.NULL;
-
-        /// <summary>
-        /// 获取对应类型的数据
-        /// </summary>
-        /// <typeparam name="T">数据类型</typeparam>
-        /// <returns>指定类型的数据</returns>
-        public T? GetRData<T>()
-        {
-            if (RData != null)
-            {
-                return (T)RData;
-            }
-            return default;
-        }
-       
     }
-
 }

+ 60 - 0
src/YSAI.DAQ/YSAI.Core/data/Result.cs

@@ -0,0 +1,60 @@
+using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using YSAI.Core.@enum;
+
+namespace YSAI.Core.data
+{
+    public class Result
+    {
+        public Result()
+        {
+        }
+        public Result(bool State, string Message, object? RData = null, ResultType RType = ResultType.NULL)
+        {
+            this.State = State;
+            this.Message = Message;
+            this.RData = RData;
+            this.RType = RType;
+        }
+        /// <summary>
+        /// 信息
+        /// </summary>
+        public string? Message { get; set; }
+        /// <summary>
+        /// 状态
+        /// </summary>
+        public bool State { get; set; }
+        /// <summary>
+        /// 创建时间
+        /// </summary>
+        public string CreatedTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+        /// <summary>
+        /// 结果数据
+        /// </summary>
+        public object? RData { get; set; } = null;
+        /// <summary>
+        /// 结果数据类型
+        /// </summary>
+        [JsonConverter(typeof(StringEnumConverter))]
+        public ResultType RType { get; set; } = ResultType.NULL;
+
+        /// <summary>
+        /// 获取对应类型的数据
+        /// </summary>
+        /// <typeparam name="T">数据类型</typeparam>
+        /// <returns>指定类型的数据</returns>
+        public T? GetRData<T>()
+        {
+            if (RData != null)
+            {
+                return (T)RData;
+            }
+            return default;
+        }
+    }
+}

+ 10 - 2
src/YSAI.DAQ/YSAI.Core/enum/Enums.cs

@@ -147,9 +147,17 @@ namespace YSAI.Core.@enum
         /// </summary>
         String,
         /// <summary>
-        /// 返回通过反射得到的对象
+        /// 动态数据
         /// </summary>
-        Reflect,
+        Dynamic,
+        /// <summary>
+        /// 操作结果
+        /// </summary>
+        OperateResult,
+        /// <summary>
+        /// 返回枚举
+        /// </summary>
+        Enum,
         /// <summary>
         /// 无返回参数
         /// </summary>

+ 0 - 47
src/YSAI.DAQ/YSAI.Core/interface/unify/IBase.cs

@@ -1,47 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace YSAI.Core.@interface.unify
-{
-    public interface IBase
-    {
-
-    }
-    public interface IBase<E1> 
-    {
-        /// <summary>
-        /// 信息传递
-        /// </summary>
-        event EventHandler<E1> OnEvent;
-    }
-    public interface IBase<E1, E2> 
-    {
-        /// <summary>
-        /// 信息传递
-        /// </summary>
-        event EventHandler<E1> OnEvent;
-        /// <summary>
-        /// 信息传递
-        /// </summary>
-        event EventHandler<E2> OnEventParam;
-    }
-
-    public interface IBase<E1, E2, E3> 
-    {
-        /// <summary>
-        /// 信息传递
-        /// </summary>
-        event EventHandler<E1> OnEvent;
-        /// <summary>
-        /// 信息传递
-        /// </summary>
-        event EventHandler<E2> OnEventParam;
-        /// <summary>
-        /// 备用
-        /// </summary>
-        event EventHandler<E3> OnEventRes;
-    }
-}

+ 4 - 73
src/YSAI.DAQ/YSAI.Core/interface/unify/IBaseAbstract.cs

@@ -3,23 +3,17 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using YSAI.Core.data;
 using YSAI.Core.@interface.unify;
 
 namespace YSAI.Core.@interface.unify
 {
-    /// <summary>
-    /// [ 抽象类 ]统一出参
-    /// </summary>
-    public abstract class IBaseAbstract : IOrAbstract, IBase
-    {
-    }
-
     /// <summary>
     /// [ 抽象类 ]包含一个事件与统一出参
     /// </summary>
-    public abstract class IBaseAbstract<E1> : IOrAbstract, IBase<E1>
+    public abstract class IBaseAbstract: IOrAbstract
     {
-        public event EventHandler<E1> OnEvent
+        public event EventHandler<EventResult> OnEvent
         {
             add { OnEventHandler += value; }
             remove { OnEventHandler -= value; }
@@ -27,70 +21,7 @@ namespace YSAI.Core.@interface.unify
         /// <summary>
         /// 信息传递
         /// </summary>
-        protected EventHandler<E1>? OnEventHandler;
-
+        protected EventHandler<EventResult>? OnEventHandler;
     }
 
-    /// <summary>
-    /// [ 抽象类 ]包含两个事件与统一出参
-    /// </summary>
-    public abstract class IBaseAbstract<E1, E2> : IOrAbstract, IBase<E1, E2>
-    {
-        public event EventHandler<E1> OnEvent
-        {
-            add { OnEventHandler += value; }
-            remove { OnEventHandler -= value; }
-        }
-        /// <summary>
-        /// 信息传递
-        /// </summary>
-        protected EventHandler<E1>? OnEventHandler;
-
-        public event EventHandler<E2> OnEventParam
-        {
-            add { OnEventParamHandler += value; }
-            remove { OnEventParamHandler -= value; }
-        }
-        /// <summary>
-        /// 信息传递
-        /// </summary>
-        protected EventHandler<E2>? OnEventParamHandler;
-
-    }
-
-    /// <summary>
-    /// [ 抽象类 ]包含三个事件与统一出参
-    /// </summary>
-    public abstract class IBaseAbstract<E1, E2, E3> : IOrAbstract,IBase<E1,E2,E3>
-    {
-        public event EventHandler<E1> OnEvent
-        {
-            add { OnEventHandler += value; }
-            remove { OnEventHandler -= value; }
-        }
-        /// <summary>
-        /// 信息传递
-        /// </summary>
-        protected EventHandler<E1>? OnEventHandler;
-
-        public event EventHandler<E2> OnEventParam
-        {
-            add { OnEventParamHandler += value; }
-            remove { OnEventParamHandler -= value; }
-        }
-        /// <summary>
-        /// 信息传递
-        /// </summary>
-        protected EventHandler<E2>? OnEventParamHandler;
-
-        public event EventHandler<E3> OnEventRes
-        {
-            add { OnEventResHandler += value; }
-            remove { OnEventResHandler -= value; }
-        }
-        /// <summary>
-        /// 备用
-        /// </summary>
-        protected EventHandler<E3>? OnEventResHandler;
-    }
 }

+ 2 - 2
src/YSAI.DAQ/YSAI.Core/interface/unify/IDaq.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Reflection;
 using System.Text;
 using System.Threading.Tasks;
 using YSAI.Core.@interface.only;
@@ -10,8 +11,7 @@ namespace YSAI.Core.@interface.unify
     /// <summary>
     /// 数采接口
     /// </summary>
-    public interface IDaq : IOn, IOff, IRead, IWrite, ISubscribe, IDisposable
+    public interface IDaq : IOn, IOff, IRead, IWrite, ISubscribe, IEvent, IDisposable
     {
-
     }
 }

+ 20 - 0
src/YSAI.DAQ/YSAI.Core/interface/unify/IEvent.cs

@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using YSAI.Core.data;
+
+namespace YSAI.Core.@interface.unify
+{
+    /// <summary>
+    /// 事件接口
+    /// </summary>
+    public interface IEvent
+    {
+        /// <summary>
+        /// 信息传递
+        /// </summary>
+        event EventHandler<EventResult> OnEvent;
+    }
+}

+ 0 - 28
src/YSAI.DAQ/YSAI.Core/serialport/SerialPortData.cs

@@ -118,34 +118,6 @@ namespace YSAI.Core.serialport
             public string? Data { get; set; }
         }
 
-
-        /// <summary>
-        /// 事件响应数据
-        /// </summary>
-        public class Event
-        {
-            /// <summary>
-            /// 详细消息
-            /// </summary>
-            public string? Message { get; set; }
-            /// <summary>
-            /// 状态
-            /// </summary>
-            public bool State { get; set; }
-            /// <summary>
-            /// 字节数据
-            /// </summary>
-            public byte[]? ByteData { get; set; }
-            /// <summary>
-            /// 在那一个无返回的函数中出现的
-            /// </summary>
-            [JsonConverter(typeof(StringEnumConverter))]
-            public Steps Step { get; set; }
-            /// <summary>
-            /// 时间
-            /// </summary>
-            public DateTime Time { get; set; } = DateTime.Now.ToLocalTime();
-        }
         /// <summary>
         /// 步骤枚举
         /// </summary>

+ 3 - 12
src/YSAI.DAQ/YSAI.Core/serialport/SerialPortOperate.cs

@@ -57,15 +57,6 @@ namespace YSAI.Core.serialport
             this.basics = basics;
         }
 
-        /// <summary>
-        /// 全局信息事件中状态抛出
-        /// </summary>
-        public event EventHandler<SerialPortData.Event> OnEvent
-        {
-            add { OnEventHandler += value; }
-            remove { OnEventHandler -= value; }
-        }
-        private EventHandler<SerialPortData.Event>? OnEventHandler;
 
 
         /// <summary>
@@ -260,7 +251,7 @@ namespace YSAI.Core.serialport
                 }
                 catch (Exception ex)
                 {
-                    OnEventHandler?.Invoke(this, new SerialPortData.Event() { Message = "接收数据异常:" + ex.Message, Step = SerialPortData.Steps.消息接收 });
+                    OnEventHandler?.Invoke(this, new EventResult(false, $"[ {SerialPortData.Steps.消息接收} ]接收数据异常:{ex.Message}"));
                 }
                 Thread.Sleep(10);
             }
@@ -288,7 +279,7 @@ namespace YSAI.Core.serialport
                         buffer.Add(item);
                     }
 
-                    OnEventHandler?.Invoke(this, new SerialPortData.Event() { Step = SerialPortData.Steps.粘包处理, State = true, ByteData = buffer.ToArray() });
+                    OnEventHandler?.Invoke(this, new EventResult(true, $"[ {SerialPortData.Steps.粘包处理} ]成功", buffer.ToArray(), ResultType.Bytes));
 
                     byte result;
                     while (Data_buffer.TryDequeue(out result)) { }
@@ -297,7 +288,7 @@ namespace YSAI.Core.serialport
             }
             catch (Exception ex)
             {
-                OnEventHandler?.Invoke(this, new SerialPortData.Event() { Message = "数据粘包处理异常:" + ex.Message, Step = SerialPortData.Steps.粘包处理 });
+                OnEventHandler?.Invoke(this, new EventResult(false, $"[ {SerialPortData.Steps.粘包处理} ]异常:{ex.Message}"));
             }
         }
 

+ 0 - 26
src/YSAI.DAQ/YSAI.Core/socket/tcp/client/SocketTcpClientData.cs

@@ -73,32 +73,6 @@ namespace YSAI.Core.socket.tcp.client
             }
         }
 
-        /// <summary>
-        /// 事件响应数据
-        /// </summary>
-        public class Event
-        {
-            /// <summary>
-            /// 详细消息
-            /// </summary>
-            public string? Message { get; set; }
-            /// <summary>
-            /// 状态
-            /// </summary>
-            public bool State { get; set; }
-            /// <summary>
-            /// 字节数据
-            /// </summary>
-            public byte[]? ByteData { get; set; }
-            /// <summary>
-            /// 在那一个无返回的函数中出现的
-            /// </summary>
-            public Steps Step { get; set; }
-            /// <summary>
-            /// 时间
-            /// </summary>
-            public DateTime Time { get; set; } = DateTime.Now.ToLocalTime();
-        }
         /// <summary>
         /// 步骤枚举
         /// </summary>

+ 9 - 9
src/YSAI.DAQ/YSAI.Core/socket/tcp/client/SocketTcpClientOperate.cs

@@ -13,7 +13,7 @@ namespace YSAI.Core.socket.tcp.client
     /// <summary>
     /// 客户端
     /// </summary>
-    public class SocketTcpClientOperate : IBaseAbstract<SocketTcpClientData.Event>, IUC
+    public class SocketTcpClientOperate : IBaseAbstract, IUC
     {
         private static readonly object Lock = new object();  //锁
         private static List<SocketTcpClientOperate> ThisObjList = new List<SocketTcpClientOperate>(); //自身对象集合
@@ -85,12 +85,11 @@ namespace YSAI.Core.socket.tcp.client
         /// </summary>
         bool threadMonitorConnectState = false;
 
-        
+
 
         /// <summary>
         /// 线程监控连接状态
         /// </summary>
-        /// <param name="DataEvent"></param>
         public void ThreadMonitorConnectState()
         {
             if (threadMonitorConnectState) return;
@@ -102,18 +101,19 @@ namespace YSAI.Core.socket.tcp.client
                 {
                     if (!Client_SK.Connected)
                     {
-                        OnEventHandler?.Invoke(this, new SocketTcpClientData.Event() { State = true, Message = "与服务端断开连接,重连" + ReconnectionCount + "次", Step = SocketTcpClientData.Steps.断线重连 });  //数据传递出去
+                        OnEventHandler?.Invoke(this, new EventResult(false, $"[ {SocketTcpClientData.Steps.断线重连} ]与服务端断开连接,重连{ReconnectionCount}次"));  //数据传递出去
                         On();
                         ReconnectionCount++;
                     }
                     else
                     {
+                        OnEventHandler?.Invoke(this, new EventResult(true, $"[ {SocketTcpClientData.Steps.断线重连} ]与服务端断开连接,重连成功"));  //数据传递出去
                         ReconnectionCount = 1;
                     }
                 }
                 catch (Exception ex)
                 {
-                    OnEventHandler?.Invoke(this, new SocketTcpClientData.Event() { State = false, Message = "线程监控连接状态异常:" + ex.Message, Step = SocketTcpClientData.Steps.断线重连 });  //数据传递出去
+                    OnEventHandler?.Invoke(this, new EventResult(false, $"[ {SocketTcpClientData.Steps.断线重连} ]线程监控连接状态异常:{ex.Message}"));  //数据传递出去
                 }
                 Thread.Sleep(2000);  //多少秒执行一次
             }
@@ -133,7 +133,7 @@ namespace YSAI.Core.socket.tcp.client
             catch { }
         }
 
-        
+
         /// <summary>
         /// 服务端消息接收
         /// </summary>
@@ -147,16 +147,16 @@ namespace YSAI.Core.socket.tcp.client
                     int length = Client_SK.Receive(DataByte); // 接收数据,并返回数据的长度;
                     if (length > 0)
                     {
-                        OnEventHandler?.Invoke(this, new SocketTcpClientData.Event() { State = true, Message = "接收服务端[" + Client_SK?.RemoteEndPoint?.ToString() + "]数据成功", ByteData = ByteTool.ByteTrimEnd(DataByte), Step = SocketTcpClientData.Steps.消息接收 });  //数据传递出去
+                        OnEventHandler?.Invoke(this, new EventResult(true, $"[ {SocketTcpClientData.Steps.消息接收} ]接收服务端( {Client_SK?.RemoteEndPoint?.ToString()} )数据成功", ByteTool.ByteTrimEnd(DataByte), @enum.ResultType.Bytes));  //数据传递出去
                     }
                     else
                     {
-                        OnEventHandler?.Invoke(this, new SocketTcpClientData.Event() { State = false, Message = "接收服务端[" + Client_SK?.RemoteEndPoint?.ToString() + "]发送过来的数据长度错误(小于等于零)", Step = SocketTcpClientData.Steps.消息接收 });  //数据传递出去
+                        OnEventHandler?.Invoke(this, new EventResult(false, $"[ {SocketTcpClientData.Steps.消息接收} ]接收服务端( {Client_SK?.RemoteEndPoint?.ToString()} )发送过来的数据长度错误(小于等于零)"));  //数据传递出去
                     }
                 }
                 catch (Exception ex)
                 {
-                    OnEventHandler?.Invoke(this, new SocketTcpClientData.Event() { State = false, Message = "服务端消息接收异常:" + ex.Message, Step = SocketTcpClientData.Steps.消息接收 });  //数据传递出去
+                    OnEventHandler?.Invoke(this, new EventResult(false, $"[ {SocketTcpClientData.Steps.消息接收} ]服务端消息接收异常:{ex.Message}"));  //数据传递出去
                 }
                 Thread.Sleep(10);
             }

+ 0 - 31
src/YSAI.DAQ/YSAI.Core/socket/tcp/service/SocketTcpServiceData.cs

@@ -67,37 +67,6 @@ namespace YSAI.Core.socket.tcp.service
             }
         }
 
-        /// <summary>
-        /// 事件响应数据
-        /// </summary>
-        public class Event
-        {
-            /// <summary>
-            /// 详细消息
-            /// </summary>
-            public string? Message { get; set; }
-            /// <summary>
-            /// 状态
-            /// </summary>
-            public bool State { get; set; }
-
-            /// <summary>
-            /// 客户端地址
-            /// </summary>
-            public string? ClientAddress { get; set; }
-            /// <summary>
-            /// 字节数据
-            /// </summary>
-            public byte[] ByteData { get; set; }
-            /// <summary>
-            /// 在那一个无返回的函数中出现的
-            /// </summary>
-            public Steps Step { get; set; }
-            /// <summary>
-            /// 时间
-            /// </summary>
-            public DateTime Time { get; set; } = DateTime.Now.ToLocalTime();
-        }
         /// <summary>
         /// 步骤枚举
         /// </summary>

+ 6 - 6
src/YSAI.DAQ/YSAI.Core/socket/tcp/service/SocketTcpServiceOperate.cs

@@ -23,7 +23,7 @@ namespace YSAI.Core.socket.tcp.service
     /// <summary>
     /// 服务端
     /// </summary>
-    public class SocketTcpServiceOperate : IBaseAbstract<SocketTcpServiceData.Event>, ISocketTcpService
+    public class SocketTcpServiceOperate : IBaseAbstract, ISocketTcpService
     {
 
         private static readonly object Lock = new object();  //锁
@@ -124,12 +124,12 @@ namespace YSAI.Core.socket.tcp.service
                         //把此线程添加到字典中
                         ClientThread.AddOrUpdate(Address, ClientTh, (k, v) => ClientTh);
                     }
-                    OnEventHandler?.Invoke(this, new SocketTcpServiceData.Event() { State = true, Message = $"[{Address}]连接成功", ClientAddress = Address, Step = SocketTcpServiceData.Steps.客户端连接 });
+                    OnEventHandler?.Invoke(this, new EventResult(true, $"[ {SocketTcpServiceData.Steps.客户端连接} ]({Address})连接成功", Address, @enum.ResultType.String));
                 }
                 catch (Exception ex)
                 {
                     Remove(Address);  //异常移除
-                    OnEventHandler?.Invoke(this, new SocketTcpServiceData.Event() { State = false, Message = "客户端连接异常:" + ex.Message, Step = SocketTcpServiceData.Steps.客户端连接 });
+                    OnEventHandler?.Invoke(this, new EventResult(false, $"[ {SocketTcpServiceData.Steps.客户端连接} ]异常:{ex.Message}"));
                 }
                 Thread.Sleep(10);
             }
@@ -165,18 +165,18 @@ namespace YSAI.Core.socket.tcp.service
                     int length = ClientCon.Receive(DataByte); // 接收数据,并返回数据的长度;
                     if (length > 0)
                     {
-                        OnEventHandler?.Invoke(this, new SocketTcpServiceData.Event() { State = true, ClientAddress = clientIp, Message = "接收[" + clientIp + "]数据成功", ByteData = ByteTool.BytesDispose(DataByte, 0, DataByte.Length - length), Step = SocketTcpServiceData.Steps.消息接收 });
+                        OnEventHandler?.Invoke(this, new EventResult(true,$"[ {SocketTcpServiceData.Steps.消息接收} ]接收({clientIp})数据成功", ByteTool.BytesDispose(DataByte, 0, DataByte.Length - length),@enum.ResultType.Bytes));
                     }
                     else
                     {
-                        OnEventHandler?.Invoke(this, new SocketTcpServiceData.Event() { State = false, ClientAddress = clientIp, Message = $"[{clientIp}]发来的数据长度错误(小于等于零),已强制关闭连接", Step = SocketTcpServiceData.Steps.消息接收 });
+                        OnEventHandler?.Invoke(this, new EventResult(false, $"[ {SocketTcpServiceData.Steps.消息接收} ]({clientIp})发来的数据长度错误(小于等于零),已强制关闭连接"));
                         Remove(ClientCon.RemoteEndPoint.ToString());  //移除它
                         return;
                     }
                 }
                 catch (Exception ex)
                 {
-                    OnEventHandler?.Invoke(this, new SocketTcpServiceData.Event() { State = false, ClientAddress = clientIp, Message = "接收客户端数据异常,已强制关闭连接,异常信息:" + ex.Message, Step = SocketTcpServiceData.Steps.消息接收 });
+                    OnEventHandler?.Invoke(this, new EventResult(false, $"[ {SocketTcpServiceData.Steps.消息接收} ]接收客户端数据异常,已强制关闭连接,异常信息:{ex.Message}"));
                     Remove(clientIp);  //移除
                     return;
                 }

+ 7 - 6
src/YSAI.DAQ/YSAI.Core/socket/tcpClient/Operate.cs

@@ -14,7 +14,7 @@ namespace YSAI.Core.socket.tcpClient
     /// <summary>
     /// tcpClient  操作
     /// </summary>
-    public class Operate : IBaseAbstract<SocketTcpClientData.Event>, IUC
+    public class Operate : IBaseAbstract, IUC
     {
         private static readonly object Lock = new object();  //锁
         private static List<Operate> ThisObjList = new List<Operate>(); //自身对象集合
@@ -105,18 +105,19 @@ namespace YSAI.Core.socket.tcpClient
                 {
                     if (!Client_SK.Connected)
                     {
-                        OnEventHandler?.Invoke(this, new SocketTcpClientData.Event() { State = true, Message = "与服务端断开连接,重连" + ReconnectionCount + "次", Step = SocketTcpClientData.Steps.断线重连 });  //数据传递出去
+                        OnEventHandler?.Invoke(this, new EventResult(false, $"[ {SocketTcpClientData.Steps.断线重连} ]与服务端断开连接,重连{ReconnectionCount}次"));  //数据传递出去
                         On();
                         ReconnectionCount++;
                     }
                     else
                     {
+                        OnEventHandler?.Invoke(this, new EventResult(true, $"[ {SocketTcpClientData.Steps.断线重连} ]与服务端断开连接,重连成功"));  //数据传递出去
                         ReconnectionCount = 1;
                     }
                 }
                 catch (Exception ex)
                 {
-                    OnEventHandler?.Invoke(this, new SocketTcpClientData.Event() { State = false, Message = "线程监控连接状态异常:" + ex.Message, Step = SocketTcpClientData.Steps.断线重连 });  //数据传递出去
+                    OnEventHandler?.Invoke(this, new EventResult(false, $"[ {SocketTcpClientData.Steps.断线重连} ]线程监控连接状态异常:{ex.Message}"));  //数据传递出去
                 }
                 Thread.Sleep(2000);  //多少秒执行一次
             }
@@ -152,17 +153,17 @@ namespace YSAI.Core.socket.tcpClient
                         Int32 bytes = networkStream.Read(readBuffer, 0, alen);  //读取数据
                         if (bytes > 0)
                         {
-                            OnEventHandler?.Invoke(this, new SocketTcpClientData.Event() { State = true, Message = "接收服务端数据成功", ByteData = ByteTool.ByteTrimEnd(readBuffer), Step = SocketTcpClientData.Steps.消息接收 });  //数据传递出去
+                            OnEventHandler?.Invoke(this, new EventResult(true,$"[ {SocketTcpClientData.Steps.消息接收} ]接收服务端数据成功", ByteTool.ByteTrimEnd(readBuffer),@enum.ResultType.Bytes));  //数据传递出去
                         }
                         else
                         {
-                            OnEventHandler?.Invoke(this, new SocketTcpClientData.Event() { State = false, Message = "接收服务端发送过来的数据长度错误(小于等于零)", Step = SocketTcpClientData.Steps.消息接收 });  //数据传递出去
+                            OnEventHandler?.Invoke(this, new EventResult(false,$"[ {SocketTcpClientData.Steps.消息接收} ]接收服务端发送过来的数据长度错误(小于等于零)"));  //数据传递出去
                         }
                     }
                 }
                 catch (Exception ex)
                 {
-                    OnEventHandler?.Invoke(this, new SocketTcpClientData.Event() { State = false, Message = "服务端消息接收异常:" + ex.Message, Step = SocketTcpClientData.Steps.消息接收 });  //数据传递出去
+                    OnEventHandler?.Invoke(this, new EventResult(false, $"[ {SocketTcpClientData.Steps.消息接收} ]服务端消息接收异常:{ex.Message}"));  //数据传递出去
                 }
                 Thread.Sleep(10);
             }

+ 6 - 6
src/YSAI.DAQ/YSAI.Core/socket/tcpListener/Operate.cs

@@ -20,7 +20,7 @@ namespace YSAI.Core.socket.tcpListener
     /// <summary>
     /// tcpServer 操作
     /// </summary>
-    public class Operate : IBaseAbstract<SocketTcpServiceData.Event>, ISocketTcpService
+    public class Operate : IBaseAbstract, ISocketTcpService
     {
 
         private static readonly object Lock = new object();  //锁
@@ -115,12 +115,12 @@ namespace YSAI.Core.socket.tcpListener
                         //把此线程添加到字典中
                         ClientThread.AddOrUpdate(Address, ClientTh, (k, v) => ClientTh);
                     }
-                    OnEventHandler?.Invoke(this, new SocketTcpServiceData.Event() { State = true, Message = $"[{Address}]连接成功", ClientAddress = Address, Step = SocketTcpServiceData.Steps.客户端连接 });
+                    OnEventHandler?.Invoke(this, new EventResult(true, $"[ {SocketTcpServiceData.Steps.客户端连接} ]({Address})连接成功", Address, @enum.ResultType.String));
                 }
                 catch (Exception ex)
                 {
                     Remove(Address);  //异常移除
-                    OnEventHandler?.Invoke(this, new SocketTcpServiceData.Event() { State = false, Message = "客户端连接异常:" + ex.Message, Step = SocketTcpServiceData.Steps.客户端连接 });
+                    OnEventHandler?.Invoke(this, new EventResult(false, $"[ {SocketTcpServiceData.Steps.客户端连接} ]异常:{ex.Message}"));
                 }
                 Thread.Sleep(10);
             }
@@ -164,18 +164,18 @@ namespace YSAI.Core.socket.tcpListener
                     int length = ClientCon.Receive(DataByte); // 接收数据,并返回数据的长度;
                     if (length > 0)
                     {
-                        OnEventHandler?.Invoke(this, new SocketTcpServiceData.Event() { State = true, ClientAddress = clientIp, Message = "接收[" + clientIp + "]数据成功", ByteData = ByteTool.BytesDispose(DataByte, 0, DataByte.Length - length), Step = SocketTcpServiceData.Steps.消息接收 });
+                        OnEventHandler?.Invoke(this, new EventResult(true, $"[ {SocketTcpServiceData.Steps.消息接收} ]接收({clientIp})数据成功", ByteTool.BytesDispose(DataByte, 0, DataByte.Length - length), @enum.ResultType.Bytes));
                     }
                     else
                     {
-                        OnEventHandler?.Invoke(this, new SocketTcpServiceData.Event() { State = false, ClientAddress = clientIp, Message = $"[{clientIp}]发来的数据长度错误(小于等于零),已强制关闭连接", Step = SocketTcpServiceData.Steps.消息接收 });
+                        OnEventHandler?.Invoke(this, new EventResult(false, $"[ {SocketTcpServiceData.Steps.消息接收} ]({clientIp})发来的数据长度错误(小于等于零),已强制关闭连接"));
                         Remove(ClientCon.RemoteEndPoint.ToString());  //移除它
                         return;
                     }
                 }
                 catch (Exception ex)
                 {
-                    OnEventHandler?.Invoke(this, new SocketTcpServiceData.Event() { State = false, ClientAddress = clientIp, Message = "接收客户端数据异常,已强制关闭连接,异常信息:" + ex.Message, Step = SocketTcpServiceData.Steps.消息接收 });
+                    OnEventHandler?.Invoke(this, new EventResult(false, $"[ {SocketTcpServiceData.Steps.消息接收} ]接收客户端数据异常,已强制关闭连接,异常信息:{ex.Message}"));
                     Remove(clientIp);  //移除
                     return;
                 }

+ 0 - 27
src/YSAI.DAQ/YSAI.Core/socket/udp/SocketUdpData.cs

@@ -71,32 +71,5 @@ namespace YSAI.Core.socket.udp
                 }
             }
         }
-
-        /// <summary>
-        /// 事件响应数据
-        /// </summary>
-        public class Event
-        {
-            /// <summary>
-            /// 详细消息
-            /// </summary>
-            public string? Message { get; set; }
-            /// <summary>
-            /// 状态
-            /// </summary>
-            public bool State { get; set; }
-            /// <summary>
-            /// 对方IP
-            /// </summary>
-            public string? PrreIP { get; set; }
-            /// <summary>
-            /// 字节数据
-            /// </summary>
-            public byte[]? ByteData { get; set; }
-            /// <summary>
-            /// 时间
-            /// </summary>
-            public DateTime Time { get; set; } = DateTime.Now.ToLocalTime();
-        }
     }
 }

+ 5 - 15
src/YSAI.DAQ/YSAI.Core/socket/udp/SocketUdpOperate.cs

@@ -18,7 +18,7 @@ namespace YSAI.Core.socket.udp
     /// <summary>
     /// socket UDP 客户端
     /// </summary>
-    public class SocketUdpOperate: IBaseAbstract<SocketUdpData.Event>, ISocketUdp
+    public class SocketUdpOperate: IBaseAbstract, ISocketUdp
     {
 
         private static readonly object Lock = new object();  //锁
@@ -62,16 +62,6 @@ namespace YSAI.Core.socket.udp
         /// </summary>
         public SocketUdpData.Basics basics;
 
-        /// <summary>
-        /// 全局信息事件中状态抛出
-        /// </summary>
-        public event EventHandler<SocketUdpData.Event> OnEvent
-        {
-            add { OnEventHandler += value; }
-            remove { OnEventHandler -= value; }
-        }
-        private EventHandler<SocketUdpData.Event>? OnEventHandler;
-
         /// <summary>
         /// UDP客户端
         /// </summary>
@@ -107,24 +97,24 @@ namespace YSAI.Core.socket.udp
                     }
                     catch (Exception ex)
                     {
-                        OnEventHandler?.Invoke(this, new SocketUdpData.Event() { State = false, Message = $"等待数据时异常:{ex.Message}" });
+                        OnEventHandler?.Invoke(this, new EventResult(false, $"等待数据时异常:{ex.Message}"));
                         State = true;
                     }
                     if (length > 0)
                     {
-                        OnEventHandler?.Invoke(this, new SocketUdpData.Event() { State = true, PrreIP = endpoint.ToString(), Message = "接收[" + endpoint.ToString() + "]数据成功", ByteData = ByteTool.BytesDispose(ByteData, 0, ByteData.Length - length) });
+                        OnEventHandler?.Invoke(this, new EventResult(true, $"接收({endpoint.ToString()})数据成功", endpoint.ToString(),@enum.ResultType.String));
                     }
                     else
                     {
                         if (!State)
                         {
-                            OnEventHandler?.Invoke(this, new SocketUdpData.Event() { State = false, Message = $"接收到错误的消息,消息长度为:{length}" });
+                            OnEventHandler?.Invoke(this, new EventResult(false, $"接收到错误的消息,消息长度为:{length}"));
                         }
                     }
                 }
                 catch (Exception ex)
                 {
-                    OnEventHandler?.Invoke(this, new SocketUdpData.Event() { State = false, Message = $"接收消息异常:{ex.Message}" });
+                    OnEventHandler?.Invoke(this, new EventResult(false,$"接收消息异常:{ex.Message}"));
                 }
                 Thread.Sleep(10);
             }

+ 5 - 16
src/YSAI.DAQ/YSAI.Core/socket/udpClient/Operate.cs

@@ -19,7 +19,7 @@ namespace YSAI.Core.socket.udpClient
     /// <summary>
     /// udpClient 操作
     /// </summary>
-    public class Operate : IBaseAbstract<SocketUdpData.Event>, ISocketUdp
+    public class Operate : IBaseAbstract, ISocketUdp
     {
 
         private static readonly object Lock = new object();  //锁
@@ -63,17 +63,6 @@ namespace YSAI.Core.socket.udpClient
         /// </summary>
         public SocketUdpData.Basics basics;
 
-        /// <summary>
-        /// 全局信息事件中状态抛出
-        /// </summary>
-        public event EventHandler<SocketUdpData.Event> OnEvent
-        {
-            add { OnEventHandler += value; }
-            remove { OnEventHandler -= value; }
-        }
-        private EventHandler<SocketUdpData.Event>? OnEventHandler;
-
-
         /// <summary>
         /// UDP客户端
         /// </summary>
@@ -111,24 +100,24 @@ namespace YSAI.Core.socket.udpClient
                     }
                     catch (Exception ex)
                     {
-                        OnEventHandler?.Invoke(this, new SocketUdpData.Event() { State = false, Message = $"等待数据时异常:{ex.Message}" });
+                        OnEventHandler?.Invoke(this, new EventResult(false, $"等待数据时异常:{ex.Message}"));
                         State = true;
                     }
                     if (ByteData?.Length > 0)
                     {
-                        OnEventHandler?.Invoke(this, new SocketUdpData.Event() { State = true, PrreIP = endpoint.ToString(), Message = "接收[" + endpoint.ToString() + "]数据成功", ByteData = ByteData });
+                        OnEventHandler?.Invoke(this, new EventResult(true, $"接收({endpoint.ToString()})数据成功", endpoint.ToString(), @enum.ResultType.String));
                     }
                     else
                     {
                         if (!State)
                         {
-                            OnEventHandler?.Invoke(this, new SocketUdpData.Event() { State = false, Message = $"接收到错误的消息,消息长度为:{ByteData.Length}" });
+                            OnEventHandler?.Invoke(this, new EventResult(false, $"接收到错误的消息,消息长度为:{ByteData?.Length}"));
                         }
                     }
                 }
                 catch (Exception ex)
                 {
-                    OnEventHandler?.Invoke(this, new SocketUdpData.Event() { State = false, Message = $"接收消息异常:{ex.Message}" });
+                    OnEventHandler?.Invoke(this, new EventResult(false, $"接收消息异常:{ex.Message}"));
                 }
                 Thread.Sleep(10);
             }

+ 0 - 30
src/YSAI.DAQ/YSAI.Core/subscribe/SubscribeData.cs

@@ -118,35 +118,5 @@ namespace YSAI.Core.subscription
                 }
             }
         }
-
-        /// <summary>
-        /// 事件响应数据
-        /// </summary>
-        public class Event
-        {
-            /// <summary>
-            /// 详细消息
-            /// </summary>
-            public string? Message { get; set; }
-            /// <summary>
-            /// 状态
-            /// </summary>
-            public bool State { get; set; }
-            /// <summary>
-            /// 时间
-            /// </summary>
-            public DateTime Time { get; set; } = DateTime.Now.ToLocalTime();
-        }
-        /// <summary>
-        /// 事件响应数据带参
-        /// </summary>
-        public class EventParam : Event
-        {
-            /// <summary>
-            /// 键值集合
-            /// </summary>
-            public ConcurrentDictionary<string, AddressValue>? Params { get; set; }
-        }
-
     }
 }

+ 7 - 7
src/YSAI.DAQ/YSAI.Core/subscribe/SubscribeOperate.cs

@@ -18,7 +18,7 @@ namespace YSAI.Core.subscription
     /// 1.ConcurrentDictionary<string, AddressValue>   
     /// 2.List<ConcurrentDictionary<string, AddressValue>>  
     /// </summary>
-    public class SubscribeOperate : IBaseAbstract<SubscribeData.EventParam>, ISubscribe
+    public class SubscribeOperate : IBaseAbstract, ISubscribe
     {
         private static readonly object Lock = new object();  //锁
         private static List<SubscribeOperate> ThisObjList = new List<SubscribeOperate>(); //自身对象集合
@@ -182,14 +182,14 @@ namespace YSAI.Core.subscription
                                                 if (basics.SameDataOut)
                                                 {
                                                     //抛出差异数据
-                                                    OnEventHandler?.Invoke(this, new SubscribeData.EventParam() { Message = "存在变化数据", Params = RData, State = true });
+                                                    OnEventHandler?.Invoke(this, new EventResult(true, "存在变化数据", RData, value.RType));
                                                 }
                                                 else
                                                 {
                                                     //如果不一致,就找寻里面不一样的 键、值
                                                     ConcurrentDictionary<string, AddressValue> data = new ConcurrentDictionary<string, AddressValue>(RData.Except(UpParam).ToDictionary(x => x.Key, x => x.Value));
                                                     //抛出差异数据
-                                                    OnEventHandler?.Invoke(this, new SubscribeData.EventParam() { Message = "变化数据", Params = data, State = true });
+                                                    OnEventHandler?.Invoke(this, new EventResult(true, "变化数据", value.RType));
                                                 }
                                                 //把这次新数据 赋值到历史数据中
                                                 UpParam = RData;
@@ -198,7 +198,7 @@ namespace YSAI.Core.subscription
                                     }
                                     else
                                     {
-                                        OnEventHandler?.Invoke(this, new SubscribeData.EventParam() { Message = "实时数据", Params = RData, State = true });
+                                        OnEventHandler?.Invoke(this, new EventResult(true, "实时数据", value.RType));
                                     }
                                     break;
                                 case @enum.ResultType.KeyValueArray:
@@ -217,7 +217,7 @@ namespace YSAI.Core.subscription
                                             foreach (var item in RDataArray)
                                             {
                                                 //抛出差异数据
-                                                OnEventHandler?.Invoke(this, new SubscribeData.EventParam() { Message = "存在变化数据", Params = item, State = true });
+                                                OnEventHandler?.Invoke(this, new EventResult(true, "存在变化数据", value.RType));
                                             }
                                             //把这次新数据 赋值到历史数据中
                                             UpParamArray = RDataArray;
@@ -229,13 +229,13 @@ namespace YSAI.Core.subscription
                         else
                         {
                             //当状态为false 说明读取失败,写入日志
-                            OnEventHandler?.Invoke(this, new SubscribeData.EventParam() { Message = $"自定义订阅轮询异常:{value.Message}", State = false });
+                            OnEventHandler?.Invoke(this, new EventResult(false, $"自定义订阅轮询异常:{value.Message}"));
                         }
                     }
                 }
                 catch (Exception ex)
                 {
-                    OnEventHandler?.Invoke(this, new SubscribeData.EventParam() { Message = $"自定义订阅轮询异常:{ex.Message}", State = false });
+                    OnEventHandler?.Invoke(this, new EventResult(false, $"自定义订阅轮询异常:{ex.Message}"));
                 }
                 Thread.Sleep(basics.SleepTime);
             }

+ 2 - 2
src/YSAI.DAQ/YSAI.DB/DBOperate.cs

@@ -24,7 +24,7 @@ namespace YSAI.DB
     /// <summary>
     /// 数据库操作
     /// </summary>
-    public sealed class DBOperate : IBaseAbstract<SubscribeData.EventParam>,IDB, IDaq
+    public sealed class DBOperate : IBaseAbstract,IDB, IDaq
     {
         private static readonly object Lock = new object();  //锁
         private static List<DBOperate> ThisObjList = new List<DBOperate>(); //自身对象集合
@@ -763,7 +763,7 @@ namespace YSAI.DB
         /// </summary>
         /// <param name="sender">自定义订阅对象</param>
         /// <param name="e">返回的参数</param>
-        private void SubscribeOperate_OnEvent(object? sender, SubscribeData.EventParam e)
+        private void SubscribeOperate_OnEvent(object? sender, EventResult e)
         {
             OnEventHandler?.Invoke(this, e);
         }

+ 5 - 4
src/YSAI.DAQ/YSAI.DaqManage/DaqManageOperate.cs

@@ -21,7 +21,7 @@ namespace YSAI.DaqManage
     /// 库:*.dll,
     /// 库配置:*.Config*.json
     /// </summary>
-    public class DaqManageOperate : IBaseAbstract<OperateResult>, IDaq
+    public class DaqManageOperate : IBaseAbstract, IDaq
     {
         protected override string LogHead => "[ DaqManageOperate 操作 ]";
         protected override string ClassName => "DaqManageOperate";
@@ -172,11 +172,12 @@ namespace YSAI.DaqManage
                                 foreach (FileInfo fi in fieldInfos)
                                 {
                                     //获取结构参数
-                                    JObject jsonObject = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(File.ReadAllText(fi.FullName));
+                                    JObject? jsonObject = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(File.ReadAllText(fi.FullName));
                                     //获取唯一标识符
                                     string SN = jsonObject[basics.SNKey].ToString();
                                     //获取实例
-                                    object? instance = CreateInstance(type, new object[] { jsonObject });
+                                    IDaq? instance = CreateInstance(type, new object[] { jsonObject }) as IDaq;
+                                    //获取这个实例实例
 
 
                                     Console.WriteLine();
@@ -203,7 +204,7 @@ namespace YSAI.DaqManage
                     }
                     catch (Exception ex)
                     {
-                        OnEventHandler?.Invoke(this, Break(Depart("Monitor"), false, $"监控异常:{ex.Message}"));
+                        OnEventHandler?.Invoke(this,new EventResult(false, $"监控异常:{ex.Message}") );
                     }
                     Thread.Sleep(basics.MonitorInterval);
                 }

+ 22 - 22
src/YSAI.DAQ/YSAI.Manage.Core/base/ManageBaseOperate.cs

@@ -187,8 +187,8 @@ namespace YSAI.Manage.Core.@base
                                             Function = dBOperate.Read
                                         });
                                         //事件注册(永远保持一个事件注册)
-                                        subscribeOperate.OnEvent -= delegate (object? sender, SubscribeData.EventParam e) { SubscribeOperate_OnEvent(sender, e, manage.DType, dBData.SN); };
-                                        subscribeOperate.OnEvent += delegate (object? sender, SubscribeData.EventParam e) { SubscribeOperate_OnEvent(sender, e, manage.DType, dBData.SN); };
+                                        //subscribeOperate.OnEvent -= delegate (object? sender, SubscribeData.EventParam e) { SubscribeOperate_OnEvent(sender, e, manage.DType, dBData.SN); };
+                                        //subscribeOperate.OnEvent += delegate (object? sender, SubscribeData.EventParam e) { SubscribeOperate_OnEvent(sender, e, manage.DType, dBData.SN); };
 
                                         //把订阅添加到集合
                                         SubscribeObjArray.AddOrUpdate(dBData.SN, subscribeOperate, (k, v) => subscribeOperate);
@@ -233,8 +233,8 @@ namespace YSAI.Manage.Core.@base
                                             });
 
                                             //事件注册(永远保持一个事件注册)
-                                            subscribeOperate.OnEvent -= delegate (object? sender, SubscribeData.EventParam e) { SubscribeOperate_OnEvent(sender, e, manage.DType, modbusClientData.SN); };
-                                            subscribeOperate.OnEvent += delegate (object? sender, SubscribeData.EventParam e) { SubscribeOperate_OnEvent(sender, e, manage.DType, modbusClientData.SN); };
+                                            //subscribeOperate.OnEvent -= delegate (object? sender, SubscribeData.EventParam e) { SubscribeOperate_OnEvent(sender, e, manage.DType, modbusClientData.SN); };
+                                            //subscribeOperate.OnEvent += delegate (object? sender, SubscribeData.EventParam e) { SubscribeOperate_OnEvent(sender, e, manage.DType, modbusClientData.SN); };
 
                                             //把订阅添加到集合
                                             SubscribeObjArray.AddOrUpdate(modbusClientData.SN, subscribeOperate, (k, v) => subscribeOperate);
@@ -272,12 +272,12 @@ namespace YSAI.Manage.Core.@base
                                         operateResult = opcUaClientOperate.On();
                                         if (operateResult.State)
                                         {
-                                            //事件注册(永远保持一个事件注册)
-                                            opcUaClientOperate.OnEvent -= delegate (object? sender, OpcUaClientData.Event e) { OpcUaClientOperate_OnEvent(sender, e, opcUaClientData.SN); };
-                                            opcUaClientOperate.OnEventParam -= delegate (object? sender, OpcUaClientData.EventParam e) { OpcUaClientOperate_OnEventParam(sender, e, opcUaClientData.SN); };
+                                            ////事件注册(永远保持一个事件注册)
+                                            //opcUaClientOperate.OnEvent -= delegate (object? sender, OpcUaClientData.Event e) { OpcUaClientOperate_OnEvent(sender, e, opcUaClientData.SN); };
+                                            //opcUaClientOperate.OnEventParam -= delegate (object? sender, OpcUaClientData.EventParam e) { OpcUaClientOperate_OnEventParam(sender, e, opcUaClientData.SN); };
 
-                                            opcUaClientOperate.OnEvent += delegate (object? sender, OpcUaClientData.Event e) { OpcUaClientOperate_OnEvent(sender, e, opcUaClientData.SN); };
-                                            opcUaClientOperate.OnEventParam += delegate (object? sender, OpcUaClientData.EventParam e) { OpcUaClientOperate_OnEventParam(sender, e, opcUaClientData.SN); };
+                                            //opcUaClientOperate.OnEvent += delegate (object? sender, OpcUaClientData.Event e) { OpcUaClientOperate_OnEvent(sender, e, opcUaClientData.SN); };
+                                            //opcUaClientOperate.OnEventParam += delegate (object? sender, OpcUaClientData.EventParam e) { OpcUaClientOperate_OnEventParam(sender, e, opcUaClientData.SN); };
 
                                             //把这个实例添加到集合中
                                             OpcUaDaqObjArray.AddOrUpdate(opcUaClientData.SN, opcUaClientOperate, (k, v) => opcUaClientOperate);
@@ -314,9 +314,9 @@ namespace YSAI.Manage.Core.@base
                                         if (operateResult.State)
                                         {
 
-                                            //事件注册(永远保持一个事件注册)
-                                            opcDaClientOperate.OnEvent -= delegate (object? sender, OpcDaClientData.EventParam e) { OpcDaClientOperate_OnEvent(sender, e, opcDaClientData.SN); };
-                                            opcDaClientOperate.OnEvent += delegate (object? sender, OpcDaClientData.EventParam e) { OpcDaClientOperate_OnEvent(sender, e, opcDaClientData.SN); };
+                                            ////事件注册(永远保持一个事件注册)
+                                            //opcDaClientOperate.OnEvent -= delegate (object? sender, OpcDaClientData.EventParam e) { OpcDaClientOperate_OnEvent(sender, e, opcDaClientData.SN); };
+                                            //opcDaClientOperate.OnEvent += delegate (object? sender, OpcDaClientData.EventParam e) { OpcDaClientOperate_OnEvent(sender, e, opcDaClientData.SN); };
 
                                             operateResult = opcDaClientOperate.AddGroup(opcDaClientData.SN);
                                             if (operateResult.State)
@@ -373,9 +373,9 @@ namespace YSAI.Manage.Core.@base
                                             SleepTime = SleepTime,
                                             Function = opcDaHttpOperate.Read
                                         });
-                                        //事件注册(永远保持一个事件注册)
-                                        subscribeOperate.OnEvent -= delegate (object? sender, SubscribeData.EventParam e) { SubscribeOperate_OnEvent(sender, e, manage.DType, opcDaHttpData.SN); };
-                                        subscribeOperate.OnEvent += delegate (object? sender, SubscribeData.EventParam e) { SubscribeOperate_OnEvent(sender, e, manage.DType, opcDaHttpData.SN); };
+                                        ////事件注册(永远保持一个事件注册)
+                                        //subscribeOperate.OnEvent -= delegate (object? sender, SubscribeData.EventParam e) { SubscribeOperate_OnEvent(sender, e, manage.DType, opcDaHttpData.SN); };
+                                        //subscribeOperate.OnEvent += delegate (object? sender, SubscribeData.EventParam e) { SubscribeOperate_OnEvent(sender, e, manage.DType, opcDaHttpData.SN); };
 
                                         //把订阅添加到集合
                                         SubscribeObjArray.AddOrUpdate(opcDaHttpData.SN, subscribeOperate, (k, v) => subscribeOperate);
@@ -418,9 +418,9 @@ namespace YSAI.Manage.Core.@base
                                                 SleepTime = SleepTime,
                                                 Function = s7ClientOperate.Read
                                             });
-                                            //事件注册(永远保持一个事件注册)
-                                            subscribeOperate.OnEvent -= delegate (object? sender, SubscribeData.EventParam e) { SubscribeOperate_OnEvent(sender, e, manage.DType, s7ClientData.SN); };
-                                            subscribeOperate.OnEvent += delegate (object? sender, SubscribeData.EventParam e) { SubscribeOperate_OnEvent(sender, e, manage.DType, s7ClientData.SN); };
+                                            ////事件注册(永远保持一个事件注册)
+                                            //subscribeOperate.OnEvent -= delegate (object? sender, SubscribeData.EventParam e) { SubscribeOperate_OnEvent(sender, e, manage.DType, s7ClientData.SN); };
+                                            //subscribeOperate.OnEvent += delegate (object? sender, SubscribeData.EventParam e) { SubscribeOperate_OnEvent(sender, e, manage.DType, s7ClientData.SN); };
 
                                             //把订阅添加到集合
                                             SubscribeObjArray.AddOrUpdate(s7ClientData.SN, subscribeOperate, (k, v) => subscribeOperate);
@@ -503,7 +503,7 @@ namespace YSAI.Manage.Core.@base
         /// <param name="e">参数</param>
         /// <param name="SN">哪个SN的实例对象抛出来的数据</param>
         /// <exception cref="NotImplementedException"></exception>
-        private void OpcUaClientOperate_OnEvent(object? sender, OpcUaClientData.Event e, string SN)
+        private void OpcUaClientOperate_OnEvent(object? sender, EventResult e, string SN)
         {
             Debug.WriteLine( e.Message );
         }
@@ -514,7 +514,7 @@ namespace YSAI.Manage.Core.@base
         /// <param name="e">参数</param>
         /// <param name="SN">哪个SN的实例对象抛出来的数据</param>
         /// <exception cref="NotImplementedException"></exception>
-        private void OpcUaClientOperate_OnEventParam(object? sender, OpcUaClientData.EventParam e, string SN)
+        private void OpcUaClientOperate_OnEventParam(object? sender, EventResult e, string SN)
         {
             Debug.WriteLine(e.Message);
         }
@@ -525,7 +525,7 @@ namespace YSAI.Manage.Core.@base
         /// <param name="e"></param>
         /// <param name="SN">哪个SN的实例对象抛出来的数据</param>
         /// <exception cref="NotImplementedException"></exception>
-        private void OpcDaClientOperate_OnEvent(object? sender, OpcDaClientData.EventParam e, string SN)
+        private void OpcDaClientOperate_OnEvent(object? sender, EventResult e, string SN)
         {
             Debug.WriteLine(e.Message);
         }
@@ -537,7 +537,7 @@ namespace YSAI.Manage.Core.@base
         /// <param name="DType">数采类型</param>
         /// <param name="SN">哪个SN的实例对象抛出来的数据</param>
         /// <exception cref="NotImplementedException"></exception>
-        private void SubscribeOperate_OnEvent(object? sender, SubscribeData.EventParam e,DaqType? DType, string SN)
+        private void SubscribeOperate_OnEvent(object? sender, EventResult e,DaqType? DType, string SN)
         {
             Debug.WriteLine(e.Message);
         }

+ 2 - 2
src/YSAI.DAQ/YSAI.Modbus/client/ModbusClientOperate.cs

@@ -29,7 +29,7 @@ namespace YSAI.Modbus.client
     /// <summary>
     /// modbus 操作
     /// </summary>
-    public sealed class ModbusClientOperate : IBaseAbstract<SubscribeData.EventParam>, IModbusClient, IDaq
+    public sealed class ModbusClientOperate : IBaseAbstract, IModbusClient, IDaq
     {
         private static readonly object Lock = new object();  //锁
         private static List<ModbusClientOperate> ThisObjList = new List<ModbusClientOperate>(); //自身对象集合
@@ -939,7 +939,7 @@ namespace YSAI.Modbus.client
         /// </summary>
         /// <param name="sender">自定义订阅对象</param>
         /// <param name="e">返回的参数</param>
-        private void SubscribeOperate_OnEvent(object? sender, SubscribeData.EventParam e)
+        private void SubscribeOperate_OnEvent(object? sender, EventResult e)
         {
             OnEventHandler?.Invoke(this, e);
         }

+ 0 - 26
src/YSAI.DAQ/YSAI.Mqtt/client/MqttClientData.cs

@@ -100,32 +100,6 @@ namespace YSAI.Mqtt.client
             }
         }
 
-        /// <summary>
-        /// 事件响应数据
-        /// </summary>
-        public class Event
-        {
-            /// <summary>
-            /// 消息
-            /// </summary>
-            public string? Message { get; set; }
-            /// <summary>
-            /// 客户端ID
-            /// </summary>
-            public string ClientID { get; set; }
-            /// <summary>
-            /// 主题
-            /// </summary>
-            public string Topic { get; set; }
-            /// <summary>
-            /// 内容
-            /// </summary>
-            public string Content { get; set; }
-            /// <summary>
-            /// 时间
-            /// </summary>
-            public DateTime Time { get; set; } = DateTime.Now.ToLocalTime();
-        }
         /// <summary>
         /// 状态
         /// </summary>

+ 7 - 2
src/YSAI.DAQ/YSAI.Mqtt/client/MqttClientOperate.cs

@@ -11,13 +11,14 @@ using static YSAI.Mqtt.client.MqttClientData;
 using System.Collections.Concurrent;
 using YSAI.Core.@interface.unify;
 using YSAI.Core.@interface.only;
+using System.Dynamic;
 
 namespace YSAI.Mqtt.client
 {
     /// <summary>
     /// Mqtt 客户端
     /// </summary>
-    public sealed class MqttClientOperate : IBaseAbstract<Event>, Core.@interface.only.IMqttClient
+    public sealed class MqttClientOperate : IBaseAbstract, Core.@interface.only.IMqttClient
     {
         private static readonly object Lock = new object();  //锁
         private static List<MqttClientOperate> ThisObjList = new List<MqttClientOperate>(); //自身对象集合
@@ -89,7 +90,11 @@ namespace YSAI.Mqtt.client
         /// </summary>
         private async Task MqttClient_ApplicationMessageReceivedAsync(MqttApplicationMessageReceivedEventArgs arg)
         {
-            OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead} ( {arg.ClientId} ) 接收到主题 ( {arg.ApplicationMessage.Topic} ) 内容 ( {Encoding.UTF8.GetString(arg.ApplicationMessage.Payload)} )", ClientID = arg.ClientId, Topic = arg.ApplicationMessage.Topic, Content = Encoding.UTF8.GetString(arg.ApplicationMessage.Payload) });
+            dynamic DynamicObj = new ExpandoObject();
+            DynamicObj.ClientID = arg.ClientId;
+            DynamicObj.Topic = arg.ApplicationMessage.Topic;
+            DynamicObj.Content = Encoding.UTF8.GetString(arg.ApplicationMessage.Payload);
+            OnEventHandler?.Invoke(this, new EventResult(true, $"{LogHead} ( {arg.ClientId} ) 接收到主题 ( {arg.ApplicationMessage.Topic} ) 内容 ( {DynamicObj.Content} )", DynamicObj, Core.@enum.ResultType.Dynamic));
             await Task.CompletedTask;
         }
 

+ 1 - 40
src/YSAI.DAQ/YSAI.Mqtt/service/MqttServiceData.cs

@@ -74,46 +74,7 @@ namespace YSAI.Mqtt.service
                 }
             }
         }
-        /// <summary>
-        /// 事件响应数据
-        /// </summary>
-        public class Event
-        {
-            /// <summary>
-            /// 消息
-            /// </summary>
-            public string? Message { get; set; }
-            /// <summary>
-            /// 客户端ID
-            /// </summary>
-            public string? ClientId { get; set; }
-            /// <summary>
-            /// 客户端消息
-            /// </summary>
-            public _ClientMessage? ClientMessage { get; set; }
-            /// <summary>
-            /// 客户端消息
-            /// </summary>
-            public class _ClientMessage
-            {
-                /// <summary>
-                /// 发送的消息信息
-                /// </summary>
-                public MqttApplicationMessage? Messages { get; set; }
-                /// <summary>
-                /// 发送端的ID
-                /// </summary>
-                public string? SenderID { get; set; }
-            }
-            /// <summary>
-            /// 在那一个无返回的函数中出现的
-            /// </summary>
-            public Steps Step { get; set; }
-            /// <summary>
-            /// 时间
-            /// </summary>
-            public DateTime Time { get; set; } = DateTime.Now.ToLocalTime();
-        }
+        
         /// <summary>
         /// 哪一个步骤
         /// </summary>

+ 55 - 27
src/YSAI.DAQ/YSAI.Mqtt/service/MqttServiceOperate.cs

@@ -13,13 +13,14 @@ using YSAI.Core.data;
 using static YSAI.Mqtt.service.MqttServiceData;
 using YSAI.Core.@interface.only;
 using YSAI.Core.@interface.unify;
+using System.Dynamic;
 
 namespace YSAI.Mqtt.service
 {
     /// <summary>
     /// mqtt 服务端
     /// </summary>
-    public sealed class MqttServiceOperate : IBaseAbstract<Event>, IMqttService
+    public sealed class MqttServiceOperate : IBaseAbstract, IMqttService
     {
         private static readonly object Lock = new object();  //锁
         private static List<MqttServiceOperate> ThisObjList = new List<MqttServiceOperate>(); //自身对象集合
@@ -80,8 +81,10 @@ namespace YSAI.Mqtt.service
         /// </summary>
         private Task MqttServer_StoppedAsync(EventArgs arg)
         {
-            OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead}服务已停止", Step = Steps.服务停止事件 });
-            return Task.CompletedTask;
+            return Task.Run(() =>
+            {
+                OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.服务停止事件} ]服务已停止"));
+            });
         }
 
         /// <summary>
@@ -89,8 +92,10 @@ namespace YSAI.Mqtt.service
         /// </summary>
         private Task MqttServer_StartedAsync(EventArgs arg)
         {
-            OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead}服务已启动", Step = Steps.服务启动事件 });
-            return Task.CompletedTask;
+            return Task.Run(() =>
+            {
+                OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.服务启动事件} ]服务已启动"));
+            });
         }
 
         /// <summary>
@@ -98,8 +103,10 @@ namespace YSAI.Mqtt.service
         /// </summary>
         private Task MqttServer_ClientUnsubscribedTopicAsync(ClientUnsubscribedTopicEventArgs arg)
         {
-            OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead}( {arg.ClientId} ) 取消了 ( {arg.TopicFilter} ) 的订阅", ClientId = arg.ClientId, Step = Steps.客户端取消订阅事件 });
-            return Task.CompletedTask;
+            return Task.Run(() =>
+            {
+                OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.客户端取消订阅事件} ]( {arg.ClientId} ) 取消了 ( {arg.TopicFilter} ) 的订阅", arg.ClientId, Core.@enum.ResultType.String));
+            });
         }
 
         /// <summary>
@@ -107,8 +114,10 @@ namespace YSAI.Mqtt.service
         /// </summary>
         private Task MqttServer_ClientSubscribedTopicAsync(ClientSubscribedTopicEventArgs arg)
         {
-            OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead}( {arg.ClientId} ) 订阅了主题 ( {arg.TopicFilter.Topic} )", ClientId = arg.ClientId, Step = Steps.客户端订阅事件 });
-            return Task.CompletedTask;
+            return Task.Run(() =>
+            {
+                OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.客户端订阅事件} ]( {arg.ClientId} ) 订阅了主题 ( {arg.TopicFilter.Topic} )", arg.ClientId, Core.@enum.ResultType.String));
+            });
         }
 
         /// <summary>
@@ -116,9 +125,20 @@ namespace YSAI.Mqtt.service
         /// </summary>
         private Task MqttServer_ApplicationMessageNotConsumedAsync(ApplicationMessageNotConsumedEventArgs arg)
         {
-            Event._ClientMessage clientMessage = new Event._ClientMessage() { Messages = arg.ApplicationMessage, SenderID = arg.SenderId };
-            OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead}( {arg.SenderId} ) 发布了主题 ( {arg.ApplicationMessage.Topic} ) 内容 ( {Encoding.UTF8.GetString(arg.ApplicationMessage.Payload)} )", ClientMessage = clientMessage, Step = Steps.客户端消息事件 });
-            return Task.CompletedTask;
+            return Task.Run(() =>
+            {
+                switch (arg.ApplicationMessage.PayloadFormatIndicator)
+                {
+                    case MQTTnet.Protocol.MqttPayloadFormatIndicator.Unspecified:
+                        break;
+                    case MQTTnet.Protocol.MqttPayloadFormatIndicator.CharacterData:
+                        dynamic DynamicObj = new ExpandoObject();
+                        DynamicObj.Messages = arg.ApplicationMessage;
+                        DynamicObj.SenderID = arg.SenderId;
+                        OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.客户端消息事件} ]( {arg.SenderId} ) 发布了主题 ( {arg.ApplicationMessage.Topic} ) 内容 ( {Encoding.UTF8.GetString(arg.ApplicationMessage.Payload)} )", DynamicObj, Core.@enum.ResultType.Dynamic));
+                        break;
+                }
+            });
         }
 
         /// <summary>
@@ -126,8 +146,10 @@ namespace YSAI.Mqtt.service
         /// </summary>
         private Task MqttServer_ClientDisconnectedAsync(ClientDisconnectedEventArgs arg)
         {
-            OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead}( {arg.ClientId} ) 已断开", ClientId = arg.ClientId, Step = Steps.客户端断开事件 });
-            return Task.CompletedTask;
+            return Task.Run(() =>
+            {
+                OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.客户端断开事件} ]( {arg.ClientId} ) 已断开", arg.ClientId, Core.@enum.ResultType.String));
+            });
         }
 
         /// <summary>
@@ -135,8 +157,10 @@ namespace YSAI.Mqtt.service
         /// </summary>
         private Task MqttServer_ClientConnectedAsync(ClientConnectedEventArgs arg)
         {
-            OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead}( {arg.ClientId} ) 已连接", ClientId = arg.ClientId, Step = Steps.客户端连接事件 });
-            return Task.CompletedTask;
+            return Task.Run(() =>
+            {
+                OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.客户端连接事件} ]( {arg.ClientId} ) 已连接", arg.ClientId, Core.@enum.ResultType.String));
+            });
         }
 
         /// <summary>
@@ -147,16 +171,20 @@ namespace YSAI.Mqtt.service
         /// <exception cref="NotImplementedException"></exception>
         private Task MqttServer_ValidatingConnectionAsync(ValidatingConnectionEventArgs arg)
         {
-            //验证账号密码是否正确
-            if (!arg.UserName.Equals(mqttServiceData.LoginID) || !arg.Password.Equals(mqttServiceData.LoginPassword))
+            return Task.Run(() =>
             {
-                arg.ReasonCode = MQTTnet.Protocol.MqttConnectReasonCode.BadUserNameOrPassword;
-                OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead}( {arg.ClientId} ) 身份验证异常:{arg.ReasonCode}", ClientId = arg.ClientId, Step = Steps.客户端身份验证事件 });
-                return Task.CompletedTask;
-            }
-            arg.ReasonCode = MQTTnet.Protocol.MqttConnectReasonCode.Success;
-            OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead}( {arg.ClientId} ) 身份验证成功", ClientId = arg.ClientId, Step = Steps.客户端身份验证事件 });
-            return Task.CompletedTask;
+                //验证账号密码是否正确
+                if (!arg.UserName.Equals(mqttServiceData.LoginID) || !arg.Password.Equals(mqttServiceData.LoginPassword))
+                {
+                    arg.ReasonCode = MQTTnet.Protocol.MqttConnectReasonCode.BadUserNameOrPassword;
+                    OnEventHandler?.Invoke(this, new EventResult(false, $"[ {Steps.客户端身份验证事件} ]( {arg.ClientId} ) 身份验证异常:{arg.ReasonCode}", arg.ClientId, Core.@enum.ResultType.String));
+                }
+                else
+                {
+                    arg.ReasonCode = MQTTnet.Protocol.MqttConnectReasonCode.Success;
+                    OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.客户端身份验证事件} ]( {arg.ClientId} ) 身份验证成功", arg.ClientId, Core.@enum.ResultType.String));
+                }
+            });
         }
         #endregion
 
@@ -186,7 +214,7 @@ namespace YSAI.Mqtt.service
 
         public Task<OperateResult> OnAsync()
         {
-            return Task.Run(()=> On());
+            return Task.Run(() => On());
         }
 
         public OperateResult On()
@@ -235,7 +263,7 @@ namespace YSAI.Mqtt.service
 
         public Task<OperateResult> OffAsync()
         {
-            return Task.Run(()=> Off());
+            return Task.Run(() => Off());
         }
 
         public OperateResult Off()

+ 51 - 35
src/YSAI.DAQ/YSAI.Mqtt/service/websocket/MqttWebSocketServiceOperate.cs

@@ -11,6 +11,7 @@ using static YSAI.Mqtt.service.websocket.MqttWebSocketServiceData;
 using YSAI.Core.@interface.only;
 using YSAI.Core.@interface.unify;
 using YSAI.Unility;
+using System.Dynamic;
 
 namespace YSAI.Mqtt.service.websocket
 {
@@ -98,7 +99,7 @@ namespace YSAI.Mqtt.service.websocket
         /// <summary>
         /// 信息传递
         /// </summary>
-        public event EventHandler<Event> OnEvent
+        public event EventHandler<EventResult> OnEvent
         {
             add { OnEventHandler += value; }
             remove { OnEventHandler -= value; }
@@ -106,7 +107,7 @@ namespace YSAI.Mqtt.service.websocket
         /// <summary>
         /// 信息传递
         /// </summary>
-        public static EventHandler<Event>? OnEventHandler;
+        public static EventHandler<EventResult>? OnEventHandler;
 
 
         public Task<OperateResult> OnAsync()
@@ -122,13 +123,12 @@ namespace YSAI.Mqtt.service.websocket
             {
                 if (!NetPortTool.ClearSamePortProcess(mqttServiceData_Static.Port))
                 {
-                    OnEventHandler?.Invoke(this, new Event() { Message = $"MQTT 服务端口被占用,清理占用此端口的进程失败", Step = Steps.系统信息 });
+                    OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.系统信息} ]MQTT 服务端口被占用,清理占用此端口的进程失败") );
                 }
                 if (!NetPortTool.ClearSamePortProcess(mqttServiceData_Static.HttpPort))
                 {
-                    OnEventHandler?.Invoke(this, new Event() { Message = $"MQTT WebSocket 服务端口被占用,清理占用此端口的进程失败", Step = Steps.系统信息 });
+                    OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.系统信息} ]MQTT WebSocket 服务端口被占用,清理占用此端口的进程失败"));
                 }
-
                 var host = Host.CreateDefaultBuilder(Array.Empty<string>()).ConfigureWebHostDefaults(
                    webBuilder =>
                    {
@@ -162,8 +162,10 @@ namespace YSAI.Mqtt.service.websocket
             /// </summary>
             public Task MqttServer_ClientUnsubscribedTopicAsync(ClientUnsubscribedTopicEventArgs arg)
             {
-                OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead_Static}( {arg.ClientId} ) 取消了 ( {arg.TopicFilter} ) 的订阅", ClientId = arg.ClientId, Step = Steps.客户端取消订阅事件 });
-                return Task.CompletedTask;
+                return Task.Run(() =>
+                {
+                    OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.客户端取消订阅事件} ]( {arg.ClientId} ) 取消了 ( {arg.TopicFilter} ) 的订阅", arg.ClientId, Core.@enum.ResultType.String));
+                });
             }
 
             /// <summary>
@@ -171,8 +173,10 @@ namespace YSAI.Mqtt.service.websocket
             /// </summary>
             public Task MqttServer_ClientSubscribedTopicAsync(ClientSubscribedTopicEventArgs arg)
             {
-                OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead_Static}( {arg.ClientId} ) 订阅了主题 ( {arg.TopicFilter.Topic} )", ClientId = arg.ClientId, Step = Steps.客户端订阅事件 });
-                return Task.CompletedTask;
+                return Task.Run(() =>
+                {
+                    OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.客户端订阅事件} ]( {arg.ClientId} ) 订阅了主题 ( {arg.TopicFilter.Topic} )", arg.ClientId, Core.@enum.ResultType.String));
+                });
             }
 
             /// <summary>
@@ -180,16 +184,20 @@ namespace YSAI.Mqtt.service.websocket
             /// </summary>
             public Task MqttServer_ApplicationMessageNotConsumedAsync(ApplicationMessageNotConsumedEventArgs arg)
             {
-                switch (arg.ApplicationMessage.PayloadFormatIndicator)
+                return Task.Run(() =>
                 {
-                    case MQTTnet.Protocol.MqttPayloadFormatIndicator.Unspecified:
-                        break;
-                    case MQTTnet.Protocol.MqttPayloadFormatIndicator.CharacterData:
-                        Event._ClientMessage clientMessage = new Event._ClientMessage() { Messages = arg.ApplicationMessage, SenderID = arg.SenderId };
-                        OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead_Static}( {arg.SenderId} ) 发布了主题 ( {arg.ApplicationMessage.Topic} ) 内容 ( {Encoding.UTF8.GetString(arg.ApplicationMessage.Payload)} )", ClientMessage = clientMessage, Step = Steps.客户端消息事件 });
-                        break;
-                }
-                return Task.CompletedTask;
+                    switch (arg.ApplicationMessage.PayloadFormatIndicator)
+                    {
+                        case MQTTnet.Protocol.MqttPayloadFormatIndicator.Unspecified:
+                            break;
+                        case MQTTnet.Protocol.MqttPayloadFormatIndicator.CharacterData:
+                            dynamic DynamicObj = new ExpandoObject();
+                            DynamicObj.Messages = arg.ApplicationMessage;
+                            DynamicObj.SenderID = arg.SenderId;
+                            OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.客户端消息事件} ]( {arg.SenderId} ) 发布了主题 ( {arg.ApplicationMessage.Topic} ) 内容 ( {Encoding.UTF8.GetString(arg.ApplicationMessage.Payload)} )", DynamicObj, Core.@enum.ResultType.Dynamic));
+                            break;
+                    }
+                });
             }
 
             /// <summary>
@@ -197,8 +205,10 @@ namespace YSAI.Mqtt.service.websocket
             /// </summary>
             public Task MqttServer_ClientDisconnectedAsync(ClientDisconnectedEventArgs arg)
             {
-                OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead_Static}( {arg.ClientId} ) 已断开", ClientId = arg.ClientId, Step = Steps.客户端断开事件 });
-                return Task.CompletedTask;
+                return Task.Run(() =>
+                {
+                    OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.客户端断开事件} ]( {arg.ClientId} ) 已断开", arg.ClientId, Core.@enum.ResultType.String));
+                });
             }
 
             /// <summary>
@@ -206,8 +216,10 @@ namespace YSAI.Mqtt.service.websocket
             /// </summary>
             public Task MqttServer_ClientConnectedAsync(ClientConnectedEventArgs arg)
             {
-                OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead_Static}( {arg.ClientId} ) 已连接", ClientId = arg.ClientId, Step = Steps.客户端连接事件 });
-                return Task.CompletedTask;
+                return Task.Run(() =>
+                {
+                    OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.客户端连接事件} ]( {arg.ClientId} ) 已连接", arg.ClientId, Core.@enum.ResultType.String));
+                });
             }
 
             /// <summary>
@@ -218,16 +230,20 @@ namespace YSAI.Mqtt.service.websocket
             /// <exception cref="NotImplementedException"></exception>
             public Task MqttServer_ValidatingConnectionAsync(ValidatingConnectionEventArgs arg)
             {
-                //验证账号密码是否正确
-                if (!arg.UserName.Equals(mqttServiceData_Static.LoginID) || !arg.Password.Equals(mqttServiceData_Static.LoginPassword))
+                return Task.Run(() =>
                 {
-                    arg.ReasonCode = MQTTnet.Protocol.MqttConnectReasonCode.BadUserNameOrPassword;
-                    OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead_Static}( {arg.ClientId} ) 身份验证异常:{arg.ReasonCode}", ClientId = arg.ClientId, Step = Steps.客户端身份验证事件 });
-                    return Task.CompletedTask;
-                }
-                arg.ReasonCode = MQTTnet.Protocol.MqttConnectReasonCode.Success;
-                OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead_Static}( {arg.ClientId} ) 身份验证成功", ClientId = arg.ClientId, Step = Steps.客户端身份验证事件 });
-                return Task.CompletedTask;
+                    //验证账号密码是否正确
+                    if (!arg.UserName.Equals(mqttServiceData_Static.LoginID) || !arg.Password.Equals(mqttServiceData_Static.LoginPassword))
+                    {
+                        arg.ReasonCode = MQTTnet.Protocol.MqttConnectReasonCode.BadUserNameOrPassword;
+                        OnEventHandler?.Invoke(this, new EventResult(false, $"[ {Steps.客户端身份验证事件} ]( {arg.ClientId} ) 身份验证异常:{arg.ReasonCode}", arg.ClientId, Core.@enum.ResultType.String));
+                    }
+                    else
+                    {
+                        arg.ReasonCode = MQTTnet.Protocol.MqttConnectReasonCode.Success;
+                        OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.客户端身份验证事件} ]( {arg.ClientId} ) 身份验证成功", arg.ClientId, Core.@enum.ResultType.String));
+                    }
+                });
             }
         }
         /// <summary>
@@ -270,12 +286,12 @@ namespace YSAI.Mqtt.service.websocket
                         });
 
 
-                    OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead_Static} MQTT 服务端地址 ( 127.0.0.1:{mqttServiceData_Static.Port} )", Step = Steps.系统信息 });
-                    OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead_Static} MQTT WebSocket 服务端地址 ( ws://127.0.0.1:{mqttServiceData_Static.HttpPort}/{mqttServiceData_Static.Uri} )", Step = Steps.系统信息 });
+                    OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.系统信息} ]MQTT 服务端地址 ( 127.0.0.1:{mqttServiceData_Static.Port} )"));
+                    OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.系统信息} ]MQTT WebSocket 服务端地址 ( ws://127.0.0.1:{mqttServiceData_Static.HttpPort}/{mqttServiceData_Static.Uri} )"));
                 }
                 catch (Exception ex)
                 {
-                    OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead_Static}配置异常:{ex.Message}", Step = Steps.系统异常信息 });
+                    OnEventHandler?.Invoke(this, new EventResult(false, $"[ {Steps.系统异常信息} ]配置异常:{ex.Message}"));
                 }
             }
             /// <summary>
@@ -297,7 +313,7 @@ namespace YSAI.Mqtt.service.websocket
                 }
                 catch (Exception ex)
                 {
-                    OnEventHandler?.Invoke(this, new Event() { Message = $"{LogHead_Static}配置服务异常:{ex.Message}", Step = Steps.系统异常信息 });
+                    OnEventHandler?.Invoke(this, new EventResult(false, $"[ {Steps.系统异常信息} ]配置服务异常:{ex.Message}"));
                 }
             }
         }

+ 1 - 28
src/YSAI.DAQ/YSAI.Opc/da/client/OpcDaClientData.cs

@@ -87,34 +87,7 @@ namespace YSAI.Opc.da.client
             COM_DA_30
         }
 
-        /// <summary>
-        /// 事件响应数据带参
-        /// </summary>
-        public class EventParam : Event
-        {
-            /// <summary>
-            /// 键值集合
-            /// </summary>
-            public ConcurrentDictionary<string, AddressValue> Params { get; set; }
-        }
-        /// <summary>
-        /// 事件响应数据
-        /// </summary>
-        public class Event
-        {
-            /// <summary>
-            /// 详细消息
-            /// </summary>
-            public string Message { get; set; }
-            /// <summary>
-            /// 状态
-            /// </summary>
-            public bool State { get; set; }
-            /// <summary>
-            /// 时间
-            /// </summary>
-            public DateTime? Time { get; set; } = DateTime.Now.ToLocalTime();
-        }
+        
 
     }
 }

+ 6 - 4
src/YSAI.DAQ/YSAI.Opc/da/client/OpcDaClientOperate.cs

@@ -2,6 +2,7 @@
 using Newtonsoft.Json.Linq;
 using OpcDaNetApi.Da;
 using System.Collections.Concurrent;
+using System.Reflection;
 using YSAI.Core.data;
 using YSAI.Core.@interface.only;
 using YSAI.Core.@interface.unify;
@@ -14,7 +15,7 @@ namespace YSAI.Opc.da.client
     /// <summary>
     /// OPCDA客户端操作 (请以32位启动)
     /// </summary>
-    public sealed class OpcDaClientOperate: IBaseAbstract<OpcDaClientData.EventParam>, IOpcDaClient, IDaq
+    public sealed class OpcDaClientOperate: IBaseAbstract, IOpcDaClient, IDaq
     {
         private static readonly object Lock = new object();  //锁
         private static List<OpcDaClientOperate> ThisObjList = new List<OpcDaClientOperate>(); //自身对象集合
@@ -120,14 +121,14 @@ namespace YSAI.Opc.da.client
                         param.AddOrUpdate(addressDetails.AddressName, addressValue, (k, v) => addressValue);
 
                         //响应
-                        OnEventHandler?.Invoke(this, new OpcDaClientData.EventParam() { Message = $"点位数据更新", State = true, Params = param });
+                        OnEventHandler?.Invoke(this, new EventResult(true, "点位数据更新", param,Core.@enum.ResultType.KeyValue));
                     }
                 }
             }
             catch (Exception ex)
             {
                 //响应
-                OnEventHandler?.Invoke(this, new OpcDaClientData.EventParam() { Message = $"点位数据更新异常:" + ex.Message, State = false });
+                OnEventHandler?.Invoke(this, new EventResult(false, $"点位数据更新异常:{ex.Message}"));
             }
         }
         /// <summary>
@@ -189,7 +190,7 @@ namespace YSAI.Opc.da.client
                     }
                 }
             }
-           else if (!string.IsNullOrEmpty(AddressName) && !string.IsNullOrEmpty(GroupName))  //删除指定组下节点
+            else if (!string.IsNullOrEmpty(AddressName) && !string.IsNullOrEmpty(GroupName))  //删除指定组下节点
             {
                 for (int i = 0; i < AddressArray.Count; i++)
                 {
@@ -824,5 +825,6 @@ namespace YSAI.Opc.da.client
         {
             return Task.Run(() => UnSubscribeAsync(address));
         }
+
     }
 }

+ 0 - 26
src/YSAI.DAQ/YSAI.Opc/da/http/OpcDaHttpData.cs

@@ -77,32 +77,6 @@ namespace YSAI.Opc.da.http
             }
         }
         /// <summary>
-        /// 事件响应数据
-        /// </summary>
-        public class EventParam
-        {
-            /// <summary>
-            /// 详细消息
-            /// </summary>
-            public string Message { get; set; }
-            /// <summary>
-            /// 状态
-            /// </summary>
-            public bool State { get; set; }
-            /// <summary>
-            /// 请求的方法
-            /// </summary>
-            public RequestMethod RequestMethod { get; set; }
-            /// <summary>
-            /// Json结构体
-            /// </summary>
-            public object Json { get; set; }
-            /// <summary>
-            /// 时间
-            /// </summary>
-            public DateTime Time { get; set; } = DateTime.Now.ToLocalTime();
-        }
-        /// <summary>
         /// 请求方法
         /// </summary>
         public enum RequestMethod

+ 6 - 6
src/YSAI.DAQ/YSAI.Opc/da/http/OpcDaHttpOperate.cs

@@ -21,7 +21,7 @@ using YSAI.Core.subscription;
 
 namespace YSAI.Opc.da.http
 {
-    public sealed class OpcDaHttpOperate : IBaseAbstract<OpcDaHttpData.EventParam, SubscribeData.EventParam>, IOpcDaHttp, IDaq
+    public sealed class OpcDaHttpOperate : IBaseAbstract, IOpcDaHttp, IDaq
     {
         /// <summary>
         /// 构造函数
@@ -228,18 +228,18 @@ namespace YSAI.Opc.da.http
                             jsonObj = JsonTool.StringToJsonEntity<ReqWriteItemValue.Response>(ResponseData.ResponseData);
                             break;
                     }
-                    OnEventHandler?.Invoke(this, new OpcDaHttpData.EventParam() { Json = jsonObj, Message = "请求成功", RequestMethod = request, State = true });  //事件抛出
+                    OnEventHandler?.Invoke(this, new EventResult(true, "请求成功",jsonObj,Core.@enum.ResultType.Json));  //事件抛出
                     return Break("Request", true, RData: jsonObj, RType: Core.@enum.ResultType.Json);  //返回数据
                 }
                 else
                 {
-                    OnEventHandler?.Invoke(this, new OpcDaHttpData.EventParam() { Message = $"返回状态 [ {code} ] ,请求{(code.Equals("2") ? "失败" : code.Equals("3") ? "json格式错误" : "未知")}", RequestMethod = request, State = false });  //事件抛出
+                    OnEventHandler?.Invoke(this, new EventResult(false, $"返回状态 [ {code} ] ,请求{(code.Equals("2") ? "失败" : code.Equals("3") ? "json格式错误" : "未知")}", request,Core.@enum.ResultType.Enum));  //事件抛出
                     return Break("Request", false, $"返回状态 [ {code} ] ,请求{(code.Equals("2") ? "失败" : code.Equals("3") ? "json格式错误" : "未知")}");
                 }
             }
             catch (Exception ex)
             {
-                OnEventHandler?.Invoke(this, new OpcDaHttpData.EventParam() { Message = ex.Message, RequestMethod = request, State = false });  //事件抛出
+                OnEventHandler?.Invoke(this, new EventResult(false,ex.Message, request, Core.@enum.ResultType.Enum));  //事件抛出
                 return Break("Request", false, ex.Message);
             }
         }
@@ -432,9 +432,9 @@ namespace YSAI.Opc.da.http
         /// </summary>
         /// <param name="sender">自定义订阅对象</param>
         /// <param name="e">返回的参数</param>
-        private void SubscribeOperate_OnEvent(object? sender, SubscribeData.EventParam e)
+        private void SubscribeOperate_OnEvent(object? sender, EventResult e)
         {
-            OnEventParamHandler?.Invoke(this, e);
+            OnEventHandler?.Invoke(this, e);
         }
     }
 }

+ 0 - 33
src/YSAI.DAQ/YSAI.Opc/ua/client/OpcUaClientData.cs

@@ -110,39 +110,6 @@ namespace YSAI.Opc.ua.client
                 }
             }
         }
-
-        /// <summary>
-        /// 事件响应数据
-        /// </summary>
-        public class Event
-        {
-            /// <summary>
-            /// 详细消息
-            /// </summary>
-            public string Message { get; set; }
-            /// <summary>
-            /// 状态
-            /// </summary>
-            public bool State { get; set; }
-            /// <summary>
-            /// 在那一个无返回的函数中出现的
-            /// </summary>
-            public Steps Step { get; set; }
-            /// <summary>
-            /// 时间
-            /// </summary>
-            public DateTime Time { get; set; } = DateTime.Now.ToLocalTime();
-        }
-        /// <summary>
-        /// 事件响应数据带参
-        /// </summary>
-        public class EventParam : Event
-        {
-            /// <summary>
-            /// 键值集合
-            /// </summary>
-            public ConcurrentDictionary<string, AddressValue> Params { get; set; }
-        }
         /// <summary>
         /// 步骤枚举
         /// </summary>

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

@@ -23,7 +23,7 @@ namespace YSAI.Opc.ua.client
     /// <summary>
     /// OpcUa 客户端 
     /// </summary>
-    public sealed class OpcUaClientOperate : IBaseAbstract<Event, EventParam>, IOpcUaClient, IDaq
+    public sealed class OpcUaClientOperate : IBaseAbstract, IOpcUaClient, IDaq
     {
         private static readonly object Lock = new object();  //锁
         private static List<OpcUaClientOperate> ThisObjList = new List<OpcUaClientOperate>(); //自身对象集合
@@ -136,7 +136,7 @@ namespace YSAI.Opc.ua.client
             {
                 if (!object.ReferenceEquals(session, this.clientSession))
                 {
-                    OnEventHandler?.Invoke(this, new Event() { Message = $"事件对象不匹配", Step = Steps.事件对象不匹配 });
+                    OnEventHandler?.Invoke(this, new EventResult(false, Steps.事件对象不匹配.ToString()));
                     return;
                 }
                 if (ServiceResult.IsBad(e.Status))
@@ -150,7 +150,7 @@ namespace YSAI.Opc.ua.client
                     {
                         sessionReconnectHandler = new SessionReconnectHandler();
                         sessionReconnectHandler.BeginReconnect(session, reconnectPeriod * 1000, Server_ReconnectComplete);
-                        OnEventHandler?.Invoke(this, new Event() { Message = $"异常断开,启动重连", Step = Steps.异常断开 });
+                        OnEventHandler?.Invoke(this, new EventResult(false, $"[ {Steps.异常断开} ]启动重连"));
                     }
                     return;
                 }
@@ -161,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 EventResult(true, Steps.连接成功.ToString()));
                     }
                 }
             }
             catch (Exception ex)
             {
-                OnEventHandler?.Invoke(this, new Event() { Message = $"处理会话中的保持活动事件异常:{ex.Message}", Step = Steps.异常 });
+                OnEventHandler?.Invoke(this, new EventResult(false, $"处理会话中的保持活动事件异常:{ex.Message}"));
             }
         }
 
@@ -180,17 +180,17 @@ namespace YSAI.Opc.ua.client
             {
                 if (!ReferenceEquals(sender, sessionReconnectHandler))
                 {
-                    OnEventHandler?.Invoke(this, new Event() { Message = $"事件对象不匹配", Step = Steps.事件对象不匹配 });
+                    OnEventHandler?.Invoke(this, new EventResult(false, Steps.事件对象不匹配.ToString()));
                     return;
                 }
                 clientSession = sessionReconnectHandler.Session;
                 sessionReconnectHandler.Dispose();
                 sessionReconnectHandler = null;
-                OnEventHandler?.Invoke(this, new Event() { Message = $"重连成功", State = true, Step = Steps.重连成功 });
+                OnEventHandler?.Invoke(this, new EventResult(true,Steps.重连成功.ToString()));
             }
             catch (Exception ex)
             {
-                OnEventHandler?.Invoke(this, new Event() { Message = $"处理重新连接处理程序完成的重新连接事件异常:{ex.Message}", Step = Steps.异常 });
+                OnEventHandler?.Invoke(this, new EventResult(false, $"处理重新连接处理程序完成的重新连接事件异常:{ex.Message}"));
             }
         }
         /// <summary>
@@ -213,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 });
+                OnEventHandler?.Invoke(this, new EventResult(true, $"[ {Steps.订阅通知} ]点位数据更新", param,Core.@enum.ResultType.KeyValue));
             }
             catch (Exception ex)
             {
-                OnEventHandler?.Invoke(this, new Event() { Message = ex.Message, Step = Steps.订阅通知 });
+                OnEventHandler?.Invoke(this, new EventResult(false,$"[ {Steps.订阅通知} ]异常:{ex.Message}"));
             }
         }
 

+ 0 - 19
src/YSAI.DAQ/YSAI.Opc/ua/service/OpcUaServiceData.cs

@@ -64,24 +64,5 @@ namespace YSAI.Opc.ua.service
                 }
             }
         }
-
-        /// <summary>
-        /// 事件响应数据
-        /// </summary>
-        public class Event
-        {
-            /// <summary>
-            /// 详细消息
-            /// </summary>
-            public string Message { get; set; }
-            /// <summary>
-            /// 状态
-            /// </summary>
-            public bool State { get; set; } = true;
-            /// <summary>
-            /// 时间
-            /// </summary>
-            public DateTime Time { get; set; } = DateTime.Now.ToLocalTime();
-        }
     }
 }

+ 5 - 5
src/YSAI.DAQ/YSAI.Opc/ua/service/OpcUaServiceOperate.cs

@@ -16,7 +16,7 @@ namespace YSAI.Opc.ua.service
     /// <summary>
     /// OPCUA 服务端
     /// </summary>
-    public sealed class OpcUaServiceOperate: IBaseAbstract<Event>, IOpcUaService
+    public sealed class OpcUaServiceOperate: IBaseAbstract,IOpcUaService
     {
         private static readonly object Lock = new object();  //锁
         private static List<OpcUaServiceOperate> ThisObjList = new List<OpcUaServiceOperate>(); //自身对象集合
@@ -116,11 +116,11 @@ namespace YSAI.Opc.ua.service
                 e.Accept = opcUaData.AutoAccept;
                 if (opcUaData.AutoAccept)
                 {
-                    OnEventHandler?.Invoke(this, new Event() { Message = string.Format("接受证书: {0}", e.Certificate.Subject) });
+                    OnEventHandler?.Invoke(this, new EventResult(true, string.Format("接受证书: {0}", e.Certificate.Subject)));
                 }
                 else
                 {
-                    OnEventHandler?.Invoke(this, new Event() { Message = string.Format("拒绝证书: {0}", e.Certificate.Subject) });
+                    OnEventHandler?.Invoke(this, new EventResult(true, string.Format("拒绝证书: {0}", e.Certificate.Subject)) );
                 }
             }
         }
@@ -190,7 +190,7 @@ namespace YSAI.Opc.ua.service
             }
 
             //事件抛出
-            OnEventHandler?.Invoke(this, new Event() { Message = item });
+            OnEventHandler?.Invoke(this, new EventResult(true, item));
         }
         #endregion
 
@@ -251,7 +251,7 @@ namespace YSAI.Opc.ua.service
                 foreach (var endpoint in endpoints)
                 {
                     //事件抛出
-                    OnEventHandler?.Invoke(this, new Event() { Message = endpoint });
+                    OnEventHandler?.Invoke(this, new EventResult(true, endpoint));
                 }
 
                 // 启动状态线程

+ 0 - 18
src/YSAI.DAQ/YSAI.RabbitMQ/RabbitMQData.cs

@@ -73,23 +73,5 @@ namespace YSAI.RabbitMQ
                 }
             }
         }
-
-
-        public class Event
-        {
-            /// <summary>
-            /// 消息头
-            /// </summary>
-            public string Topic { get; set; }
-            /// <summary>
-            /// 消息的内容
-            /// </summary>
-            public string Content { get; set; }
-
-            /// <summary>
-            /// 时间
-            /// </summary>
-            public DateTime Time { get; set; } = DateTime.Now.ToLocalTime();
-        }
     }
 }

+ 6 - 2
src/YSAI.DAQ/YSAI.RabbitMQ/RabbitMQOperate.cs

@@ -3,6 +3,7 @@ using RabbitMQ.Client.Events;
 using System;
 using System.Collections.Concurrent;
 using System.Collections.Generic;
+using System.Dynamic;
 using System.Linq;
 using System.Text;
 using System.Threading.Channels;
@@ -17,7 +18,7 @@ namespace YSAI.RabbitMQ
     /// <summary>
     /// 发布者操作
     /// </summary>
-    public sealed class RabbitMQOperate : IBaseAbstract<RabbitMQData.Event>, IRabbitMQ
+    public sealed class RabbitMQOperate : IBaseAbstract, IRabbitMQ
     {
         protected override string LogHead => "[ RabbitMQOperate 操作 ]";
         protected override string ClassName => "RabbitMQOperate";
@@ -279,7 +280,10 @@ namespace YSAI.RabbitMQ
         /// </summary>
         private void Consumer_Received(object? sender, BasicDeliverEventArgs e, bool AutoAck = false)
         {
-            OnEventHandler?.Invoke(this, new RabbitMQData.Event() { Content = Encoding.UTF8.GetString(e.Body.ToArray()), Topic = e.RoutingKey });
+            dynamic DynamicObj = new ExpandoObject();
+            DynamicObj.Content = Encoding.UTF8.GetString(e.Body.ToArray());
+            DynamicObj.Topic = e.RoutingKey;
+            OnEventHandler?.Invoke(this, new EventResult(true, DynamicObj.ToJson(), DynamicObj,Core.@enum.ResultType.Dynamic));
             if (!AutoAck)
             {
                 //当自动确认为false,得手动确认消息

+ 10 - 7
src/YSAI.DAQ/YSAI.Relay/RelayOperate.cs

@@ -19,7 +19,7 @@ namespace YSAI.Relay
     /// <summary>
     /// 转发操作
     /// </summary>
-    public class RelayOperate : IBaseAbstract<object>, IRelay
+    public class RelayOperate : IBaseAbstract, IRelay
     {
         protected override string LogHead => "[ RelayOperate 操作 ]";
         protected override string ClassName => "RelayOperate";
@@ -123,21 +123,24 @@ namespace YSAI.Relay
                                 {
                                     foreach (var operate in KafkaProducerArray)
                                     {
-                                        OnEventHandler?.Invoke(this, operate.Value.Produce(queueData.Topic, queueData.Content));
+                                        operateResult = operate.Value.Produce(queueData.Topic, queueData.Content);
+                                        OnEventHandler?.Invoke(this, new EventResult(operateResult.State, "请查看RData", operateResult, ResultType.OperateResult));
                                     }
                                 }
                                 if (MqttClientArray != null)
                                 {
                                     foreach (var operate in MqttClientArray)
                                     {
-                                        OnEventHandler?.Invoke(this, operate.Value.Produce(queueData.Topic, queueData.Content));
+                                        operateResult = operate.Value.Produce(queueData.Topic, queueData.Content);
+                                        OnEventHandler?.Invoke(this, new EventResult(operateResult.State, "请查看RData", operateResult, ResultType.OperateResult));
                                     }
                                 }
                                 if (RabbitMQArray != null)
                                 {
                                     foreach (var operate in RabbitMQArray)
                                     {
-                                        OnEventHandler?.Invoke(this, operate.Value.Produce(queueData.Topic, queueData.Content));
+                                        operateResult = operate.Value.Produce(queueData.Topic, queueData.Content);
+                                        OnEventHandler?.Invoke(this, new EventResult(operateResult.State, "请查看RData", operateResult, ResultType.OperateResult));
                                     }
                                 }
                             }
@@ -206,7 +209,7 @@ namespace YSAI.Relay
                         else
                         {
                             //通知到外部,让外部来觉得是否重新初始化
-                            OnEventHandler?.Invoke(this, operateResult);
+                            OnEventHandler?.Invoke(this, new EventResult(operateResult.State, "请查看RData", operateResult, ResultType.OperateResult));
                         }
                     }
                 }
@@ -224,7 +227,7 @@ namespace YSAI.Relay
                         else
                         {
                             //通知到外部,让外部来觉得是否重新初始化
-                            OnEventHandler?.Invoke(this, operateResult);
+                            OnEventHandler?.Invoke(this, new EventResult(operateResult.State, "请查看RData", operateResult, ResultType.OperateResult));
                         }
                     }
                 }
@@ -243,7 +246,7 @@ namespace YSAI.Relay
             }
             else
             {
-                OnEventHandler?.Invoke(this, Break(Depart("Init"), false, "配置文件不存在"));
+                OnEventHandler?.Invoke(this, new EventResult(false, "请查看RData", Break(Depart("Init"), false, "配置文件不存在"), ResultType.OperateResult));
             }
         }
 

+ 2 - 2
src/YSAI.DAQ/YSAI.S7/client/S7ClientOperate.cs

@@ -20,7 +20,7 @@ namespace YSAI.S7.client
     /// <summary>
     /// s7操作
     /// </summary>
-    public sealed class S7ClientOperate : IBaseAbstract<SubscribeData.EventParam>, IS7Client, IDaq
+    public sealed class S7ClientOperate : IBaseAbstract, IS7Client, IDaq
     {
         private static readonly object Lock = new object();  //锁
         private static List<S7ClientOperate> ThisObjList = new List<S7ClientOperate>(); //自身对象集合
@@ -362,7 +362,7 @@ namespace YSAI.S7.client
         /// </summary>
         /// <param name="sender">自定义订阅对象</param>
         /// <param name="e">返回的参数</param>
-        private void SubscribeOperate_OnEvent(object? sender, SubscribeData.EventParam e)
+        private void SubscribeOperate_OnEvent(object? sender, EventResult e)
         {
             OnEventHandler?.Invoke(this, e);
         }

+ 8 - 18
src/YSAI.DAQ/YSAI.Test/TestAll.cs

@@ -152,7 +152,7 @@ namespace YSAI.Test
         {
             try
             {
-                MqttClientData.Event value = JsonTool.StringToJsonEntity<MqttClientData.Event>(e.ToJson());
+                EventResult value = JsonTool.StringToJsonEntity<EventResult>(e.ToJson());
 
                 Console.WriteLine(value.Message);
             }
@@ -259,13 +259,13 @@ namespace YSAI.Test
 
             }
         }
-        private static void OpcDaClientOperate_OnEventParam(object? sender, OpcDaClientData.EventParam e)
+        private static void OpcDaClientOperate_OnEventParam(object? sender, EventResult e)
         {
-            foreach (var item in e.Params)
-            {
-                Console.WriteLine(item.Key);
-                Console.WriteLine(item.Value.Value);
-            }
+            //foreach (var item in e.Params)
+            //{
+            //    Console.WriteLine(item.Key);
+            //    Console.WriteLine(item.Value.Value);
+            //}
         }
 
         [TestMethod]
@@ -348,7 +348,6 @@ namespace YSAI.Test
                 }))
                 {
                     opcUaClientOperate.OnEvent += OpcUaClientOperate_OnEvent;
-                    opcUaClientOperate.OnEventParam += OpcUaClientOperate_OnEventParam;
 
                     operateResult = opcUaClientOperate.On();
                     Console.WriteLine(operateResult.Message);
@@ -413,16 +412,7 @@ namespace YSAI.Test
                 }
             }
         }
-        private static void OpcUaClientOperate_OnEventParam(object? sender, OpcUaClientData.EventParam e)
-        {
-            Console.ForegroundColor = ConsoleColor.Yellow;
-            Console.WriteLine(e.Message);
-            foreach (var item in e.Params)
-            {
-                Console.WriteLine(item.Value.Value);
-            }
-        }
-        private static void OpcUaClientOperate_OnEvent(object? sender, OpcUaClientData.Event e)
+        private static void OpcUaClientOperate_OnEvent(object? sender, EventResult e)
         {
             Console.ForegroundColor = ConsoleColor.Green;
             Console.WriteLine(e.Message);