Ver Fonte

新增获取参数接口

Shun há 2 anos atrás
pai
commit
2083a5616c
51 ficheiros alterados com 1697 adições e 1414 exclusões
  1. 2 2
      src/YSAI.DAQ/YSAI.Beckhoff/YSAI.Beckhoff.csproj
  2. 2 2
      src/YSAI.DAQ/YSAI.Can/YSAI.Can.csproj
  3. 2 2
      src/YSAI.DAQ/YSAI.Core/YSAI.Core.csproj
  4. 151 0
      src/YSAI.DAQ/YSAI.Core/data/LibParamStructure.cs
  5. 3 1
      src/YSAI.DAQ/YSAI.Core/interface/ICommunication.cs
  6. 4 2
      src/YSAI.DAQ/YSAI.Core/interface/IDaq.cs
  7. 22 0
      src/YSAI.DAQ/YSAI.Core/interface/IGetParam.cs
  8. 4 2
      src/YSAI.DAQ/YSAI.Core/interface/IRelay.cs
  9. 2 2
      src/YSAI.DAQ/YSAI.DB/YSAI.DB.csproj
  10. 1 1
      src/YSAI.DAQ/YSAI.DaqManage/YSAI.DaqManage.csproj
  11. 2 2
      src/YSAI.DAQ/YSAI.Kafka/YSAI.Kafka.csproj
  12. 35 22
      src/YSAI.DAQ/YSAI.Log/LogBase.cs
  13. 41 24
      src/YSAI.DAQ/YSAI.Log/LogHelper.cs
  14. 1 1
      src/YSAI.DAQ/YSAI.Log/YSAI.Log.csproj
  15. 5 5
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.Beckhoff.Param.json
  16. 35 35
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.Beckhoff.ParamDetails.json
  17. 8 8
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.Can.Param.json
  18. 137 137
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.Can.ParamDetails.json
  19. 8 8
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.DB.Param.json
  20. 77 77
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.DB.ParamDetails.json
  21. 5 5
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.Kafka.Param.json
  22. 72 72
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.Kafka.ParamDetails.json
  23. 20 20
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.Modbus.Param.json
  24. 325 325
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.Modbus.ParamDetails.json
  25. 7 7
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.Mqtt.Param.json
  26. 65 65
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.Mqtt.ParamDetails.json
  27. 7 7
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.Netty.Param.json
  28. 49 49
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.Netty.ParamDetails.json
  29. 7 6
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.OpcDa.Param.json
  30. 58 58
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.OpcDa.ParamDetails.json
  31. 10 10
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.OpcDaHttp.Param.json
  32. 81 81
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.OpcDaHttp.ParamDetails.json
  33. 16 12
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.OpcUa.Param.json
  34. 105 84
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.OpcUa.ParamDetails.json
  35. 6 6
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.RabbitMQ.Param.json
  36. 42 42
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.RabbitMQ.ParamDetails.json
  37. 11 11
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.S7.Param.json
  38. 113 113
      src/YSAI.DAQ/YSAI.Manage/param/YSAI.S7.ParamDetails.json
  39. 2 2
      src/YSAI.DAQ/YSAI.Modbus/YSAI.Modbus.csproj
  40. 2 2
      src/YSAI.DAQ/YSAI.Mqtt/YSAI.Mqtt.csproj
  41. 2 2
      src/YSAI.DAQ/YSAI.Netty/YSAI.Netty.csproj
  42. 2 2
      src/YSAI.DAQ/YSAI.Opc/YSAI.Opc.csproj
  43. 4 4
      src/YSAI.DAQ/YSAI.Pack/Modbus.json
  44. 30 0
      src/YSAI.DAQ/YSAI.Pack/OpcUa.json
  45. 1 1
      src/YSAI.DAQ/YSAI.Pack/S7.json
  46. 2 2
      src/YSAI.DAQ/YSAI.RabbitMQ/YSAI.RabbitMQ.csproj
  47. 1 1
      src/YSAI.DAQ/YSAI.RelayManage/YSAI.RelayManage.csproj
  48. 2 2
      src/YSAI.DAQ/YSAI.S7/YSAI.S7.csproj
  49. 104 87
      src/YSAI.DAQ/YSAI.Test.All/Program.cs
  50. 3 2
      src/YSAI.DAQ/YSAI.Test.All/YSAI.Test.All.csproj
  51. 1 1
      src/YSAI.DAQ/YSAI.Test/YSAI.Test.csproj

+ 2 - 2
src/YSAI.DAQ/YSAI.Beckhoff/YSAI.Beckhoff.csproj

@@ -5,7 +5,7 @@
 		<ImplicitUsings>enable</ImplicitUsings>
 		<Nullable>enable</Nullable>
 		<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-		<Version>1.0.0.4</Version>
+		<Version>1.0.0.5</Version>
 		<Authors>Shun</Authors>
 		<Company>YSAI</Company>
 		<Product>SCADA</Product>
@@ -14,7 +14,7 @@
 
 	<ItemGroup>
 		<PackageReference Include="Beckhoff.TwinCAT.Ads" Version="6.1.86" />
-		<PackageReference Include="YSAI.Core" Version="1.0.0.69" />
+		<PackageReference Include="YSAI.Core" Version="1.0.0.70" />
 	</ItemGroup>
 
 	<!--<ItemGroup>

+ 2 - 2
src/YSAI.DAQ/YSAI.Can/YSAI.Can.csproj

@@ -5,7 +5,7 @@
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
 	  <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-	  <Version>1.0.0.30</Version>
+	  <Version>1.0.0.31</Version>
 	  <Authors>Shun</Authors>
 	  <Company>YSAI</Company>
 	  <Product>SCADA</Product>
@@ -17,7 +17,7 @@
   </ItemGroup>
 
   <ItemGroup>
-    <PackageReference Include="YSAI.Core" Version="1.0.0.69" />
+    <PackageReference Include="YSAI.Core" Version="1.0.0.70" />
   </ItemGroup>
 
   <ItemGroup>

+ 2 - 2
src/YSAI.DAQ/YSAI.Core/YSAI.Core.csproj

@@ -5,7 +5,7 @@
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-    <Version>1.0.0.70</Version>
+    <Version>1.0.0.71</Version>
     <Authors>Shun</Authors>
     <Company>YSAI</Company>
     <Product>SCADA</Product>
@@ -16,7 +16,7 @@
 		<PackageReference Include="StackExchange.Redis" Version="2.7.4" />
 		<PackageReference Include="Microsoft.ClearScript" Version="7.4.4" />
 		<PackageReference Include="System.IO.Ports" Version="7.0.0" />
-		<PackageReference Include="YSAI.Log" Version="1.0.0.10" />
+		<PackageReference Include="YSAI.Log" Version="1.0.0.11" />
 		<PackageReference Include="YSAI.Unility" Version="1.0.0.26" />
 	</ItemGroup>
 

+ 151 - 0
src/YSAI.DAQ/YSAI.Core/data/LibParamStructure.cs

@@ -0,0 +1,151 @@
+using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
+
+namespace YSAI.Core.data
+{
+    /// <summary>
+    /// 库文件参数结构
+    /// </summary>
+    public class LibParamStructure
+    {
+        /// <summary>
+        /// 代码
+        /// </summary>
+        public string Code { get; set; }
+
+        /// <summary>
+        /// 名称
+        /// </summary>
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 描述
+        /// </summary>
+        public string Description { get; set; }
+
+        /// <summary>
+        /// 参数集合
+        /// </summary>
+        public List<subset> Subset { get; set; }
+
+        /// <summary>
+        /// 参数信息
+        /// </summary>
+        public class subset
+        {
+            /// <summary>
+            /// 名称
+            /// </summary>
+            public string Name { get; set; }
+
+            /// <summary>
+            /// 描述
+            /// </summary>
+            public string Description { get; set; }
+
+            /// <summary>
+            /// 属性集合
+            /// </summary>
+            public List<propertie> Propertie { get; set; }
+
+            /// <summary>
+            /// 属性
+            /// </summary>
+            public class propertie
+            {
+                /// <summary>
+                /// 数据类型
+                /// </summary>
+                [JsonConverter(typeof(StringEnumConverter))]
+                public dataCate DataCate { get; set; }
+
+                /// <summary>
+                /// 数据类别
+                /// </summary>
+                public enum dataCate
+                {
+                    /// <summary>
+                    /// 文本框
+                    /// </summary>
+                    text,
+
+                    /// <summary>
+                    /// 下拉框
+                    /// </summary>
+                    select,
+
+                    /// <summary>
+                    /// 单选框
+                    /// </summary>
+                    radio,
+
+                    /// <summary>
+                    /// 数字框
+                    /// </summary>
+                    unmber
+                }
+
+                /// <summary>
+                /// 默认值
+                /// </summary>
+                public string Default { get; set; }
+
+                /// <summary>
+                /// 描述
+                /// </summary>
+                public string Description { get; set; }
+
+                /// <summary>
+                /// 属性名称
+                /// </summary>
+                public string PropertyName { get; set; }
+
+                /// <summary>
+                /// 初始值
+                /// </summary>
+                public object? Value { get; set; }
+
+                /// <summary>
+                /// 是否显示
+                /// </summary>
+                public bool IsShow { get; set; }
+
+                /// <summary>
+                /// 是否使用
+                /// </summary>
+                public bool IsMust { get; set; }
+
+                /// <summary>
+                /// 正则表达式
+                /// </summary>
+                public string Regex { get; set; }
+
+                /// <summary>
+                /// 输入错误提示
+                /// </summary>
+                public string InputErrorTips { get; set; }
+
+                /// <summary>
+                /// 非必填项集合
+                /// </summary>
+                public List<options>? Options { get; set; } = null;
+
+                /// <summary>
+                /// 非必填项
+                /// </summary>
+                public class options
+                {
+                    /// <summary>
+                    /// 键
+                    /// </summary>
+                    public string Key { get; set; }
+
+                    /// <summary>
+                    /// 值
+                    /// </summary>
+                    public object Value { get; set; }
+                }
+            }
+        }
+    }
+}

+ 3 - 1
src/YSAI.DAQ/YSAI.Core/interface/ICommunication.cs

@@ -1,4 +1,6 @@
-namespace YSAI.Core.@interface
+using YSAI.Core.@internal;
+
+namespace YSAI.Core.@interface
 {
     /// <summary>
     /// 底层通信接口

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

@@ -1,8 +1,10 @@
-namespace YSAI.Core.@interface
+using YSAI.Core.@internal;
+
+namespace YSAI.Core.@interface
 {
     /// <summary>
     /// 数采接口
     /// </summary>
-    public interface IDaq : IOn, IOff, IRead, IWrite, ISubscribe, IGetStatus, IEvent, IDisposable
+    public interface IDaq : IOn, IOff, IRead, IWrite, ISubscribe, IGetStatus, IEvent, IGetParam, IDisposable
     { }
 }

+ 22 - 0
src/YSAI.DAQ/YSAI.Core/interface/IGetParam.cs

@@ -0,0 +1,22 @@
+using YSAI.Core.data;
+
+namespace YSAI.Core.@internal
+{
+    /// <summary>
+    /// 获取参数接口
+    /// </summary>
+    public interface IGetParam
+    {
+        /// <summary>
+        /// 获取参数
+        /// </summary>
+        /// <returns>统一结果</returns>
+        OperateResult GetParam();
+
+        /// <summary>
+        /// 获取参数
+        /// </summary>
+        /// <returns>统一结果</returns>
+        Task<OperateResult> GetParamAsync();
+    }
+}

+ 4 - 2
src/YSAI.DAQ/YSAI.Core/interface/IRelay.cs

@@ -1,8 +1,10 @@
-namespace YSAI.Core.@interface
+using YSAI.Core.@internal;
+
+namespace YSAI.Core.@interface
 {
     /// <summary>
     /// 转发接口
     /// </summary>
-    public interface IRelay : IOn, IOff, IProducer, IConsumer, IGetStatus, IEvent, IDisposable
+    public interface IRelay : IOn, IOff, IProducer, IConsumer, IGetStatus, IEvent, IGetParam, IDisposable
     { }
 }

+ 2 - 2
src/YSAI.DAQ/YSAI.DB/YSAI.DB.csproj

@@ -5,7 +5,7 @@
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
 	  <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-	  <Version>1.0.0.30</Version>
+	  <Version>1.0.0.31</Version>
 	  <Authors>Shun</Authors>
 	  <Company>YSAI</Company>
 	  <Product>SCADA</Product>
@@ -18,7 +18,7 @@
 		<PackageReference Include="System.Data.OracleClient" Version="1.0.8" />
 		<PackageReference Include="System.Data.SqlClient" Version="4.8.5" />
 		<PackageReference Include="System.Data.SQLite" Version="1.0.118" />
-		<PackageReference Include="YSAI.Core" Version="1.0.0.69" />
+		<PackageReference Include="YSAI.Core" Version="1.0.0.70" />
 	</ItemGroup>
 	<!--<ItemGroup>
 		<ProjectReference Include="..\YSAI.Core\YSAI.Core.csproj" />

+ 1 - 1
src/YSAI.DAQ/YSAI.DaqManage/YSAI.DaqManage.csproj

@@ -7,7 +7,7 @@
   </PropertyGroup>
 	<ItemGroup>
 		<FrameworkReference Include="Microsoft.AspNetCore.App" />
-		<PackageReference Include="YSAI.Core" Version="1.0.0.69" />
+		<PackageReference Include="YSAI.Core" Version="1.0.0.70" />
 	</ItemGroup>
 
 	<!--<ItemGroup>

+ 2 - 2
src/YSAI.DAQ/YSAI.Kafka/YSAI.Kafka.csproj

@@ -5,7 +5,7 @@
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
 	  <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-	  <Version>1.0.0.31</Version>
+	  <Version>1.0.0.32</Version>
 	  <Authors>Shun</Authors>
 	  <Company>YSAI</Company>
 	  <Product>SCADA</Product>
@@ -14,7 +14,7 @@
 
   <ItemGroup>
     <PackageReference Include="Confluent.Kafka" Version="2.3.0" />
-    <PackageReference Include="YSAI.Core" Version="1.0.0.69" />
+    <PackageReference Include="YSAI.Core" Version="1.0.0.70" />
   </ItemGroup>
 	
 	<!--<ItemGroup>

+ 35 - 22
src/YSAI.DAQ/YSAI.Log/LogBase.cs

@@ -46,7 +46,7 @@ namespace YSAI.Log
         /// <summary>
         /// 日志容器
         /// </summary>
-        private ConcurrentDictionary<string, ILogger> LogIoc = new ConcurrentDictionary<string, ILogger>();
+        private ConcurrentDictionary<(string file, bool consoleShow), ILogger> LogIoc = new ConcurrentDictionary<(string file, bool consoleShow), ILogger>();
 
         /// <summary>
         /// 输出
@@ -55,7 +55,8 @@ namespace YSAI.Log
         /// <param name="type">类型</param>
         /// <param name="filename">文件名称</param>
         /// <param name="exception">异常对象</param>
-        public void Out(string info, Serilog.Events.LogEventLevel type, string? filename = null, Exception? exception = null)
+        /// <param name="consoleShow">控制台显示</param>
+        public void Out(string info, Serilog.Events.LogEventLevel type, string? filename = null, Exception? exception = null, bool consoleShow = true)
         {
             //文件名称
             if (string.IsNullOrWhiteSpace(filename))
@@ -64,7 +65,7 @@ namespace YSAI.Log
             }
 
             //对象判断
-            if (!LogIoc.ContainsKey(filename))
+            if (!LogIoc.ContainsKey((filename, consoleShow)))
             {
                 //文件夹
                 string folderName = string.Empty;
@@ -125,15 +126,27 @@ namespace YSAI.Log
                 ConsoleTheme theme = SystemConsoleTheme.Colored;
                 //ConsoleTheme theme = AnsiConsoleTheme.Sixteen;
 
-                //初始化一个日志对象
-                Serilog.Log.Logger = new LoggerConfiguration()
-                    .MinimumLevel.Verbose()
-                    .WriteTo.Console(outputTemplate: template, applyThemeToRedirectedOutput: applyThemeToRedirectedOutput, theme: theme)
-                    .WriteTo.File(path: filePath, rollingInterval: rollingInterval, outputTemplate: template, shared: shared)
-                    .CreateLogger();
+                //是否需要控制台输出
+                if (consoleShow)
+                {
+                    //需要控制台输出
+                    Serilog.Log.Logger = new LoggerConfiguration()
+                        .MinimumLevel.Verbose()
+                        .WriteTo.Console(outputTemplate: template, applyThemeToRedirectedOutput: applyThemeToRedirectedOutput, theme: theme)
+                        .WriteTo.File(path: filePath, rollingInterval: rollingInterval, outputTemplate: template, shared: shared)
+                        .CreateLogger();
+                }
+                else
+                {
+                    //不需要控制台输出
+                    Serilog.Log.Logger = new LoggerConfiguration()
+                        .MinimumLevel.Verbose()
+                        .WriteTo.File(path: filePath, rollingInterval: rollingInterval, outputTemplate: template, shared: shared)
+                        .CreateLogger();
+                }
 
                 //添加到容器
-                LogIoc.AddOrUpdate(filename, Serilog.Log.Logger, (k, v) => Serilog.Log.Logger);
+                LogIoc.AddOrUpdate((filename, consoleShow), Serilog.Log.Logger, (k, v) => Serilog.Log.Logger);
             }
 
             //日志输出
@@ -142,66 +155,66 @@ namespace YSAI.Log
                 case Serilog.Events.LogEventLevel.Verbose:
                     if (exception != null)
                     {
-                        LogIoc[filename].Verbose(exception, info);
+                        LogIoc[(filename, consoleShow)].Verbose(exception, info);
                     }
                     else
                     {
-                        LogIoc[filename].Verbose(info);
+                        LogIoc[(filename, consoleShow)].Verbose(info);
                     }
                     break;
 
                 case Serilog.Events.LogEventLevel.Debug:
                     if (exception != null)
                     {
-                        LogIoc[filename].Debug(exception, info);
+                        LogIoc[(filename, consoleShow)].Debug(exception, info);
                     }
                     else
                     {
-                        LogIoc[filename].Debug(info);
+                        LogIoc[(filename, consoleShow)].Debug(info);
                     }
                     break;
 
                 case Serilog.Events.LogEventLevel.Information:
                     if (exception != null)
                     {
-                        LogIoc[filename].Information(exception, info);
+                        LogIoc[(filename, consoleShow)].Information(exception, info);
                     }
                     else
                     {
-                        LogIoc[filename].Information(info);
+                        LogIoc[(filename, consoleShow)].Information(info);
                     }
                     break;
 
                 case Serilog.Events.LogEventLevel.Warning:
                     if (exception != null)
                     {
-                        LogIoc[filename].Warning(exception, info);
+                        LogIoc[(filename, consoleShow)].Warning(exception, info);
                     }
                     else
                     {
-                        LogIoc[filename].Warning(info);
+                        LogIoc[(filename, consoleShow)].Warning(info);
                     }
                     break;
 
                 case Serilog.Events.LogEventLevel.Error:
                     if (exception != null)
                     {
-                        LogIoc[filename].Error(exception, info);
+                        LogIoc[(filename, consoleShow)].Error(exception, info);
                     }
                     else
                     {
-                        LogIoc[filename].Error(info);
+                        LogIoc[(filename, consoleShow)].Error(info);
                     }
                     break;
 
                 case Serilog.Events.LogEventLevel.Fatal:
                     if (exception != null)
                     {
-                        LogIoc[filename].Fatal(exception, info);
+                        LogIoc[(filename, consoleShow)].Fatal(exception, info);
                     }
                     else
                     {
-                        LogIoc[filename].Fatal(info);
+                        LogIoc[(filename, consoleShow)].Fatal(info);
                     }
                     break;
             }

+ 41 - 24
src/YSAI.DAQ/YSAI.Log/LogHelper.cs

@@ -13,9 +13,10 @@
         /// <param name="info">信息</param>
         /// <param name="filename">文件名</param>
         /// <param name="exception">异常对象</param>
-        public static void Verbose(string info, string? filename = null, Exception? exception = null)
+        /// <param name="consoleShow">控制台显示</param>
+        public static void Verbose(string info, string? filename = null, Exception? exception = null, bool consoleShow = true)
         {
-            logBase.Out(info, Serilog.Events.LogEventLevel.Verbose, filename, exception);
+            logBase.Out(info, Serilog.Events.LogEventLevel.Verbose, filename, exception, consoleShow);
         }
 
         /// <summary>
@@ -24,9 +25,11 @@
         /// <param name="info">信息</param>
         /// <param name="filename">文件名</param>
         /// <param name="exception">异常对象</param>
-        public static Task VerboseAsync(string info, string? filename = null, Exception? exception = null, CancellationToken? token = null)
+        /// <param name="consoleShow">控制台显示</param>
+        /// <param name="token">令牌</param>
+        public static Task VerboseAsync(string info, string? filename = null, Exception? exception = null, bool consoleShow = true, CancellationToken? token = null)
         {
-            return Task.Run(() => Verbose(info, filename, exception), token ?? CancellationToken.None);
+            return Task.Run(() => Verbose(info, filename, exception, consoleShow), token ?? CancellationToken.None);
         }
 
         /// <summary>
@@ -35,9 +38,10 @@
         /// <param name="info">信息</param>
         /// <param name="filename">文件名</param>
         /// <param name="exception">异常对象</param>
-        public static void Debug(string info, string? filename = null, Exception? exception = null)
+        /// <param name="consoleShow">控制台显示</param>
+        public static void Debug(string info, string? filename = null, Exception? exception = null, bool consoleShow = true)
         {
-            logBase.Out(info, Serilog.Events.LogEventLevel.Debug, filename, exception);
+            logBase.Out(info, Serilog.Events.LogEventLevel.Debug, filename, exception, consoleShow);
         }
 
         /// <summary>
@@ -46,9 +50,10 @@
         /// <param name="info">信息</param>
         /// <param name="filename">文件名</param>
         /// <param name="exception">异常对象</param>
-        public static Task DebugAsync(string info, string? filename = null, Exception? exception = null, CancellationToken? token = null)
+        /// <param name="token">令牌</param>
+        public static Task DebugAsync(string info, string? filename = null, Exception? exception = null, bool consoleShow = true, CancellationToken? token = null)
         {
-            return Task.Run(() => Debug(info, filename, exception), token ?? CancellationToken.None);
+            return Task.Run(() => Debug(info, filename, exception, consoleShow), token ?? CancellationToken.None);
         }
 
         /// <summary>
@@ -57,9 +62,10 @@
         /// <param name="info">信息</param>
         /// <param name="filename">文件名</param>
         /// <param name="exception">异常对象</param>
-        public static void Info(string info, string? filename = null, Exception? exception = null)
+        /// <param name="consoleShow">控制台显示</param>
+        public static void Info(string info, string? filename = null, Exception? exception = null, bool consoleShow = true)
         {
-            logBase.Out(info, Serilog.Events.LogEventLevel.Information, filename, exception);
+            logBase.Out(info, Serilog.Events.LogEventLevel.Information, filename, exception, consoleShow);
         }
 
         /// <summary>
@@ -68,9 +74,11 @@
         /// <param name="info">信息</param>
         /// <param name="filename">文件名</param>
         /// <param name="exception">异常对象</param>
-        public static Task InfoAsync(string info, string? filename = null, Exception? exception = null, CancellationToken? token = null)
+        /// <param name="consoleShow">控制台显示</param>
+        /// <param name="token">令牌</param>
+        public static Task InfoAsync(string info, string? filename = null, Exception? exception = null, bool consoleShow = true, CancellationToken? token = null)
         {
-            return Task.Run(() => Info(info, filename, exception), token ?? CancellationToken.None);
+            return Task.Run(() => Info(info, filename, exception, consoleShow), token ?? CancellationToken.None);
         }
 
         /// <summary>
@@ -79,9 +87,10 @@
         /// <param name="info">信息</param>
         /// <param name="filename">文件名</param>
         /// <param name="exception">异常对象</param>
-        public static void Warning(string info, string? filename = null, Exception? exception = null)
+        /// <param name="consoleShow">控制台显示</param>
+        public static void Warning(string info, string? filename = null, Exception? exception = null, bool consoleShow = true)
         {
-            logBase.Out(info, Serilog.Events.LogEventLevel.Warning, filename, exception);
+            logBase.Out(info, Serilog.Events.LogEventLevel.Warning, filename, exception, consoleShow);
         }
 
         /// <summary>
@@ -90,9 +99,11 @@
         /// <param name="info">信息</param>
         /// <param name="filename">文件名</param>
         /// <param name="exception">异常对象</param>
-        public static Task WarningAsync(string info, string? filename = null, Exception? exception = null, CancellationToken? token = null)
+        /// <param name="consoleShow">控制台显示</param>
+        /// <param name="token">令牌</param>
+        public static Task WarningAsync(string info, string? filename = null, Exception? exception = null, bool consoleShow = true, CancellationToken? token = null)
         {
-            return Task.Run(() => Warning(info, filename, exception), token ?? CancellationToken.None);
+            return Task.Run(() => Warning(info, filename, exception, consoleShow), token ?? CancellationToken.None);
         }
 
         /// <summary>
@@ -101,9 +112,10 @@
         /// <param name="info">信息</param>
         /// <param name="filename">文件名</param>
         /// <param name="exception">异常对象</param>
-        public static void Error(string info, string? filename = null, Exception? exception = null)
+        /// <param name="consoleShow">控制台显示</param>
+        public static void Error(string info, string? filename = null, Exception? exception = null, bool consoleShow = true)
         {
-            logBase.Out(info, Serilog.Events.LogEventLevel.Error, filename, exception);
+            logBase.Out(info, Serilog.Events.LogEventLevel.Error, filename, exception, consoleShow);
         }
 
         /// <summary>
@@ -112,9 +124,11 @@
         /// <param name="info">信息</param>
         /// <param name="filename">文件名</param>
         /// <param name="exception">异常对象</param>
-        public static Task ErrorAsync(string info, string? filename = null, Exception? exception = null, CancellationToken? token = null)
+        /// <param name="consoleShow">控制台显示</param>
+        /// <param name="token">令牌</param>
+        public static Task ErrorAsync(string info, string? filename = null, Exception? exception = null, bool consoleShow = true, CancellationToken? token = null)
         {
-            return Task.Run(() => Error(info, filename, exception), token ?? CancellationToken.None);
+            return Task.Run(() => Error(info, filename, exception, consoleShow), token ?? CancellationToken.None);
         }
 
         /// <summary>
@@ -123,9 +137,10 @@
         /// <param name="info">信息</param>
         /// <param name="filename">文件名</param>
         /// <param name="exception">异常对象</param>
-        public static void Fatal(string info, string? filename = null, Exception? exception = null)
+        /// <param name="consoleShow">控制台显示</param>
+        public static void Fatal(string info, string? filename = null, Exception? exception = null, bool consoleShow = true)
         {
-            logBase.Out(info, Serilog.Events.LogEventLevel.Fatal, filename, exception);
+            logBase.Out(info, Serilog.Events.LogEventLevel.Fatal, filename, exception, consoleShow);
         }
 
         /// <summary>
@@ -134,9 +149,11 @@
         /// <param name="info">信息</param>
         /// <param name="filename">文件名</param>
         /// <param name="exception">异常对象</param>
-        public static Task FatalAsync(string info, string? filename = null, Exception? exception = null, CancellationToken? token = null)
+        /// <param name="consoleShow">控制台显示</param>
+        /// <param name="token">令牌</param>
+        public static Task FatalAsync(string info, string? filename = null, Exception? exception = null, bool consoleShow = true, CancellationToken? token = null)
         {
-            return Task.Run(() => Fatal(info, filename, exception), token ?? CancellationToken.None);
+            return Task.Run(() => Fatal(info, filename, exception, consoleShow), token ?? CancellationToken.None);
         }
     }
 }

+ 1 - 1
src/YSAI.DAQ/YSAI.Log/YSAI.Log.csproj

@@ -5,7 +5,7 @@
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
 	<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-	<Version>1.0.0.10</Version>
+	<Version>1.0.0.11</Version>
 	<Authors>Shun</Authors>
     <Company>YSAI</Company>
     <Product>SCADA</Product>

+ 5 - 5
src/YSAI.DAQ/YSAI.Manage/param/YSAI.Beckhoff.Param.json

@@ -1,7 +1,7 @@
 {
-  "SN": "283913ab356440808910b219c08138ad",
-  "AmsNetID": "192.168.66.130.1.1",
-  "Port": 851,
-  "TaskNumber": 5,
-  "TaskHandleInterval": 100
+    "SN": "407620F40D714E72A2D7F80259A4F465",
+    "AmsNetID": "192.168.66.130.1.1",
+    "Port": 851,
+    "TaskNumber": 5,
+    "TaskHandleInterval": 100
 }

+ 35 - 35
src/YSAI.DAQ/YSAI.Manage/param/YSAI.Beckhoff.ParamDetails.json

@@ -1,37 +1,37 @@
 [
-  {
-    "Name": "SN",
-    "Describe": "唯一标识符",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "AmsNetID",
-    "Describe": "设备的网络ID",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "Port",
-    "Describe": "端口",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "TaskNumber",
-    "Describe": "任务数量",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "TaskHandleInterval",
-    "Describe": "任务处理间隔(毫秒)",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  }
+    {
+        "Name": "SN",
+        "Describe": "唯一标识符",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "AmsNetID",
+        "Describe": "设备的网络ID",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "Port",
+        "Describe": "端口",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "TaskNumber",
+        "Describe": "任务数量",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "TaskHandleInterval",
+        "Describe": "任务处理间隔(毫秒)",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    }
 ]

+ 8 - 8
src/YSAI.DAQ/YSAI.Manage/param/YSAI.Can.Param.json

@@ -1,10 +1,10 @@
 {
-  "SN": "b2c26336fdd04d54a169c73ab9fde693",
-  "BaudRate": 0,
-  "CanChannel": 0,
-  "HandleInterval": 1000,
-  "ChangeOut": true,
-  "AllOut": false,
-  "TaskNumber": 5,
-  "TaskHandleInterval": 100
+    "SN": "0D71CCD29D404B7A9BE32EF364EB8868",
+    "BaudRate": 0,
+    "CanChannel": 0,
+    "HandleInterval": 1000,
+    "ChangeOut": true,
+    "AllOut": false,
+    "TaskNumber": 5,
+    "TaskHandleInterval": 100
 }

+ 137 - 137
src/YSAI.DAQ/YSAI.Manage/param/YSAI.Can.ParamDetails.json

@@ -1,139 +1,139 @@
 [
-  {
-    "Name": "SN",
-    "Describe": "唯一标识符",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "BaudRate",
-    "Describe": "波特率",
-    "ParamType": "Enum",
-    "EnumArray": [
-      {
-        "Value": -1,
-        "Name": "canBITRATE_1M",
-        "Describe": ""
-      },
-      {
-        "Value": -2,
-        "Name": "canBITRATE_500K",
-        "Describe": ""
-      },
-      {
-        "Value": -3,
-        "Name": "canBITRATE_250K",
-        "Describe": ""
-      },
-      {
-        "Value": -4,
-        "Name": "canBITRATE_125K",
-        "Describe": ""
-      },
-      {
-        "Value": -5,
-        "Name": "canBITRATE_100K",
-        "Describe": ""
-      },
-      {
-        "Value": -6,
-        "Name": "canBITRATE_62K",
-        "Describe": ""
-      },
-      {
-        "Value": -7,
-        "Name": "canBITRATE_50K",
-        "Describe": ""
-      },
-      {
-        "Value": -8,
-        "Name": "canBITRATE_83K",
-        "Describe": ""
-      },
-      {
-        "Value": -9,
-        "Name": "canBITRATE_10K",
-        "Describe": ""
-      },
-      {
-        "Value": -1000,
-        "Name": "canFD_BITRATE_500K_80P",
-        "Describe": ""
-      },
-      {
-        "Value": -1001,
-        "Name": "canFD_BITRATE_1M_80P",
-        "Describe": ""
-      },
-      {
-        "Value": -1002,
-        "Name": "canFD_BITRATE_2M_80P",
-        "Describe": ""
-      },
-      {
-        "Value": -1007,
-        "Name": "canFD_BITRATE_2M_60P",
-        "Describe": ""
-      },
-      {
-        "Value": -1003,
-        "Name": "canFD_BITRATE_4M_80P",
-        "Describe": ""
-      },
-      {
-        "Value": -1004,
-        "Name": "canFD_BITRATE_8M_60P",
-        "Describe": ""
-      },
-      {
-        "Value": -1005,
-        "Name": "canFD_BITRATE_8M_80P",
-        "Describe": ""
-      }
-    ],
-    "ObjArray": null
-  },
-  {
-    "Name": "CanChannel",
-    "Describe": "CAN通道",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "HandleInterval",
-    "Describe": "处理间隔(毫秒)",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "ChangeOut",
-    "Describe": "变化抛出",
-    "ParamType": "Boolean",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "AllOut",
-    "Describe": "未变项与变化项一同抛出",
-    "ParamType": "Boolean",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "TaskNumber",
-    "Describe": "任务数量",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "TaskHandleInterval",
-    "Describe": "任务处理间隔(毫秒)",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  }
+    {
+        "Name": "SN",
+        "Describe": "唯一标识符",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "BaudRate",
+        "Describe": "波特率",
+        "ParamType": "Enum",
+        "EnumArray": [
+            {
+                "Value": -1,
+                "Name": "canBITRATE_1M",
+                "Describe": ""
+            },
+            {
+                "Value": -2,
+                "Name": "canBITRATE_500K",
+                "Describe": ""
+            },
+            {
+                "Value": -3,
+                "Name": "canBITRATE_250K",
+                "Describe": ""
+            },
+            {
+                "Value": -4,
+                "Name": "canBITRATE_125K",
+                "Describe": ""
+            },
+            {
+                "Value": -5,
+                "Name": "canBITRATE_100K",
+                "Describe": ""
+            },
+            {
+                "Value": -6,
+                "Name": "canBITRATE_62K",
+                "Describe": ""
+            },
+            {
+                "Value": -7,
+                "Name": "canBITRATE_50K",
+                "Describe": ""
+            },
+            {
+                "Value": -8,
+                "Name": "canBITRATE_83K",
+                "Describe": ""
+            },
+            {
+                "Value": -9,
+                "Name": "canBITRATE_10K",
+                "Describe": ""
+            },
+            {
+                "Value": -1000,
+                "Name": "canFD_BITRATE_500K_80P",
+                "Describe": ""
+            },
+            {
+                "Value": -1001,
+                "Name": "canFD_BITRATE_1M_80P",
+                "Describe": ""
+            },
+            {
+                "Value": -1002,
+                "Name": "canFD_BITRATE_2M_80P",
+                "Describe": ""
+            },
+            {
+                "Value": -1007,
+                "Name": "canFD_BITRATE_2M_60P",
+                "Describe": ""
+            },
+            {
+                "Value": -1003,
+                "Name": "canFD_BITRATE_4M_80P",
+                "Describe": ""
+            },
+            {
+                "Value": -1004,
+                "Name": "canFD_BITRATE_8M_60P",
+                "Describe": ""
+            },
+            {
+                "Value": -1005,
+                "Name": "canFD_BITRATE_8M_80P",
+                "Describe": ""
+            }
+        ],
+        "ObjArray": null
+    },
+    {
+        "Name": "CanChannel",
+        "Describe": "CAN通道",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "HandleInterval",
+        "Describe": "处理间隔(毫秒)",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "ChangeOut",
+        "Describe": "变化抛出",
+        "ParamType": "Boolean",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "AllOut",
+        "Describe": "未变项与变化项一同抛出",
+        "ParamType": "Boolean",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "TaskNumber",
+        "Describe": "任务数量",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "TaskHandleInterval",
+        "Describe": "任务处理间隔(毫秒)",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    }
 ]

+ 8 - 8
src/YSAI.DAQ/YSAI.Manage/param/YSAI.DB.Param.json

@@ -1,10 +1,10 @@
 {
-  "SN": "2cb869601cec4ee1b18de3c92c6ee44a",
-  "ConnectStr": null,
-  "DBType": "SqlServer",
-  "HandleInterval": 1000,
-  "ChangeOut": true,
-  "AllOut": false,
-  "TaskNumber": 5,
-  "TaskHandleInterval": 100
+    "SN": "4B42DEB8D4FE4C48960719614D11D55B",
+    "ConnectStr": null,
+    "DBType": "SqlServer",
+    "HandleInterval": 1000,
+    "ChangeOut": true,
+    "AllOut": false,
+    "TaskNumber": 5,
+    "TaskHandleInterval": 100
 }

+ 77 - 77
src/YSAI.DAQ/YSAI.Manage/param/YSAI.DB.ParamDetails.json

@@ -1,79 +1,79 @@
 [
-  {
-    "Name": "SN",
-    "Describe": "唯一标识符",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "ConnectStr",
-    "Describe": "数据库连接字符串",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "DBType",
-    "Describe": "数据库类型",
-    "ParamType": "Enum",
-    "EnumArray": [
-      {
-        "Value": 0,
-        "Name": "SqlServer",
-        "Describe": ""
-      },
-      {
-        "Value": 1,
-        "Name": "MySql",
-        "Describe": ""
-      },
-      {
-        "Value": 2,
-        "Name": "Oracle",
-        "Describe": ""
-      },
-      {
-        "Value": 3,
-        "Name": "SQLite",
-        "Describe": ""
-      }
-    ],
-    "ObjArray": null
-  },
-  {
-    "Name": "HandleInterval",
-    "Describe": "处理间隔(毫秒)",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "ChangeOut",
-    "Describe": "变化抛出",
-    "ParamType": "Boolean",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "AllOut",
-    "Describe": "未变项与变化项一同抛出",
-    "ParamType": "Boolean",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "TaskNumber",
-    "Describe": "任务数量",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "TaskHandleInterval",
-    "Describe": "任务处理间隔(毫秒)",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  }
+    {
+        "Name": "SN",
+        "Describe": "唯一标识符",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "ConnectStr",
+        "Describe": "数据库连接字符串",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "DBType",
+        "Describe": "数据库类型",
+        "ParamType": "Enum",
+        "EnumArray": [
+            {
+                "Value": 0,
+                "Name": "SqlServer",
+                "Describe": ""
+            },
+            {
+                "Value": 1,
+                "Name": "MySql",
+                "Describe": ""
+            },
+            {
+                "Value": 2,
+                "Name": "Oracle",
+                "Describe": ""
+            },
+            {
+                "Value": 3,
+                "Name": "SQLite",
+                "Describe": ""
+            }
+        ],
+        "ObjArray": null
+    },
+    {
+        "Name": "HandleInterval",
+        "Describe": "处理间隔(毫秒)",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "ChangeOut",
+        "Describe": "变化抛出",
+        "ParamType": "Boolean",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "AllOut",
+        "Describe": "未变项与变化项一同抛出",
+        "ParamType": "Boolean",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "TaskNumber",
+        "Describe": "任务数量",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "TaskHandleInterval",
+        "Describe": "任务处理间隔(毫秒)",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    }
 ]

+ 5 - 5
src/YSAI.DAQ/YSAI.Manage/param/YSAI.Kafka.Param.json

@@ -1,7 +1,7 @@
 {
-  "SN": "555bac07ec2e4dafbde3fc604032225c",
-  "BootstrapServers": null,
-  "WaitTime": 1000,
-  "SecurityProtocol": "Plaintext",
-  "AutoOffsetReset": "Latest"
+    "SN": "3DB09D41C3F54AAA9AAA74D32B91F842",
+    "BootstrapServers": null,
+    "WaitTime": 1000,
+    "SecurityProtocol": "Plaintext",
+    "AutoOffsetReset": "Latest"
 }

+ 72 - 72
src/YSAI.DAQ/YSAI.Manage/param/YSAI.Kafka.ParamDetails.json

@@ -1,74 +1,74 @@
 [
-  {
-    "Name": "SN",
-    "Describe": "唯一标识符",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "BootstrapServers",
-    "Describe": "服务器地址",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "WaitTime",
-    "Describe": "等待时间",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "SecurityProtocol",
-    "Describe": "安全协议",
-    "ParamType": "Enum",
-    "EnumArray": [
-      {
-        "Value": 0,
-        "Name": "Plaintext",
-        "Describe": ""
-      },
-      {
-        "Value": 1,
-        "Name": "Ssl",
-        "Describe": ""
-      },
-      {
-        "Value": 2,
-        "Name": "SaslPlaintext",
-        "Describe": ""
-      },
-      {
-        "Value": 3,
-        "Name": "SaslSsl",
-        "Describe": ""
-      }
-    ],
-    "ObjArray": null
-  },
-  {
-    "Name": "AutoOffsetReset",
-    "Describe": "自动偏移复位",
-    "ParamType": "Enum",
-    "EnumArray": [
-      {
-        "Value": 0,
-        "Name": "Latest",
-        "Describe": ""
-      },
-      {
-        "Value": 1,
-        "Name": "Earliest",
-        "Describe": ""
-      },
-      {
-        "Value": 2,
-        "Name": "Error",
-        "Describe": ""
-      }
-    ],
-    "ObjArray": null
-  }
+    {
+        "Name": "SN",
+        "Describe": "唯一标识符",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "BootstrapServers",
+        "Describe": "服务器地址",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "WaitTime",
+        "Describe": "等待时间",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "SecurityProtocol",
+        "Describe": "安全协议",
+        "ParamType": "Enum",
+        "EnumArray": [
+            {
+                "Value": 0,
+                "Name": "Plaintext",
+                "Describe": ""
+            },
+            {
+                "Value": 1,
+                "Name": "Ssl",
+                "Describe": ""
+            },
+            {
+                "Value": 2,
+                "Name": "SaslPlaintext",
+                "Describe": ""
+            },
+            {
+                "Value": 3,
+                "Name": "SaslSsl",
+                "Describe": ""
+            }
+        ],
+        "ObjArray": null
+    },
+    {
+        "Name": "AutoOffsetReset",
+        "Describe": "自动偏移复位",
+        "ParamType": "Enum",
+        "EnumArray": [
+            {
+                "Value": 0,
+                "Name": "Latest",
+                "Describe": ""
+            },
+            {
+                "Value": 1,
+                "Name": "Earliest",
+                "Describe": ""
+            },
+            {
+                "Value": 2,
+                "Name": "Error",
+                "Describe": ""
+            }
+        ],
+        "ObjArray": null
+    }
 ]

+ 20 - 20
src/YSAI.DAQ/YSAI.Manage/param/YSAI.Modbus.Param.json

@@ -1,22 +1,22 @@
 {
-  "SN": "a8ad02ee398d4093a9143ea53deddc0e",
-  "SlaveAddress": 1,
-  "ProtocolType": "Tcp",
-  "ReadTimeOut": 2000,
-  "WriteTimeOut": 2000,
-  "MRType": "NULL",
-  "MWType": "NULL",
-  "Ip": "127.0.0.1",
-  "Port": 502,
-  "ConnectTimeOut": 5000,
-  "PortName": null,
-  "BaudRate": 19200,
-  "ParityBit": "Even",
-  "DataBit": 8,
-  "StopBit": "One",
-  "HandleInterval": 1000,
-  "ChangeOut": true,
-  "AllOut": false,
-  "TaskNumber": 5,
-  "TaskHandleInterval": 100
+    "SN": "A834768D27DC495DB7BF79C2D0F7B821",
+    "SlaveAddress": 1,
+    "ProtocolType": "Tcp",
+    "ReadTimeOut": 2000,
+    "WriteTimeOut": 2000,
+    "MRType": "NULL",
+    "MWType": "NULL",
+    "Ip": "127.0.0.1",
+    "Port": 502,
+    "ConnectTimeOut": 5000,
+    "PortName": null,
+    "BaudRate": 19200,
+    "ParityBit": "Even",
+    "DataBit": 8,
+    "StopBit": "One",
+    "HandleInterval": 1000,
+    "ChangeOut": true,
+    "AllOut": false,
+    "TaskNumber": 5,
+    "TaskHandleInterval": 100
 }

+ 325 - 325
src/YSAI.DAQ/YSAI.Manage/param/YSAI.Modbus.ParamDetails.json

@@ -1,327 +1,327 @@
 [
-  {
-    "Name": "SN",
-    "Describe": "唯一标识符",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "SlaveAddress",
-    "Describe": "寄存器地址",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "ProtocolType",
-    "Describe": "协议类型",
-    "ParamType": "Enum",
-    "EnumArray": [
-      {
-        "Value": 0,
-        "Name": "Rtu",
-        "Describe": ""
-      },
-      {
-        "Value": 1,
-        "Name": "Ascii",
-        "Describe": ""
-      },
-      {
-        "Value": 2,
-        "Name": "Tcp",
-        "Describe": ""
-      },
-      {
-        "Value": 3,
-        "Name": "Udp",
-        "Describe": ""
-      }
-    ],
-    "ObjArray": null
-  },
-  {
-    "Name": "ReadTimeOut",
-    "Describe": "读取超时时间",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "WriteTimeOut",
-    "Describe": "写入超时时间",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "MRType",
-    "Describe": "读取类型",
-    "ParamType": "Enum",
-    "EnumArray": [
-      {
-        "Value": 0,
-        "Name": "Coils",
-        "Describe": "读取从1到2000个连续线圈状态"
-      },
-      {
-        "Value": 1,
-        "Name": "Inputs",
-        "Describe": "读取从1到2000个连续离散输入状态"
-      },
-      {
-        "Value": 2,
-        "Name": "HoldingRegisters",
-        "Describe": "读取保持寄存器的连续块"
-      },
-      {
-        "Value": 3,
-        "Name": "InputRegisters",
-        "Describe": "读取输入寄存器的连续块"
-      },
-      {
-        "Value": 4,
-        "Name": "CharHoldingRegisters",
-        "Describe": "读取寄存器并将结果转换为字符数组"
-      },
-      {
-        "Value": 5,
-        "Name": "UshortHoldingRegisters",
-        "Describe": "读取寄存器并将结果转换为短数组"
-      },
-      {
-        "Value": 6,
-        "Name": "ShortHoldingRegisters",
-        "Describe": "读取寄存器并将结果转换为短数组"
-      },
-      {
-        "Value": 7,
-        "Name": "UintHoldingRegisters",
-        "Describe": "读取寄存器并将结果转换为int数组"
-      },
-      {
-        "Value": 8,
-        "Name": "IntHoldingRegisters",
-        "Describe": "读取寄存器并将结果转换为int数组"
-      },
-      {
-        "Value": 9,
-        "Name": "FloatHoldingRegisters",
-        "Describe": "读取寄存器并将结果转换为浮点数组"
-      },
-      {
-        "Value": 10,
-        "Name": "FloatInputRegisters",
-        "Describe": "读取寄存器并将结果转换为浮点"
-      },
-      {
-        "Value": 11,
-        "Name": "NULL",
-        "Describe": "空"
-      }
-    ],
-    "ObjArray": null
-  },
-  {
-    "Name": "MWType",
-    "Describe": "写入类型",
-    "ParamType": "Enum",
-    "EnumArray": [
-      {
-        "Value": 0,
-        "Name": "SingleCoil",
-        "Describe": "写入单线圈值"
-      },
-      {
-        "Value": 1,
-        "Name": "SingleRegister",
-        "Describe": "写入单个保持寄存器"
-      },
-      {
-        "Value": 2,
-        "Name": "MultipleRegisters",
-        "Describe": "将1块写入123个连续寄存器"
-      },
-      {
-        "Value": 3,
-        "Name": "MultipleCoils",
-        "Describe": "写入线圈序列"
-      },
-      {
-        "Value": 4,
-        "Name": "CharHoldingRegisters",
-        "Describe": "读取寄存器并将结果转换为字符数组"
-      },
-      {
-        "Value": 5,
-        "Name": "UshortHoldingRegisters",
-        "Describe": "读取寄存器并将结果转换为短数组"
-      },
-      {
-        "Value": 6,
-        "Name": "ShortHoldingRegisters",
-        "Describe": "读取寄存器并将结果转换为短数组"
-      },
-      {
-        "Value": 7,
-        "Name": "UintHoldingRegisters",
-        "Describe": "读取寄存器并将结果转换为int数组"
-      },
-      {
-        "Value": 8,
-        "Name": "IntHoldingRegisters",
-        "Describe": "读取寄存器并将结果转换为int数组"
-      },
-      {
-        "Value": 9,
-        "Name": "FloatHoldingRegisters",
-        "Describe": "读取寄存器并将结果转换为浮点数组"
-      },
-      {
-        "Value": 10,
-        "Name": "NULL",
-        "Describe": "空"
-      }
-    ],
-    "ObjArray": null
-  },
-  {
-    "Name": "Ip",
-    "Describe": "IP",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "Port",
-    "Describe": "端口",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "ConnectTimeOut",
-    "Describe": "连接超时时间",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "PortName",
-    "Describe": "串口号",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "BaudRate",
-    "Describe": "波特率",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "ParityBit",
-    "Describe": "校验位",
-    "ParamType": "Enum",
-    "EnumArray": [
-      {
-        "Value": 0,
-        "Name": "None",
-        "Describe": ""
-      },
-      {
-        "Value": 1,
-        "Name": "Odd",
-        "Describe": ""
-      },
-      {
-        "Value": 2,
-        "Name": "Even",
-        "Describe": ""
-      },
-      {
-        "Value": 3,
-        "Name": "Mark",
-        "Describe": ""
-      },
-      {
-        "Value": 4,
-        "Name": "Space",
-        "Describe": ""
-      }
-    ],
-    "ObjArray": null
-  },
-  {
-    "Name": "DataBit",
-    "Describe": "数据位",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "StopBit",
-    "Describe": "停止位",
-    "ParamType": "Enum",
-    "EnumArray": [
-      {
-        "Value": 0,
-        "Name": "None",
-        "Describe": ""
-      },
-      {
-        "Value": 1,
-        "Name": "One",
-        "Describe": ""
-      },
-      {
-        "Value": 2,
-        "Name": "Two",
-        "Describe": ""
-      },
-      {
-        "Value": 3,
-        "Name": "OnePointFive",
-        "Describe": ""
-      }
-    ],
-    "ObjArray": null
-  },
-  {
-    "Name": "HandleInterval",
-    "Describe": "处理间隔(毫秒)",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "ChangeOut",
-    "Describe": "变化抛出",
-    "ParamType": "Boolean",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "AllOut",
-    "Describe": "未变项与变化项一同抛出",
-    "ParamType": "Boolean",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "TaskNumber",
-    "Describe": "任务数量",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "TaskHandleInterval",
-    "Describe": "任务处理间隔(毫秒)",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  }
+    {
+        "Name": "SN",
+        "Describe": "唯一标识符",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "SlaveAddress",
+        "Describe": "寄存器地址",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "ProtocolType",
+        "Describe": "协议类型",
+        "ParamType": "Enum",
+        "EnumArray": [
+            {
+                "Value": 0,
+                "Name": "Rtu",
+                "Describe": ""
+            },
+            {
+                "Value": 1,
+                "Name": "Ascii",
+                "Describe": ""
+            },
+            {
+                "Value": 2,
+                "Name": "Tcp",
+                "Describe": ""
+            },
+            {
+                "Value": 3,
+                "Name": "Udp",
+                "Describe": ""
+            }
+        ],
+        "ObjArray": null
+    },
+    {
+        "Name": "ReadTimeOut",
+        "Describe": "读取超时时间",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "WriteTimeOut",
+        "Describe": "写入超时时间",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "MRType",
+        "Describe": "读取类型",
+        "ParamType": "Enum",
+        "EnumArray": [
+            {
+                "Value": 0,
+                "Name": "Coils",
+                "Describe": "读取从1到2000个连续线圈状态"
+            },
+            {
+                "Value": 1,
+                "Name": "Inputs",
+                "Describe": "读取从1到2000个连续离散输入状态"
+            },
+            {
+                "Value": 2,
+                "Name": "HoldingRegisters",
+                "Describe": "读取保持寄存器的连续块"
+            },
+            {
+                "Value": 3,
+                "Name": "InputRegisters",
+                "Describe": "读取输入寄存器的连续块"
+            },
+            {
+                "Value": 4,
+                "Name": "CharHoldingRegisters",
+                "Describe": "读取寄存器并将结果转换为字符数组"
+            },
+            {
+                "Value": 5,
+                "Name": "UshortHoldingRegisters",
+                "Describe": "读取寄存器并将结果转换为短数组"
+            },
+            {
+                "Value": 6,
+                "Name": "ShortHoldingRegisters",
+                "Describe": "读取寄存器并将结果转换为短数组"
+            },
+            {
+                "Value": 7,
+                "Name": "UintHoldingRegisters",
+                "Describe": "读取寄存器并将结果转换为int数组"
+            },
+            {
+                "Value": 8,
+                "Name": "IntHoldingRegisters",
+                "Describe": "读取寄存器并将结果转换为int数组"
+            },
+            {
+                "Value": 9,
+                "Name": "FloatHoldingRegisters",
+                "Describe": "读取寄存器并将结果转换为浮点数组"
+            },
+            {
+                "Value": 10,
+                "Name": "FloatInputRegisters",
+                "Describe": "读取寄存器并将结果转换为浮点"
+            },
+            {
+                "Value": 11,
+                "Name": "NULL",
+                "Describe": "空"
+            }
+        ],
+        "ObjArray": null
+    },
+    {
+        "Name": "MWType",
+        "Describe": "写入类型",
+        "ParamType": "Enum",
+        "EnumArray": [
+            {
+                "Value": 0,
+                "Name": "SingleCoil",
+                "Describe": "写入单线圈值"
+            },
+            {
+                "Value": 1,
+                "Name": "SingleRegister",
+                "Describe": "写入单个保持寄存器"
+            },
+            {
+                "Value": 2,
+                "Name": "MultipleRegisters",
+                "Describe": "将1块写入123个连续寄存器"
+            },
+            {
+                "Value": 3,
+                "Name": "MultipleCoils",
+                "Describe": "写入线圈序列"
+            },
+            {
+                "Value": 4,
+                "Name": "CharHoldingRegisters",
+                "Describe": "读取寄存器并将结果转换为字符数组"
+            },
+            {
+                "Value": 5,
+                "Name": "UshortHoldingRegisters",
+                "Describe": "读取寄存器并将结果转换为短数组"
+            },
+            {
+                "Value": 6,
+                "Name": "ShortHoldingRegisters",
+                "Describe": "读取寄存器并将结果转换为短数组"
+            },
+            {
+                "Value": 7,
+                "Name": "UintHoldingRegisters",
+                "Describe": "读取寄存器并将结果转换为int数组"
+            },
+            {
+                "Value": 8,
+                "Name": "IntHoldingRegisters",
+                "Describe": "读取寄存器并将结果转换为int数组"
+            },
+            {
+                "Value": 9,
+                "Name": "FloatHoldingRegisters",
+                "Describe": "读取寄存器并将结果转换为浮点数组"
+            },
+            {
+                "Value": 10,
+                "Name": "NULL",
+                "Describe": "空"
+            }
+        ],
+        "ObjArray": null
+    },
+    {
+        "Name": "Ip",
+        "Describe": "IP",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "Port",
+        "Describe": "端口",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "ConnectTimeOut",
+        "Describe": "连接超时时间",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "PortName",
+        "Describe": "串口号",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "BaudRate",
+        "Describe": "波特率",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "ParityBit",
+        "Describe": "校验位",
+        "ParamType": "Enum",
+        "EnumArray": [
+            {
+                "Value": 0,
+                "Name": "None",
+                "Describe": ""
+            },
+            {
+                "Value": 1,
+                "Name": "Odd",
+                "Describe": ""
+            },
+            {
+                "Value": 2,
+                "Name": "Even",
+                "Describe": ""
+            },
+            {
+                "Value": 3,
+                "Name": "Mark",
+                "Describe": ""
+            },
+            {
+                "Value": 4,
+                "Name": "Space",
+                "Describe": ""
+            }
+        ],
+        "ObjArray": null
+    },
+    {
+        "Name": "DataBit",
+        "Describe": "数据位",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "StopBit",
+        "Describe": "停止位",
+        "ParamType": "Enum",
+        "EnumArray": [
+            {
+                "Value": 0,
+                "Name": "None",
+                "Describe": ""
+            },
+            {
+                "Value": 1,
+                "Name": "One",
+                "Describe": ""
+            },
+            {
+                "Value": 2,
+                "Name": "Two",
+                "Describe": ""
+            },
+            {
+                "Value": 3,
+                "Name": "OnePointFive",
+                "Describe": ""
+            }
+        ],
+        "ObjArray": null
+    },
+    {
+        "Name": "HandleInterval",
+        "Describe": "处理间隔(毫秒)",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "ChangeOut",
+        "Describe": "变化抛出",
+        "ParamType": "Boolean",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "AllOut",
+        "Describe": "未变项与变化项一同抛出",
+        "ParamType": "Boolean",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "TaskNumber",
+        "Describe": "任务数量",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "TaskHandleInterval",
+        "Describe": "任务处理间隔(毫秒)",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    }
 ]

+ 7 - 7
src/YSAI.DAQ/YSAI.Manage/param/YSAI.Mqtt.Param.json

@@ -1,9 +1,9 @@
 {
-  "SN": "0ba8c3109be046e18f9b212c90cf8702",
-  "Ip": null,
-  "Port": 0,
-  "UserName": null,
-  "Password": null,
-  "ClientID": null,
-  "QualityOfServiceLevel": "AtMostOnce"
+    "SN": "1E84CB58E61D45B4A5B4A7037F3B5987",
+    "Ip": null,
+    "Port": 0,
+    "UserName": null,
+    "Password": null,
+    "ClientID": null,
+    "QualityOfServiceLevel": "AtMostOnce"
 }

+ 65 - 65
src/YSAI.DAQ/YSAI.Manage/param/YSAI.Mqtt.ParamDetails.json

@@ -1,67 +1,67 @@
 [
-  {
-    "Name": "SN",
-    "Describe": "唯一标识符",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "Ip",
-    "Describe": "IP地址",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "Port",
-    "Describe": "端口",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "UserName",
-    "Describe": "用户名",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "Password",
-    "Describe": "密码",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "ClientID",
-    "Describe": "客户端ID",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "QualityOfServiceLevel",
-    "Describe": "QoS等级",
-    "ParamType": "Enum",
-    "EnumArray": [
-      {
-        "Value": 0,
-        "Name": "AtMostOnce",
-        "Describe": ""
-      },
-      {
-        "Value": 1,
-        "Name": "AtLeastOnce",
-        "Describe": ""
-      },
-      {
-        "Value": 2,
-        "Name": "ExactlyOnce",
-        "Describe": ""
-      }
-    ],
-    "ObjArray": null
-  }
+    {
+        "Name": "SN",
+        "Describe": "唯一标识符",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "Ip",
+        "Describe": "IP地址",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "Port",
+        "Describe": "端口",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "UserName",
+        "Describe": "用户名",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "Password",
+        "Describe": "密码",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "ClientID",
+        "Describe": "客户端ID",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "QualityOfServiceLevel",
+        "Describe": "QoS等级",
+        "ParamType": "Enum",
+        "EnumArray": [
+            {
+                "Value": 0,
+                "Name": "AtMostOnce",
+                "Describe": ""
+            },
+            {
+                "Value": 1,
+                "Name": "AtLeastOnce",
+                "Describe": ""
+            },
+            {
+                "Value": 2,
+                "Name": "ExactlyOnce",
+                "Describe": ""
+            }
+        ],
+        "ObjArray": null
+    }
 ]

+ 7 - 7
src/YSAI.DAQ/YSAI.Manage/param/YSAI.Netty.Param.json

@@ -1,9 +1,9 @@
 {
-  "SN": "4f9f68f7a76a4df8a2fa08c53fa72ce5",
-  "Host": null,
-  "Port": 0,
-  "SslFilePath": null,
-  "SslFilePassword": null,
-  "TaskNumber": 5,
-  "TaskHandleInterval": 100
+    "SN": "0E589994F99743CA94D4C2E254EAF515",
+    "Host": null,
+    "Port": 0,
+    "SslFilePath": null,
+    "SslFilePassword": null,
+    "TaskNumber": 5,
+    "TaskHandleInterval": 100
 }

+ 49 - 49
src/YSAI.DAQ/YSAI.Manage/param/YSAI.Netty.ParamDetails.json

@@ -1,51 +1,51 @@
 [
-  {
-    "Name": "SN",
-    "Describe": "唯一标识符",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "Host",
-    "Describe": "主机",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "Port",
-    "Describe": "端口",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "SslFilePath",
-    "Describe": "SSL文件路径",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "SslFilePassword",
-    "Describe": "SSL文件密码",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "TaskNumber",
-    "Describe": "任务数量",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "TaskHandleInterval",
-    "Describe": "任务处理间隔(毫秒)",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  }
+    {
+        "Name": "SN",
+        "Describe": "唯一标识符",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "Host",
+        "Describe": "主机",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "Port",
+        "Describe": "端口",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "SslFilePath",
+        "Describe": "SSL文件路径",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "SslFilePassword",
+        "Describe": "SSL文件密码",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "TaskNumber",
+        "Describe": "任务数量",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "TaskHandleInterval",
+        "Describe": "任务处理间隔(毫秒)",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    }
 ]

+ 7 - 6
src/YSAI.DAQ/YSAI.Manage/param/YSAI.OpcDa.Param.json

@@ -1,8 +1,9 @@
 {
-  "SN": "0d0df0d01d9b4992a44cfb666389bd71",
-  "SName": "Knight.OPC.Server.Demo",
-  "ApiVerType": "COM_DA_30",
-  "UpdateRate": 100,
-  "TaskNumber": 5,
-  "TaskHandleInterval": 100
+    "SubscribeSingleGroupMaxCount": -1,
+    "SN": "4E6B107681FC43789F3B1CEA399D4CBD",
+    "SName": "Knight.OPC.Server.Demo",
+    "ApiVerType": "COM_DA_30",
+    "UpdateRate": 100,
+    "TaskNumber": 5,
+    "TaskHandleInterval": 100
 }

+ 58 - 58
src/YSAI.DAQ/YSAI.Manage/param/YSAI.OpcDa.ParamDetails.json

@@ -1,60 +1,60 @@
 [
-  {
-    "Name": "SN",
-    "Describe": "唯一标识符",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "SName",
-    "Describe": "服务名",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "ApiVerType",
-    "Describe": "接口版本",
-    "ParamType": "Enum",
-    "EnumArray": [
-      {
-        "Value": 0,
-        "Name": "COM_DA_10",
-        "Describe": "1.x api"
-      },
-      {
-        "Value": 1,
-        "Name": "COM_DA_20",
-        "Describe": "2.x api"
-      },
-      {
-        "Value": 2,
-        "Name": "COM_DA_30",
-        "Describe": "3.x api"
-      }
-    ],
-    "ObjArray": null
-  },
-  {
-    "Name": "UpdateRate",
-    "Describe": "更新频率",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "TaskNumber",
-    "Describe": "任务数量",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "TaskHandleInterval",
-    "Describe": "任务处理间隔(毫秒)",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  }
+    {
+        "Name": "SN",
+        "Describe": "唯一标识符",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "SName",
+        "Describe": "服务名",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "ApiVerType",
+        "Describe": "接口版本",
+        "ParamType": "Enum",
+        "EnumArray": [
+            {
+                "Value": 0,
+                "Name": "COM_DA_10",
+                "Describe": "1.x api"
+            },
+            {
+                "Value": 1,
+                "Name": "COM_DA_20",
+                "Describe": "2.x api"
+            },
+            {
+                "Value": 2,
+                "Name": "COM_DA_30",
+                "Describe": "3.x api"
+            }
+        ],
+        "ObjArray": null
+    },
+    {
+        "Name": "UpdateRate",
+        "Describe": "更新频率",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "TaskNumber",
+        "Describe": "任务数量",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "TaskHandleInterval",
+        "Describe": "任务处理间隔(毫秒)",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    }
 ]

+ 10 - 10
src/YSAI.DAQ/YSAI.Manage/param/YSAI.OpcDaHttp.Param.json

@@ -1,12 +1,12 @@
 {
-  "SN": "8b043a71ed964b2a9bfbcdd4fbc9ab9b",
-  "Ip": "127.0.0.1",
-  "Port": 6688,
-  "Key": null,
-  "RequestType": "http",
-  "HandleInterval": 1000,
-  "ChangeOut": true,
-  "AllOut": false,
-  "TaskNumber": 5,
-  "TaskHandleInterval": 100
+    "SN": "FCAA265E134F474480570D9C243A8B8D",
+    "Ip": "127.0.0.1",
+    "Port": 6688,
+    "Key": null,
+    "RequestType": "http",
+    "HandleInterval": 1000,
+    "ChangeOut": true,
+    "AllOut": false,
+    "TaskNumber": 5,
+    "TaskHandleInterval": 100
 }

+ 81 - 81
src/YSAI.DAQ/YSAI.Manage/param/YSAI.OpcDaHttp.ParamDetails.json

@@ -1,83 +1,83 @@
 [
-  {
-    "Name": "SN",
-    "Describe": "唯一标识",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "Ip",
-    "Describe": "服务地址",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "Port",
-    "Describe": "端口",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "Key",
-    "Describe": "解密密钥",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "RequestType",
-    "Describe": "请求类型",
-    "ParamType": "Enum",
-    "EnumArray": [
-      {
-        "Value": 0,
-        "Name": "http",
-        "Describe": ""
-      },
-      {
-        "Value": 1,
-        "Name": "https",
-        "Describe": ""
-      }
-    ],
-    "ObjArray": null
-  },
-  {
-    "Name": "HandleInterval",
-    "Describe": "处理间隔(毫秒)",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "ChangeOut",
-    "Describe": "变化抛出",
-    "ParamType": "Boolean",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "AllOut",
-    "Describe": "未变项与变化项一同抛出",
-    "ParamType": "Boolean",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "TaskNumber",
-    "Describe": "任务数量",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "TaskHandleInterval",
-    "Describe": "任务处理间隔(毫秒)",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  }
+    {
+        "Name": "SN",
+        "Describe": "唯一标识",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "Ip",
+        "Describe": "服务地址",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "Port",
+        "Describe": "端口",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "Key",
+        "Describe": "解密密钥",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "RequestType",
+        "Describe": "请求类型",
+        "ParamType": "Enum",
+        "EnumArray": [
+            {
+                "Value": 0,
+                "Name": "http",
+                "Describe": ""
+            },
+            {
+                "Value": 1,
+                "Name": "https",
+                "Describe": ""
+            }
+        ],
+        "ObjArray": null
+    },
+    {
+        "Name": "HandleInterval",
+        "Describe": "处理间隔(毫秒)",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "ChangeOut",
+        "Describe": "变化抛出",
+        "ParamType": "Boolean",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "AllOut",
+        "Describe": "未变项与变化项一同抛出",
+        "ParamType": "Boolean",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "TaskNumber",
+        "Describe": "任务数量",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "TaskHandleInterval",
+        "Describe": "任务处理间隔(毫秒)",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    }
 ]

+ 16 - 12
src/YSAI.DAQ/YSAI.Manage/param/YSAI.OpcUa.Param.json

@@ -1,14 +1,18 @@
 {
-  "SN": "dbb72ce84d9e4118a08fde68eddd54f4",
-  "UserName": null,
-  "Password": null,
-  "Cer": null,
-  "SecreKey": null,
-  "ServerUrl": null,
-  "CustomName": "73E9D2982FFC43C6A4E69F2A40FEF735",
-  "Timeout": 5000,
-  "SamplingInterval": 100,
-  "PublishingInterval": 1000,
-  "TaskNumber": 5,
-  "TaskHandleInterval": 100
+    "SubscribeSingleGroupMaxCount": -1,
+    "SN": "BB15C12846B9441DA56C3CF8D73C6FA5",
+    "UserName": null,
+    "Password": null,
+    "Cer": null,
+    "SecreKey": null,
+    "ServerUrl": null,
+    "CustomName": "b384b003dba145a2be74acc90fb0518f",
+    "Timeout": 5000,
+    "SamplingInterval": 100,
+    "PublishingInterval": 1000,
+    "KeepAliveCount": 261120,
+    "LifetimeCount": 783360,
+    "QueueSize": 65536,
+    "TaskNumber": 5,
+    "TaskHandleInterval": 100
 }

+ 105 - 84
src/YSAI.DAQ/YSAI.Manage/param/YSAI.OpcUa.ParamDetails.json

@@ -1,86 +1,107 @@
 [
-  {
-    "Name": "SN",
-    "Describe": "唯一标识符",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "UserName",
-    "Describe": "用户名",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "Password",
-    "Describe": "密码",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "Cer",
-    "Describe": "证书路径",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "SecreKey",
-    "Describe": "密钥",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "ServerUrl",
-    "Describe": "服务地址",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "CustomName",
-    "Describe": "自定义名称(唯一)",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "Timeout",
-    "Describe": "超时时间",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "SamplingInterval",
-    "Describe": "取样时间间隔",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "PublishingInterval",
-    "Describe": "发布时间间隔",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "TaskNumber",
-    "Describe": "任务数量",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "TaskHandleInterval",
-    "Describe": "任务处理间隔(毫秒)",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  }
+    {
+        "Name": "SN",
+        "Describe": "唯一标识符",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "UserName",
+        "Describe": "用户名",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "Password",
+        "Describe": "密码",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "Cer",
+        "Describe": "证书路径",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "SecreKey",
+        "Describe": "密钥",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "ServerUrl",
+        "Describe": "服务地址",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "CustomName",
+        "Describe": "自定义名称(唯一)",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "Timeout",
+        "Describe": "超时时间",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "SamplingInterval",
+        "Describe": "取样时间间隔",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "PublishingInterval",
+        "Describe": "发布时间间隔",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "KeepAliveCount",
+        "Describe": "保活计数",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "LifetimeCount",
+        "Describe": "寿命计数",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "QueueSize",
+        "Describe": "队列大小",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "TaskNumber",
+        "Describe": "任务数量",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "TaskHandleInterval",
+        "Describe": "任务处理间隔(毫秒)",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    }
 ]

+ 6 - 6
src/YSAI.DAQ/YSAI.Manage/param/YSAI.RabbitMQ.Param.json

@@ -1,8 +1,8 @@
 {
-  "SN": "65ebe69644ea42a8b42e0d7aaa2562c6",
-  "ExChangeName": null,
-  "HostName": null,
-  "Port": 0,
-  "UserName": null,
-  "Password": null
+    "SN": "5FDBBA62344C45B1BC9EA1568A7B1375",
+    "ExChangeName": null,
+    "HostName": null,
+    "Port": 0,
+    "UserName": null,
+    "Password": null
 }

+ 42 - 42
src/YSAI.DAQ/YSAI.Manage/param/YSAI.RabbitMQ.ParamDetails.json

@@ -1,44 +1,44 @@
 [
-  {
-    "Name": "SN",
-    "Describe": "唯一标识符",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "ExChangeName",
-    "Describe": "交换机名称",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "HostName",
-    "Describe": "连接地址",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "Port",
-    "Describe": "端口",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "UserName",
-    "Describe": "用户名",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "Password",
-    "Describe": "密码",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  }
+    {
+        "Name": "SN",
+        "Describe": "唯一标识符",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "ExChangeName",
+        "Describe": "交换机名称",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "HostName",
+        "Describe": "连接地址",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "Port",
+        "Describe": "端口",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "UserName",
+        "Describe": "用户名",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "Password",
+        "Describe": "密码",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    }
 ]

+ 11 - 11
src/YSAI.DAQ/YSAI.Manage/param/YSAI.S7.Param.json

@@ -1,13 +1,13 @@
 {
-  "SN": "36961fd967384da196ee8df251f72175",
-  "Ip": null,
-  "Port": 0,
-  "S7CpuType": "S7200",
-  "Rack": 0,
-  "Slot": 0,
-  "HandleInterval": 1000,
-  "ChangeOut": true,
-  "AllOut": false,
-  "TaskNumber": 5,
-  "TaskHandleInterval": 100
+    "SN": "6EEF48C8C22140B8A854DB230AF74483",
+    "Ip": null,
+    "Port": 0,
+    "S7CpuType": "S7200",
+    "Rack": 0,
+    "Slot": 0,
+    "HandleInterval": 1000,
+    "ChangeOut": true,
+    "AllOut": false,
+    "TaskNumber": 5,
+    "TaskHandleInterval": 100
 }

+ 113 - 113
src/YSAI.DAQ/YSAI.Manage/param/YSAI.S7.ParamDetails.json

@@ -1,115 +1,115 @@
 [
-  {
-    "Name": "SN",
-    "Describe": "唯一标识符",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "Ip",
-    "Describe": "IP",
-    "ParamType": "String",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "Port",
-    "Describe": "端口",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "S7CpuType",
-    "Describe": "CPU类型",
-    "ParamType": "Enum",
-    "EnumArray": [
-      {
-        "Value": 0,
-        "Name": "S7200",
-        "Describe": ""
-      },
-      {
-        "Value": 1,
-        "Name": "Logo0BA8",
-        "Describe": ""
-      },
-      {
-        "Value": 2,
-        "Name": "S7200Smart",
-        "Describe": ""
-      },
-      {
-        "Value": 10,
-        "Name": "S7300",
-        "Describe": ""
-      },
-      {
-        "Value": 20,
-        "Name": "S7400",
-        "Describe": ""
-      },
-      {
-        "Value": 30,
-        "Name": "S71200",
-        "Describe": ""
-      },
-      {
-        "Value": 40,
-        "Name": "S71500",
-        "Describe": ""
-      }
-    ],
-    "ObjArray": null
-  },
-  {
-    "Name": "Rack",
-    "Describe": "PLC机架",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "Slot",
-    "Describe": "PLCCPU插槽",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "HandleInterval",
-    "Describe": "处理间隔(毫秒)",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "ChangeOut",
-    "Describe": "变化抛出",
-    "ParamType": "Boolean",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "AllOut",
-    "Describe": "未变项与变化项一同抛出",
-    "ParamType": "Boolean",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "TaskNumber",
-    "Describe": "任务数量",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  },
-  {
-    "Name": "TaskHandleInterval",
-    "Describe": "任务处理间隔(毫秒)",
-    "ParamType": "Int32",
-    "EnumArray": null,
-    "ObjArray": null
-  }
+    {
+        "Name": "SN",
+        "Describe": "唯一标识符",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "Ip",
+        "Describe": "IP",
+        "ParamType": "String",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "Port",
+        "Describe": "端口",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "S7CpuType",
+        "Describe": "CPU类型",
+        "ParamType": "Enum",
+        "EnumArray": [
+            {
+                "Value": 0,
+                "Name": "S7200",
+                "Describe": ""
+            },
+            {
+                "Value": 1,
+                "Name": "Logo0BA8",
+                "Describe": ""
+            },
+            {
+                "Value": 2,
+                "Name": "S7200Smart",
+                "Describe": ""
+            },
+            {
+                "Value": 10,
+                "Name": "S7300",
+                "Describe": ""
+            },
+            {
+                "Value": 20,
+                "Name": "S7400",
+                "Describe": ""
+            },
+            {
+                "Value": 30,
+                "Name": "S71200",
+                "Describe": ""
+            },
+            {
+                "Value": 40,
+                "Name": "S71500",
+                "Describe": ""
+            }
+        ],
+        "ObjArray": null
+    },
+    {
+        "Name": "Rack",
+        "Describe": "PLC机架",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "Slot",
+        "Describe": "PLCCPU插槽",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "HandleInterval",
+        "Describe": "处理间隔(毫秒)",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "ChangeOut",
+        "Describe": "变化抛出",
+        "ParamType": "Boolean",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "AllOut",
+        "Describe": "未变项与变化项一同抛出",
+        "ParamType": "Boolean",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "TaskNumber",
+        "Describe": "任务数量",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    },
+    {
+        "Name": "TaskHandleInterval",
+        "Describe": "任务处理间隔(毫秒)",
+        "ParamType": "Int32",
+        "EnumArray": null,
+        "ObjArray": null
+    }
 ]

+ 2 - 2
src/YSAI.DAQ/YSAI.Modbus/YSAI.Modbus.csproj

@@ -5,7 +5,7 @@
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
 	  <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-	  <Version>1.0.0.30</Version>
+	  <Version>1.0.0.31</Version>
 	  <Authors>Shun</Authors>
 	  <Company>YSAI</Company>
 	  <Product>SCADA</Product>
@@ -15,7 +15,7 @@
 	<ItemGroup>
     <PackageReference Include="NModbus" Version="3.0.81" />
     <PackageReference Include="NModbus.Serial" Version="3.0.81" />
-    <PackageReference Include="YSAI.Core" Version="1.0.0.69" />
+    <PackageReference Include="YSAI.Core" Version="1.0.0.70" />
   </ItemGroup>
 
 	<!--<ItemGroup>

+ 2 - 2
src/YSAI.DAQ/YSAI.Mqtt/YSAI.Mqtt.csproj

@@ -5,7 +5,7 @@
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
 	  <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-	  <Version>1.0.0.33</Version>
+	  <Version>1.0.0.34</Version>
 	  <Authors>Shun</Authors>
 	  <Company>YSAI</Company>
 	  <Product>SCADA</Product>
@@ -15,7 +15,7 @@
   <ItemGroup>
     <PackageReference Include="MQTTnet" Version="4.3.1.873" />
     <PackageReference Include="MQTTnet.AspNetCore" Version="4.3.1.873" />
-    <PackageReference Include="YSAI.Core" Version="1.0.0.69" />
+    <PackageReference Include="YSAI.Core" Version="1.0.0.70" />
   </ItemGroup>
 
 	<!--<ItemGroup>

+ 2 - 2
src/YSAI.DAQ/YSAI.Netty/YSAI.Netty.csproj

@@ -5,7 +5,7 @@
 		<ImplicitUsings>enable</ImplicitUsings>
 		<Nullable>enable</Nullable>
 		<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-		<Version>1.0.0.5</Version>
+		<Version>1.0.0.6</Version>
 		<Authors>Shun</Authors>
 		<Company>YSAI</Company>
 		<Product>SCADA</Product>
@@ -14,6 +14,6 @@
 	<ItemGroup>
 		<PackageReference Include="DotNetty.Handlers" Version="0.7.5" />
 		<PackageReference Include="DotNetty.Transport" Version="0.7.5" />
-		<PackageReference Include="YSAI.Core" Version="1.0.0.69" />
+		<PackageReference Include="YSAI.Core" Version="1.0.0.70" />
 	</ItemGroup>
 </Project>

+ 2 - 2
src/YSAI.DAQ/YSAI.Opc/YSAI.Opc.csproj

@@ -5,7 +5,7 @@
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
 	  <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-	  <Version>1.0.0.40</Version>
+	  <Version>1.0.0.41</Version>
 	  <Authors>Shun</Authors>
 	  <Company>YSAI</Company>
 	  <Product>SCADA</Product>
@@ -13,7 +13,7 @@
   </PropertyGroup>
   <ItemGroup>
     <PackageReference Include="OPCFoundation.NetStandard.Opc.Ua" Version="1.4.372.76" />
-	<PackageReference Include="YSAI.Core" Version="1.0.0.69" />
+	<PackageReference Include="YSAI.Core" Version="1.0.0.70" />
   </ItemGroup>
 
 

+ 4 - 4
src/YSAI.DAQ/YSAI.Pack/Modbus.json

@@ -264,7 +264,7 @@
                     "Default": null,
                     "Description": "实现类名",
                     "PropertyName": "ServiceName",
-                    "Value": "YSAI.Modbus.client.ModbusClientOperate",
+                    "Value": "YSAI.Modbus.ModbusOperate",
                     "IsShow": false,
                     "IsMust": false,
                     "Options": null
@@ -532,7 +532,7 @@
                     "Default": null,
                     "Description": "实现类名",
                     "PropertyName": "ServiceName",
-                    "Value": "YSAI.Modbus.client.ModbusClientOperate",
+                    "Value": "YSAI.Modbus.ModbusOperate",
                     "IsShow": false,
                     "IsMust": false,
                     "Options": null
@@ -858,7 +858,7 @@
                     "Default": null,
                     "Description": "实现类名",
                     "PropertyName": "ServiceName",
-                    "Value": "YSAI.Modbus.client.ModbusClientOperate",
+                    "Value": "YSAI.Modbus.ModbusOperate",
                     "IsShow": false,
                     "IsMust": false,
                     "Options": null
@@ -1184,7 +1184,7 @@
                     "Default": null,
                     "Description": "实现类名",
                     "PropertyName": "ServiceName",
-                    "Value": "YSAI.Modbus.client.ModbusClientOperate",
+                    "Value": "YSAI.Modbus.ModbusOperate",
                     "IsShow": false,
                     "IsMust": false,
                     "Options": null

+ 30 - 0
src/YSAI.DAQ/YSAI.Pack/OpcUa.json

@@ -107,6 +107,36 @@
                     "IsMust": false,
                     "Options": null
                 },
+                {
+                    "DataCate": "text",
+                    "Default": null,
+                    "Description": "保活计数",
+                    "PropertyName": "KeepAliveCount",
+                    "Value": null,
+                    "IsShow": true,
+                    "IsMust": false,
+                    "Options": null
+                },
+                {
+                    "DataCate": "text",
+                    "Default": null,
+                    "Description": "寿命计数",
+                    "PropertyName": "LifetimeCount",
+                    "Value": null,
+                    "IsShow": true,
+                    "IsMust": false,
+                    "Options": null
+                },
+                {
+                    "DataCate": "text",
+                    "Default": null,
+                    "Description": "队列大小",
+                    "PropertyName": "QueueSize",
+                    "Value": null,
+                    "IsShow": true,
+                    "IsMust": false,
+                    "Options": null
+                },
                 {
                     "DataCate": "text",
                     "Default": null,

+ 1 - 1
src/YSAI.DAQ/YSAI.Pack/S7.json

@@ -169,7 +169,7 @@
                     "Default": null,
                     "Description": "实现类名",
                     "PropertyName": "ServiceName",
-                    "Value": "YSAI.S7.client.S7ClientOperate",
+                    "Value": "YSAI.S7.S7Operate",
                     "IsShow": false,
                     "IsMust": false,
                     "Options": null

+ 2 - 2
src/YSAI.DAQ/YSAI.RabbitMQ/YSAI.RabbitMQ.csproj

@@ -5,7 +5,7 @@
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
 	  <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-	  <Version>1.0.0.32</Version>
+	  <Version>1.0.0.33</Version>
 	  <Authors>Shun</Authors>
 	  <Company>YSAI</Company>
 	  <Product>SCADA</Product>
@@ -14,7 +14,7 @@
 
   <ItemGroup>
     <PackageReference Include="RabbitMQ.Client" Version="6.6.0" />
-    <PackageReference Include="YSAI.Core" Version="1.0.0.69" />
+    <PackageReference Include="YSAI.Core" Version="1.0.0.70" />
   </ItemGroup>
 
   <ItemGroup>

+ 1 - 1
src/YSAI.DAQ/YSAI.RelayManage/YSAI.RelayManage.csproj

@@ -9,7 +9,7 @@
 	<ItemGroup>
 		<PackageReference Include="RabbitMQ.Client" Version="6.6.0" />
 		<PackageReference Include="Confluent.Kafka" Version="2.3.0" />
-		<PackageReference Include="YSAI.Core" Version="1.0.0.69" />
+		<PackageReference Include="YSAI.Core" Version="1.0.0.70" />
 		<FrameworkReference Include="Microsoft.AspNetCore.App" />
 	</ItemGroup>
 

+ 2 - 2
src/YSAI.DAQ/YSAI.S7/YSAI.S7.csproj

@@ -5,7 +5,7 @@
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
 	  <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-	  <Version>1.0.0.29</Version>
+	  <Version>1.0.0.30</Version>
 	  <Authors>Shun</Authors>
 	  <Company>YSAI</Company>
 	  <Product>SCADA</Product>
@@ -14,7 +14,7 @@
 
 	<ItemGroup>
     <PackageReference Include="S7netplus" Version="0.20.0" />
-    <PackageReference Include="YSAI.Core" Version="1.0.0.69" />
+    <PackageReference Include="YSAI.Core" Version="1.0.0.70" />
   </ItemGroup>
 
 	<!--<ItemGroup>

+ 104 - 87
src/YSAI.DAQ/YSAI.Test.All/Program.cs

@@ -12,6 +12,23 @@
 //OperateResult operateResult = tcpClientOperate.SendWait(Encoding.ASCII.GetBytes("S"));
 //Console.WriteLine();
 
+using YSAI.Log;
+
+LogHelper.Debug("111", consoleShow: false);
+
+LogHelper.Debug("666", consoleShow: true);
+
+LogHelper.Debug("111", consoleShow: true);
+
+LogHelper.Debug("666", consoleShow: false);
+
+while (true)
+{
+    Console.ReadLine();
+    LogHelper.Debug("666", consoleShow: true);
+    Console.ReadLine();
+}
+
 //using System.Diagnostics;
 //using YSAI.Unility;
 
@@ -458,103 +475,103 @@
 //    public string Description { get; set; }
 //}
 
-using System.Collections.Concurrent;
-using YSAI.Core.data;
-using YSAI.Log;
-using YSAI.Opc.ua.client;
-using YSAI.Opc.ua.client.unility;
-using YSAI.Unility;
-
-/// <summary>
-/// 读取Csv,返回行集合
-/// </summary>
-/// <param name="path"></param>
-/// <param name="hasTitle"></param>
-/// <returns></returns>
-List<string> ReadCsv(string path, bool hasTitle)
-{
-    if (!File.Exists(path))
-        return new List<string>();
-
-    var lines = File.ReadAllLines(path).ToList();
-    if (hasTitle)
-    {
-        lines.RemoveAt(0);
-    }
-    return lines;
-}
+//using System.Collections.Concurrent;
+//using YSAI.Core.data;
+//using YSAI.Log;
+//using YSAI.Opc.ua.client;
+//using YSAI.Opc.ua.client.unility;
+//using YSAI.Unility;
 
-//Address address = JsonTool.StringToJsonEntity<Address>(FileTool.FileToString("C:\\Users\\Shun\\Desktop\\[6032]Node_Address 202310120854271486.json"));
+///// <summary>
+///// 读取Csv,返回行集合
+///// </summary>
+///// <param name="path"></param>
+///// <param name="hasTitle"></param>
+///// <returns></returns>
+//List<string> ReadCsv(string path, bool hasTitle)
+//{
+//    if (!File.Exists(path))
+//        return new List<string>();
 
-Address address = new Address();
-address.SN = Guid.NewGuid().ToString();
-address.CreationTime = DateTime.Now;
-address.AddressArray = new List<AddressDetails>();
-List<string> strings = ReadCsv("C:\\Users\\Shun\\Desktop\\6022.csv", true);
-foreach (var item in strings)
-{
-    string[] str = item.Split(",");
-    string addressD = str[0].Replace("\"", "");
-    address.AddressArray.Add(new AddressDetails()
-    {
-        AddressName = $"ns=2;s=6022.6022.{addressD}",
-        SN = Guid.NewGuid().ToString()
-    });
-}
+//    var lines = File.ReadAllLines(path).ToList();
+//    if (hasTitle)
+//    {
+//        lines.RemoveAt(0);
+//    }
+//    return lines;
+//}
 
-//address.AddressArray.Add(new AddressDetails()
+////Address address = JsonTool.StringToJsonEntity<Address>(FileTool.FileToString("C:\\Users\\Shun\\Desktop\\[6032]Node_Address 202310120854271486.json"));
+
+//Address address = new Address();
+//address.SN = Guid.NewGuid().ToString();
+//address.CreationTime = DateTime.Now;
+//address.AddressArray = new List<AddressDetails>();
+//List<string> strings = ReadCsv("C:\\Users\\Shun\\Desktop\\6022.csv", true);
+//foreach (var item in strings)
 //{
-//    AddressName = $"ns=2;s=6022.6022.LAP5_DP2113_AUTO",
-//    SN = Guid.NewGuid().ToString()
-//});
+//    string[] str = item.Split(",");
+//    string addressD = str[0].Replace("\"", "");
+//    address.AddressArray.Add(new AddressDetails()
+//    {
+//        AddressName = $"ns=2;s=6022.6022.{addressD}",
+//        SN = Guid.NewGuid().ToString()
+//    });
+//}
 
-//address.AddressArray.Add(new AddressDetails()
+////address.AddressArray.Add(new AddressDetails()
+////{
+////    AddressName = $"ns=2;s=6022.6022.LAP5_DP2113_AUTO",
+////    SN = Guid.NewGuid().ToString()
+////});
+
+////address.AddressArray.Add(new AddressDetails()
+////{
+////    AddressName = $"ns=2;s=6022.6022.LAP5_DP2112_STATE_RUN",
+////    SN = Guid.NewGuid().ToString()
+////});
+
+//OpcUaClientOperate opcUaClientOperate = OpcUaClientOperate.Instance(new OpcUaClientData.Basics
 //{
-//    AddressName = $"ns=2;s=6022.6022.LAP5_DP2112_STATE_RUN",
-//    SN = Guid.NewGuid().ToString()
+//    ServerUrl = "opc.tcp://192.168.2.220:49320",
+//    CustomName = "YSAI 性能测试",
+//    TaskNumber = 10,
+//    TaskHandleInterval = 1,
+//    SubscribeSingleGroupMaxCount = 300,
 //});
+//Console.WriteLine(opcUaClientOperate.On().ToJson().JsonFormatting());
+//opcUaClientOperate.OnEvent += OpcUaClientOperate_OnEvent;
 
-OpcUaClientOperate opcUaClientOperate = OpcUaClientOperate.Instance(new OpcUaClientData.Basics
-{
-    ServerUrl = "opc.tcp://192.168.2.220:49320",
-    CustomName = "YSAI 性能测试",
-    TaskNumber = 10,
-    TaskHandleInterval = 1,
-    SubscribeSingleGroupMaxCount = 100,
-});
-Console.WriteLine(opcUaClientOperate.On().ToJson().JsonFormatting());
-opcUaClientOperate.OnEvent += OpcUaClientOperate_OnEvent;
+//while (true)
+//{
+//    Console.ReadLine();
+//    OperateResult operateResult = opcUaClientOperate.Subscribe(address);
+//    Console.WriteLine(operateResult.ToJson().JsonFormatting());
+//}
 
-while (true)
-{
-    Console.ReadLine();
-    OperateResult operateResult = opcUaClientOperate.Subscribe(address);
-    Console.WriteLine(operateResult.ToJson().JsonFormatting());
-}
+//void OpcUaClientOperate_OnEvent(object? sender, EventResult e)
+//{
+//    switch (e.RType)
+//    {
+//        case YSAI.Core.@enum.ResultType.KeyValue:
 
-void OpcUaClientOperate_OnEvent(object? sender, EventResult e)
-{
-    switch (e.RType)
-    {
-        case YSAI.Core.@enum.ResultType.KeyValue:
-
-            ConcurrentDictionary<string, AddressValue> pairs = e.GetRData<ConcurrentDictionary<string, AddressValue>>();
-            foreach (var item in pairs)
-            {
-                if (item.Value.AddressName.Equals("ns=2;s=6022.6022.LAP5_DP2112_STATE_RUN") || item.Value.AddressName.Equals("ns=2;s=6022.6022.LAP5_DP2113_AUTO"))
-                {
-                    String str = String.Format("{0,-100}{1,-100}", item.Key, item.Value.Value);
-
-                    LogHelper.Verbose(str);
-                }
-            }
-            break;
-
-        default:
-            Console.WriteLine(e.Message);
-            break;
-    }
-}
+//            ConcurrentDictionary<string, AddressValue> pairs = e.GetRData<ConcurrentDictionary<string, AddressValue>>();
+//            foreach (var item in pairs)
+//            {
+//                if (item.Value.AddressName.Equals("ns=2;s=6022.6022.LAP5_DP2112_STATE_RUN") || item.Value.AddressName.Equals("ns=2;s=6022.6022.LAP5_DP2113_AUTO"))
+//                {
+//                    String str = String.Format("{0,-100}{1,-100}", item.Key, item.Value.Value);
+
+//                    LogHelper.Verbose(str);
+//                }
+//            }
+//            break;
+
+//        default:
+//            Console.WriteLine(e.Message);
+//            break;
+//    }
+//}
 
 //using Opc.Ua;
 //using YSAI.Core.data;

+ 3 - 2
src/YSAI.DAQ/YSAI.Test.All/YSAI.Test.All.csproj

@@ -13,8 +13,9 @@
   </ItemGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\YSAI.Netty\YSAI.Netty.csproj" />
-    <ProjectReference Include="..\YSAI.Opc\YSAI.Opc.csproj" />
+    <ProjectReference Include="..\YSAI.Log\YSAI.Log.csproj" />
+    <!--<ProjectReference Include="..\YSAI.Netty\YSAI.Netty.csproj" />
+    <ProjectReference Include="..\YSAI.Opc\YSAI.Opc.csproj" />-->
   </ItemGroup>
 
 

+ 1 - 1
src/YSAI.DAQ/YSAI.Test/YSAI.Test.csproj

@@ -17,7 +17,7 @@
       <PrivateAssets>all</PrivateAssets>
       <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
     </PackageReference>
-	<PackageReference Include="YSAI.Core" Version="1.0.0.69" />
+	<PackageReference Include="YSAI.Core" Version="1.0.0.70" />
   </ItemGroup>
 
   <ItemGroup>