Browse Source

1. 修改地址处理的细节,让数据质量更准确
2. 对象比较器更换至[CompareNETObjects]
3. 新增示例代码
4. 修改PACK生成代码位置,与主代码不存在引用关系

Shun 2 years ago
parent
commit
88db3a0a74
100 changed files with 528 additions and 4563 deletions
  1. 3 1
      README.md
  2. 0 27
      src/YSAI.AllenBradley.Pack/Program.cs
  3. 0 18
      src/YSAI.AllenBradley.Pack/YSAI.AllenBradley.Pack.csproj
  4. 0 27
      src/YSAI.Beckhoff.Pack/Program.cs
  5. 0 18
      src/YSAI.Beckhoff.Pack/YSAI.Beckhoff.Pack.csproj
  6. 0 27
      src/YSAI.Can.Pack/Program.cs
  7. 0 17
      src/YSAI.Can.Pack/YSAI.Can.Pack.csproj
  8. 3 2
      src/YSAI.Test.Dll/TestAll.cs
  9. 0 0
      src/YSAI.DAQ.Samples.Reflection/YSAI.DAQ.Samples.Reflection.csproj
  10. 183 0
      src/YSAI.DAQ.Samples/Program.cs
  11. 109 0
      src/YSAI.DAQ.Samples/YSAI.DAQ.Samples.csproj
  12. 9 0
      src/YSAI.DAQ.Samples/config/relay/YSAI.Mqtt.client.MqttClientOperate.mqtt1.Relay.Config.json
  13. 9 0
      src/YSAI.DAQ.Samples/config/relay/YSAI.Mqtt.client.MqttClientOperate.mqtt2.Relay.Config.json
  14. 64 186
      src/YSAI.DAQ.sln
  15. 0 27
      src/YSAI.DB.Pack/Program.cs
  16. 0 17
      src/YSAI.DB.Pack/YSAI.DB.Pack.csproj
  17. 0 55
      src/YSAI.DaqManage/DaqManageData.cs
  18. 0 1366
      src/YSAI.DaqManage/DaqManageOperate.cs
  19. 0 27
      src/YSAI.Kafka.Pack/Program.cs
  20. 0 16
      src/YSAI.Kafka.Pack/YSAI.Kafka.Pack.csproj
  21. 0 12
      src/YSAI.Manage/.config/dotnet-tools.json
  22. 0 145
      src/YSAI.Manage/Controllers/DaqOperateController.cs
  23. 0 63
      src/YSAI.Manage/Controllers/FileOperateController.cs
  24. 0 77
      src/YSAI.Manage/Controllers/InfoOperateController.cs
  25. 0 89
      src/YSAI.Manage/Controllers/RelayOperateController.cs
  26. 0 74
      src/YSAI.Manage/Program.cs
  27. 0 21
      src/YSAI.Manage/Properties/PublishProfiles/FolderProfile.pubxml
  28. 0 31
      src/YSAI.Manage/Properties/launchSettings.json
  29. 0 109
      src/YSAI.Manage/YSAI.Manage.csproj
  30. 0 8
      src/YSAI.Manage/appsettings.Development.json
  31. 0 9
      src/YSAI.Manage/appsettings.json
  32. 0 82
      src/YSAI.Manage/config/ReflectionConfig.json
  33. 0 7
      src/YSAI.Manage/param/YSAI.Beckhoff.Param.json
  34. 0 37
      src/YSAI.Manage/param/YSAI.Beckhoff.ParamDetails.json
  35. 0 10
      src/YSAI.Manage/param/YSAI.Can.Param.json
  36. 0 139
      src/YSAI.Manage/param/YSAI.Can.ParamDetails.json
  37. 0 10
      src/YSAI.Manage/param/YSAI.DB.Param.json
  38. 0 79
      src/YSAI.Manage/param/YSAI.DB.ParamDetails.json
  39. 0 7
      src/YSAI.Manage/param/YSAI.Kafka.Param.json
  40. 0 74
      src/YSAI.Manage/param/YSAI.Kafka.ParamDetails.json
  41. 0 14
      src/YSAI.Manage/param/YSAI.Mitsubishi.Param.json
  42. 0 97
      src/YSAI.Manage/param/YSAI.Mitsubishi.ParamDetails.json
  43. 0 22
      src/YSAI.Manage/param/YSAI.Modbus.Param.json
  44. 0 327
      src/YSAI.Manage/param/YSAI.Modbus.ParamDetails.json
  45. 0 9
      src/YSAI.Manage/param/YSAI.Mqtt.Param.json
  46. 0 67
      src/YSAI.Manage/param/YSAI.Mqtt.ParamDetails.json
  47. 0 6
      src/YSAI.Manage/param/YSAI.NetMQ.Param.json
  48. 0 30
      src/YSAI.Manage/param/YSAI.NetMQ.ParamDetails.json
  49. 0 9
      src/YSAI.Manage/param/YSAI.Netty.Param.json
  50. 0 51
      src/YSAI.Manage/param/YSAI.Netty.ParamDetails.json
  51. 0 17
      src/YSAI.Manage/param/YSAI.Omron.Param.json
  52. 0 134
      src/YSAI.Manage/param/YSAI.Omron.ParamDetails.json
  53. 0 9
      src/YSAI.Manage/param/YSAI.OpcDa.Param.json
  54. 0 60
      src/YSAI.Manage/param/YSAI.OpcDa.ParamDetails.json
  55. 0 12
      src/YSAI.Manage/param/YSAI.OpcDaHttp.Param.json
  56. 0 83
      src/YSAI.Manage/param/YSAI.OpcDaHttp.ParamDetails.json
  57. 0 18
      src/YSAI.Manage/param/YSAI.OpcUa.Param.json
  58. 0 107
      src/YSAI.Manage/param/YSAI.OpcUa.ParamDetails.json
  59. 0 8
      src/YSAI.Manage/param/YSAI.RabbitMQ.Param.json
  60. 0 44
      src/YSAI.Manage/param/YSAI.RabbitMQ.ParamDetails.json
  61. 0 13
      src/YSAI.Manage/param/YSAI.S7.Param.json
  62. 0 115
      src/YSAI.Manage/param/YSAI.S7.ParamDetails.json
  63. 0 27
      src/YSAI.Mewtocol.Pack/Program.cs
  64. 0 18
      src/YSAI.Mewtocol.Pack/YSAI.Mewtocol.Pack.csproj
  65. 0 27
      src/YSAI.Mitsubishi.Pack/Program.cs
  66. 0 16
      src/YSAI.Mitsubishi.Pack/YSAI.Mitsubishi.Pack.csproj
  67. 0 27
      src/YSAI.Modbus.Pack/Program.cs
  68. 0 28
      src/YSAI.Mqtt.Pack/Program.cs
  69. 0 16
      src/YSAI.Mqtt.Pack/YSAI.Mqtt.Pack.csproj
  70. 1 1
      src/YSAI.Test.Service/Common/DataPersist.cs
  71. 1 1
      src/YSAI.Test.Service/Common/Helpers/CRC16.cs
  72. 1 1
      src/YSAI.Test.Service/Common/Helpers/DataConvert.cs
  73. 1 1
      src/YSAI.Test.Service/Common/Helpers/LRC.cs
  74. 2 0
      src/YSAI.NS.Service.Samples/Program.cs
  75. 2 2
      src/YSAI.Test.Service/Servers/BACnet/BACnetServer.cs
  76. 3 3
      src/YSAI.Test.Service/Servers/Modbus/ModBusAsciiServer.cs
  77. 3 3
      src/YSAI.Test.Service/Servers/Modbus/ModBusRtuServer.cs
  78. 3 3
      src/YSAI.Test.Service/Servers/Modbus/ModBusTcpServer.cs
  79. 3 3
      src/YSAI.Test.Service/Servers/PLC/AllenBradleyServer.cs
  80. 1 1
      src/YSAI.Test.Service/Servers/PLC/IIoTServer.cs
  81. 3 3
      src/YSAI.Test.Service/Servers/PLC/MitsubishiA1EServer.cs
  82. 3 3
      src/YSAI.Test.Service/Servers/PLC/MitsubishiQna3EServer.cs
  83. 3 3
      src/YSAI.Test.Service/Servers/PLC/OmronFinsServer.cs
  84. 3 3
      src/YSAI.Test.Service/Servers/PLC/SiemensServer.cs
  85. 1 1
      src/YSAI.Test.Service/Servers/ServerSocketBase.cs
  86. 3 7
      src/YSAI.DaqManage/YSAI.DaqManage.csproj
  87. 0 27
      src/YSAI.NetMQ.Pack/Program.cs
  88. 0 16
      src/YSAI.NetMQ.Pack/YSAI.NetMQ.Pack.csproj
  89. 0 27
      src/YSAI.Netty.Pack/Program.cs
  90. 0 16
      src/YSAI.Netty.Pack/YSAI.Netty.Pack.csproj
  91. 0 27
      src/YSAI.Omron.Pack/Program.cs
  92. 0 16
      src/YSAI.Omron.Pack/YSAI.Omron.Pack.csproj
  93. 0 55
      src/YSAI.Opc.Pack/Program.cs
  94. 0 15
      src/YSAI.Opc.Pack/YSAI.Opc.Pack.csproj
  95. 25 0
      src/YSAI.Pack/src/YSAI.AllenBradley.Pack/Program.cs
  96. 18 0
      src/YSAI.Pack/src/YSAI.AllenBradley.Pack/YSAI.AllenBradley.Pack.csproj
  97. 25 0
      src/YSAI.Pack/src/YSAI.Beckhoff.Pack/Program.cs
  98. 18 0
      src/YSAI.Pack/src/YSAI.Beckhoff.Pack/YSAI.Beckhoff.Pack.csproj
  99. 25 0
      src/YSAI.Pack/src/YSAI.Can.Pack/Program.cs
  100. 0 0
      src/YSAI.Pack/src/YSAI.Can.Pack/YSAI.Can.Pack.csproj

+ 3 - 1
README.md

@@ -518,4 +518,6 @@ while(true)
 
 #### 2023-12-4
 1. 修改地址处理的细节,让数据质量更准确
-2. 对象比较器更换至[CompareNETObjects]
+2. 对象比较器更换至[CompareNETObjects]
+3. 新增示例代码
+4. 修改PACK生成代码位置,与主代码不存在引用关系

+ 0 - 27
src/YSAI.AllenBradley.Pack/Program.cs

@@ -1,27 +0,0 @@
-using YSAI.Unility;
-
-namespace YSAI.AllenBradley.Pack
-{
-    internal class Program
-    {
-        static void Main(string[] args)
-        {
-            string FileDirectory = string.Empty;
-            string[] paths = AppDomain.CurrentDomain.BaseDirectory.Split('\\');
-            for (int i = 0; i < paths.Length - 5; i++)
-            {
-                FileDirectory += $"{paths[i]}//";
-            }
-            FileDirectory += "YSAI.Manage//param";
-            string Name = "YSAI.AllenBradley";
-            string ParamFile = $"{FileDirectory}//{Name}.Param.json";
-            string ParamDetailsFile = $"{FileDirectory}//{Name}.ParamDetails.json";
-            if (!Directory.Exists(FileDirectory))
-            {
-                Directory.CreateDirectory(FileDirectory);
-            }
-            FileTool.StringToFile(ParamFile, new AllenBradleyData.Basics().ToJson().JsonFormatting());
-            FileTool.StringToFile(ParamDetailsFile, ReflexTool.GetClassAllPropertyData<AllenBradleyData.Basics>().ToJson().JsonFormatting());
-        }
-    }
-}

File diff suppressed because it is too large
+ 0 - 18
src/YSAI.AllenBradley.Pack/YSAI.AllenBradley.Pack.csproj


+ 0 - 27
src/YSAI.Beckhoff.Pack/Program.cs

@@ -1,27 +0,0 @@
-using YSAI.Unility;
-
-namespace YSAI.Beckhoff.Pack
-{
-    internal class Program
-    {
-        private static void Main(string[] args)
-        {
-            string FileDirectory = string.Empty;
-            string[] paths = AppDomain.CurrentDomain.BaseDirectory.Split('\\');
-            for (int i = 0; i < paths.Length - 5; i++)
-            {
-                FileDirectory += $"{paths[i]}//";
-            }
-            FileDirectory += "YSAI.Manage//param";
-            string Name = "YSAI.Beckhoff";
-            string ParamFile = $"{FileDirectory}//{Name}.Param.json";
-            string ParamDetailsFile = $"{FileDirectory}//{Name}.ParamDetails.json";
-            if (!Directory.Exists(FileDirectory))
-            {
-                Directory.CreateDirectory(FileDirectory);
-            }
-            FileTool.StringToFile(ParamFile, new BeckhoffData.Basics().ToJson().JsonFormatting());
-            FileTool.StringToFile(ParamDetailsFile, ReflexTool.GetClassAllPropertyData<BeckhoffData.Basics>().ToJson().JsonFormatting());
-        }
-    }
-}

File diff suppressed because it is too large
+ 0 - 18
src/YSAI.Beckhoff.Pack/YSAI.Beckhoff.Pack.csproj


+ 0 - 27
src/YSAI.Can.Pack/Program.cs

@@ -1,27 +0,0 @@
-using YSAI.Unility;
-
-namespace YSAI.Can.Pack
-{
-    internal class Program
-    {
-        private static void Main(string[] args)
-        {
-            string FileDirectory = string.Empty;
-            string[] paths = AppDomain.CurrentDomain.BaseDirectory.Split('\\');
-            for (int i = 0; i < paths.Length - 5; i++)
-            {
-                FileDirectory += $"{paths[i]}//";
-            }
-            FileDirectory += "YSAI.Manage//param";
-            string Name = "YSAI.Can";
-            string ParamFile = $"{FileDirectory}//{Name}.Param.json";
-            string ParamDetailsFile = $"{FileDirectory}//{Name}.ParamDetails.json";
-            if (!Directory.Exists(FileDirectory))
-            {
-                Directory.CreateDirectory(FileDirectory);
-            }
-            FileTool.StringToFile(ParamFile, new CanData.Basics().ToJson().JsonFormatting());
-            FileTool.StringToFile(ParamDetailsFile, ReflexTool.GetClassAllPropertyData<CanData.Basics>().ToJson().JsonFormatting());
-        }
-    }
-}

File diff suppressed because it is too large
+ 0 - 17
src/YSAI.Can.Pack/YSAI.Can.Pack.csproj


+ 3 - 2
src/YSAI.Test.Dll/TestAll.cs

@@ -1,6 +1,7 @@
-namespace YSAI.Test.Dll
+namespace YSAI.DAQ.Samples.Reflection
 {
-    public class TestAll
+    //这是反射使用的测试动态库,仅测试使用
+    public class Class1
     {
         public string R1(string addressname, string value)
         {

src/YSAI.Test.Dll/YSAI.Test.Dll.csproj → src/YSAI.DAQ.Samples.Reflection/YSAI.DAQ.Samples.Reflection.csproj


+ 183 - 0
src/YSAI.DAQ.Samples/Program.cs

@@ -0,0 +1,183 @@
+using YSAI.Core.reflection;
+using YSAI.Core.script;
+using YSAI.Log;
+using YSAI.Model.data;
+using YSAI.Mqtt.service;
+using YSAI.Opc.ua.client;
+using YSAI.Opc.ua.service;
+using YSAI.Unility;
+
+//启动 OPCUA 服务端
+OpcUaServiceOperate opcUaServiceOperate = OpcUaServiceOperate.Instance(new OpcUaServiceData.Basics
+{
+    AutoAccept = true,
+    UserName = "samples",
+    Password = "samples"
+});
+//输出日志
+LogHelper.Info(opcUaServiceOperate.On().ToJson().JsonFormatting());
+
+//启动MQTT服务端 1
+MqttServiceOperate mqttServiceOperate1 = MqttServiceOperate.Instance(new MqttServiceData.Basics
+{
+    MaxNumber = 1000,
+    Password = "samples",
+    UserName = "samples",
+    Port = 8111
+});
+//输出日志
+LogHelper.Info(mqttServiceOperate1.On().ToJson().JsonFormatting());
+//启动MQTT服务端 2
+MqttServiceOperate mqttServiceOperate2 = MqttServiceOperate.Instance(new MqttServiceData.Basics
+{
+    MaxNumber = 1000,
+    Password = "samples",
+    UserName = "samples",
+    Port = 8222
+});
+//输出日志
+LogHelper.Info(mqttServiceOperate2.On().ToJson().JsonFormatting());
+
+
+//设置点位
+Address address = new Address();
+address.SN = Guid.NewGuid().ToString();
+address.CreationTime = DateTime.Now;
+address.AddressArray = new List<AddressDetails>();
+//动态地址 + 转发 + 脚本解析
+address.AddressArray.Add(new AddressDetails
+{
+    AddressName = "ns=2;s=Double_Dynamic",
+    AddressDataType = YSAI.Model.@enum.DataType.Double,
+    AddressType = YSAI.Model.@enum.AddressType.Reality,
+    AddressRelayParam = new AddressRelay
+    {
+        ISns = new List<string> { "YSAI.Mqtt.client.MqttClientOperate.mqtt1", "YSAI.Mqtt.client.MqttClientOperate.mqtt2" },
+        Topic = $"TEST/Double_Dynamic"
+    },
+    AddressParseParam = new AddressParse
+    {
+        ScriptParam = new ScriptData.Basics()
+        {
+            ScriptCode = @"function Convert(addressname,value) { return '【这是调用脚本解析】传入的地址是:'+ addressname + '----传入的参数是:' + value; }",
+            ScriptFunction = "Convert",
+            ScriptType = ScriptData.ScriptType.JavaScript
+        }
+    }
+});
+//动态地址 + 转发 + 反射解析
+address.AddressArray.Add(new AddressDetails
+{
+    AddressName = "ns=2;s=Float_Dynamic",
+    AddressDataType = YSAI.Model.@enum.DataType.Float,
+    AddressType = YSAI.Model.@enum.AddressType.Reality,
+    AddressRelayParam = new AddressRelay
+    {
+        ISns = new List<string> { "YSAI.Mqtt.client.MqttClientOperate.mqtt1", "YSAI.Mqtt.client.MqttClientOperate.mqtt2" },
+        Topic = $"TEST/Float_Dynamic"
+    },
+    AddressParseParam = new AddressParse
+    {
+        ReflectionParam = new object[]
+        {
+                    new ReflectionData.Basics
+                    {
+                        DllDatas = new List<ReflectionData.DllData>
+                        {
+                            new ReflectionData.DllData
+                            {
+                                DllPath="YSAI.DAQ.Samples.Reflection.dll",
+                                IsAbsolutePath=false,
+                                NamespaceDatas=new List<ReflectionData.NamespaceData>
+                                {
+                                    new ReflectionData.NamespaceData
+                                    {
+                                        Namespace="YSAI.DAQ.Samples.Reflection",
+                                        ClassDatas=new List<ReflectionData.ClassData>
+                                        {
+                                            new ReflectionData.ClassData
+                                            {
+                                                ClassName="Class1",
+                                                SN="YSAI.DAQ.Samples.Reflection.Class1[Instance]",
+                                                MethodDatas=new List<ReflectionData.MethodData>
+                                                {
+                                                    new ReflectionData.MethodData
+                                                    {
+                                                        MethodName="R1",
+                                                        SN="[R1]"
+                                                    },
+                                                     new ReflectionData.MethodData
+                                                    {
+                                                        MethodName="R2",
+                                                        SN="[R2]"
+                                                    },
+                                                      new ReflectionData.MethodData
+                                                    {
+                                                        MethodName="R3",
+                                                        SN="[R3]"
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+
+                            }
+                        }
+                    },
+                    "YSAI.DAQ.Samples.Reflection.Class1[Instance][R2]"
+        }
+    }
+});
+//虚拟静态地址 + 转发 - 只有读取时才生效
+address.AddressArray.Add(new AddressDetails
+{
+    AddressName = "static",
+    AddressDataType = YSAI.Model.@enum.DataType.Double,
+    AddressType = YSAI.Model.@enum.AddressType.Virtual,
+    AddressRelayParam = new AddressRelay
+    {
+        ISns = new List<string> { "YSAI.Mqtt.client.MqttClientOperate.mqtt1", "YSAI.Mqtt.client.MqttClientOperate.mqtt2" },
+        Topic = $"TEST/static"
+    }
+});
+//虚拟动态地址 + 转发 - 只有读取时才生效
+address.AddressArray.Add(new AddressDetails
+{
+    AddressName = "dynamic",
+    AddressDataType = YSAI.Model.@enum.DataType.Double,
+    AddressType = YSAI.Model.@enum.AddressType.VirtualDynamic,
+    AddressRelayParam = new AddressRelay
+    {
+        ISns = new List<string> { "YSAI.Mqtt.client.MqttClientOperate.mqtt1", "YSAI.Mqtt.client.MqttClientOperate.mqtt2" },
+        Topic = $"TEST/dynamic"
+    }
+});
+
+//实例化daq对象
+OpcUaClientOperate opcUaClientOperate = OpcUaClientOperate.Instance(new OpcUaClientData.Basics
+{
+    ServerUrl = "opc.tcp://127.0.0.1:8866/Opc.Ua.Service",
+    Password = "samples",
+    UserName = "samples",
+    CustomName = $"samples-{Guid.NewGuid().ToUpperNString()}",
+});
+//打开
+LogHelper.Info(opcUaClientOperate.On().ToJson().JsonFormatting());
+//事件注册
+opcUaClientOperate.OnEvent += OpcUaClientOperate_OnEvent;
+//订阅数据
+LogHelper.Info(opcUaClientOperate.Subscribe(address).ToJson().JsonFormatting());
+
+while (true)
+{
+    Console.ReadLine();
+    //读取一次数据
+    LogHelper.Info(opcUaClientOperate.Read(address).ToJson().JsonFormatting());
+}
+
+//事件消息
+void OpcUaClientOperate_OnEvent(object? sender, EventResult e)
+{
+    LogHelper.Info(e.ToJson().JsonFormatting());
+}

+ 109 - 0
src/YSAI.DAQ.Samples/YSAI.DAQ.Samples.csproj

@@ -0,0 +1,109 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>net8.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <None Remove="config\relay\YSAI.Mqtt.client.MqttClientOperate.mqtt1.Relay.Config.json" />
+    <None Remove="config\relay\YSAI.Mqtt.client.MqttClientOperate.mqtt2.Relay.Config.json" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\KellermanSoftware.Compare-NET-Objects.dll" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\Microsoft.Win32.SystemEvents.dll" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\MQTTnet.AspNetCore.dll" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\MQTTnet.dll" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\Newtonsoft.Json.dll" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\Serilog.dll" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\Serilog.Sinks.Console.dll" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\Serilog.Sinks.File.dll" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\System.Configuration.ConfigurationManager.dll" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\System.Drawing.Common.dll" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\System.Security.Cryptography.ProtectedData.dll" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\System.Security.Permissions.dll" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\System.Windows.Extensions.dll" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Log.dll" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Model.dll" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Mqtt.dll" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Mqtt.pdb" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Mqtt.xml" />
+    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Unility.dll" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Content Include="config\relay\YSAI.Mqtt.client.MqttClientOperate.mqtt1.Relay.Config.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="config\relay\YSAI.Mqtt.client.MqttClientOperate.mqtt2.Relay.Config.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\KellermanSoftware.Compare-NET-Objects.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\Microsoft.Win32.SystemEvents.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\MQTTnet.AspNetCore.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\MQTTnet.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\Newtonsoft.Json.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\Serilog.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\Serilog.Sinks.Console.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\Serilog.Sinks.File.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\System.Configuration.ConfigurationManager.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\System.Drawing.Common.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\System.Security.Cryptography.ProtectedData.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\System.Security.Permissions.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\System.Windows.Extensions.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Log.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Model.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Mqtt.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Mqtt.pdb">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Mqtt.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Unility.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+
+  <ItemGroup>
+    <PackageReference Include="YSAI.Mqtt" Version="23.338.17729" />
+    <PackageReference Include="YSAI.Opc" Version="23.338.19977" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\YSAI.DAQ.Samples.Reflection\YSAI.DAQ.Samples.Reflection.csproj" />
+  </ItemGroup>
+
+</Project>

+ 9 - 0
src/YSAI.DAQ.Samples/config/relay/YSAI.Mqtt.client.MqttClientOperate.mqtt1.Relay.Config.json

@@ -0,0 +1,9 @@
+{
+  "SN": "mqtt1",
+  "Ip": "127.0.0.1",
+  "Port": 8111,
+  "UserName": "samples",
+  "Password": "samples",
+  "ClientID": null,
+  "QualityOfServiceLevel": "AtMostOnce"
+}

+ 9 - 0
src/YSAI.DAQ.Samples/config/relay/YSAI.Mqtt.client.MqttClientOperate.mqtt2.Relay.Config.json

@@ -0,0 +1,9 @@
+{
+  "SN": "mqtt2",
+  "Ip": "127.0.0.1",
+  "Port": 8222,
+  "UserName": "samples",
+  "Password": "samples",
+  "ClientID": null,
+  "QualityOfServiceLevel": "AtMostOnce"
+}

+ 64 - 186
src/YSAI.DAQ.sln

@@ -23,8 +23,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "daq", "daq", "{0A264424-1AD
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.RabbitMQ", "YSAI.RabbitMQ\YSAI.RabbitMQ.csproj", "{8CE7E64C-7A6A-4581-A9B3-C05214986B4F}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Manage", "YSAI.Manage\YSAI.Manage.csproj", "{6E9667C0-303C-472D-949B-60F812E6C659}"
-EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "windows", "windows", "{6F526F44-A5B0-49D5-8E04-DBFDB5F8E6C6}"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Can", "YSAI.Can\YSAI.Can.csproj", "{8B8BF505-7A00-4868-939F-EB5056083E49}"
@@ -51,93 +49,59 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "core", "{D60224CF-7
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{12CB0510-7B1E-4518-AA3B-412A4D323D42}"
 EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "manage", "manage", "{ECAD410C-2895-4836-BCA7-D4EF340E778E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.DaqManage", "YSAI.DaqManage\YSAI.DaqManage.csproj", "{41AB3A5A-5372-4A75-898C-9A4F9454F8A5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.RelayManage", "YSAI.RelayManage\YSAI.RelayManage.csproj", "{DD9020DC-A51F-48F2-83FA-A3F10A43220F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Test.Console", "YSAI.Test.Console\YSAI.Test.Console.csproj", "{623C8558-8901-4D69-B1AC-1615597E8B88}"
-EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lib", "lib", "{7EB5153B-7702-4D7B-8592-FE6D992682AB}"
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tool", "tool", "{1856E9E1-33C4-45C1-832C-854F9BE1ACC4}"
 EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "pack", "pack", "{1EBA4FD7-DF52-49A0-8AA4-9E61ABC614F5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.DB.Pack", "YSAI.DB.Pack\YSAI.DB.Pack.csproj", "{76474288-450D-4553-BA0B-6ECB06BB48D8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Modbus.Pack", "YSAI.Modbus.Pack\YSAI.Modbus.Pack.csproj", "{183B670D-6A3C-49AF-9558-4154824319CA}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Opc.Pack", "YSAI.Opc.Pack\YSAI.Opc.Pack.csproj", "{03C88A20-C849-49AF-BCA9-D2F78A7054F0}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Kafka.Pack", "YSAI.Kafka.Pack\YSAI.Kafka.Pack.csproj", "{FA745761-1C35-40A8-8695-8114EAF4273F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Mqtt.Pack", "YSAI.Mqtt.Pack\YSAI.Mqtt.Pack.csproj", "{690A2E26-908A-4AED-8689-01B23F5CFCBE}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.RabbitMQ.Pack", "YSAI.RabbitMQ.Pack\YSAI.RabbitMQ.Pack.csproj", "{68C1433D-2DB7-499E-9225-CB8191891F8F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Can.Pack", "YSAI.Can.Pack\YSAI.Can.Pack.csproj", "{940983FB-5DDE-4B13-BBA0-FDA1EEED6C02}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Test", "YSAI.Test\YSAI.Test.csproj", "{4B503AF7-E1D3-4C94-AE98-4175CC94CD4B}"
-EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Tool.Core", "YSAI.Tool.Core\YSAI.Tool.Core.csproj", "{E85BF19B-E671-4A1E-BC67-B545700B4BF1}"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Tool", "YSAI.Tool\YSAI.Tool.csproj", "{3C333E39-520D-4183-8E3D-D0FF6628C15E}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Test.All", "YSAI.Test.All\YSAI.Test.All.csproj", "{1CFDF4C1-53F7-4A32-B83D-4B99AFC95A8D}"
-EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Netty", "YSAI.Netty\YSAI.Netty.csproj", "{D757285D-0B7C-47C4-BC54-744B6E2A7E61}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Netty.Pack", "YSAI.Netty.Pack\YSAI.Netty.Pack.csproj", "{B2100081-54BC-4500-80D9-2A5B1CBCFD1B}"
-EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Beckhoff", "YSAI.Beckhoff\YSAI.Beckhoff.csproj", "{B4932E85-54ED-4F1D-8773-184E3A0ADD62}"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Mitsubishi", "YSAI.Mitsubishi\YSAI.Mitsubishi.csproj", "{DA9765D1-568D-48CE-A723-D7F10534FA22}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Beckhoff.Pack", "YSAI.Beckhoff.Pack\YSAI.Beckhoff.Pack.csproj", "{BDFA0BDC-5645-4A7F-B063-0E162EABB7EF}"
-EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Omron", "YSAI.Omron\YSAI.Omron.csproj", "{0C46F8C9-A44A-4AAD-A0B7-D0FB387A0B00}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Omron.Pack", "YSAI.Omron.Pack\YSAI.Omron.Pack.csproj", "{5EB13A98-97E5-4848-A5F3-D90974AA76A8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Mitsubishi.Pack", "YSAI.Mitsubishi.Pack\YSAI.Mitsubishi.Pack.csproj", "{3573D496-3EE5-48B2-9060-E5306B5E3A94}"
-EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.NetMQ", "YSAI.NetMQ\YSAI.NetMQ.csproj", "{B703E19E-A1A7-4D7B-908A-C28B66512A8B}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.NetMQ.Pack", "YSAI.NetMQ.Pack\YSAI.NetMQ.Pack.csproj", "{F41F510E-5D32-44A1-97A0-228B507DDA90}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Test.Service", "YSAI.Test.Service\YSAI.Test.Service.csproj", "{6B3E64C2-34D4-4086-878D-D736431F0004}"
-EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.AllenBradley", "YSAI.AllenBradley\YSAI.AllenBradley.csproj", "{5D263A57-A36F-44DF-9AC8-9F4AA928B221}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.AllenBradley.Pack", "YSAI.AllenBradley.Pack\YSAI.AllenBradley.Pack.csproj", "{3263AB0B-19E7-456B-9DCF-C7DC3BEED337}"
-EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Mewtocol", "YSAI.Mewtocol\YSAI.Mewtocol.csproj", "{BA30E984-11EE-426B-872C-8DF74D48C3B3}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Mewtocol.Pack", "YSAI.Mewtocol.Pack\YSAI.Mewtocol.Pack.csproj", "{586340C5-C724-456D-A385-F8265D7E9FBA}"
-EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Siemens", "YSAI.Siemens\YSAI.Siemens.csproj", "{1F68D7B4-3565-4278-A207-8724303EEF60}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Siemens.Pack", "YSAI.Siemens.Pack\YSAI.Siemens.Pack.csproj", "{A9D6C2E8-E8B0-482B-ABBD-BEBA119AB89A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.VT", "YSAI.VT\YSAI.VT.csproj", "{18BC89C3-3247-413C-9199-934741507CA0}"
-EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "extend", "extend", "{F23C3553-3FE7-4ECC-9BBA-8C498C3B4398}"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Rpc", "YSAI.Rpc\YSAI.Rpc.csproj", "{87606DDA-82DA-4BCD-87B3-E7CEFB05EADC}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Test.RPC.Server", "YSAI.Test.RPC.Server\YSAI.Test.RPC.Server.csproj", "{30AB5928-8D59-4D35-8866-D42EF3273433}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Test.RPC.Client", "YSAI.Test.RPC.Client\YSAI.Test.RPC.Client.csproj", "{E3F6DC4A-57F4-436F-86C5-6B2F782AA2C9}"
-EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Redis", "YSAI.Redis\YSAI.Redis.csproj", "{F917D5C2-A067-47F3-8E18-1CD2C95FEC29}"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Model", "YSAI.Model\YSAI.Model.csproj", "{2E999BFE-9128-4BAD-9BB5-88C20295BE61}"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Rest", "YSAI.Rest\YSAI.Rest.csproj", "{6A818E8C-144C-46E7-8C66-B66CD85487C0}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Test.Dll", "YSAI.Test.Dll\YSAI.Test.Dll.csproj", "{AB1B080B-FAA1-44F9-927E-1BB3DD658012}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{2E080205-D55D-43C9-BD56-A0FDC62A790C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.DAQ.Samples", "YSAI.DAQ.Samples\YSAI.DAQ.Samples.csproj", "{5BC237BD-BA54-4846-AA53-6067C0786CFF}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Relay.Samples", "YSAI.Relay.Samples\YSAI.Relay.Samples.csproj", "{50835493-724D-478C-B497-3100AD1F1362}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.DAQ.Samples.Reflection", "YSAI.DAQ.Samples.Reflection\YSAI.DAQ.Samples.Reflection.csproj", "{2150F1EF-794B-48CD-A847-DB0061197741}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.RPC.Client.Samples", "YSAI.RPC.Client.Samples\YSAI.RPC.Client.Samples.csproj", "{6014C53E-91F8-4AFA-AE44-49618BDC875E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.RPC.Service.Samples", "YSAI.RPC.Service.Samples\YSAI.RPC.Service.Samples.csproj", "{1C3B97FB-1382-4529-8A81-A1DCE260746A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.NS.Service.Samples", "YSAI.NS.Service.Samples\YSAI.NS.Service.Samples.csproj", "{3FE79B5B-99C2-4C99-8B96-21C7133B3EF5}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Tests", "YSAI.Tests\YSAI.Tests.csproj", "{943A43D6-C278-4882-A37D-AC12F49A256A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YSAI.Redis.Samples", "YSAI.Redis.Samples\YSAI.Redis.Samples.csproj", "{6B0643C4-FFE3-4B32-80D9-9E0E40EB2907}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "YSAI.Version.Management.Tool", "YSAI.Version.Management.Tool\YSAI.Version.Management.Tool.csproj", "{B9098703-E776-485B-9B9D-7561BE24E820}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -181,10 +145,6 @@ Global
 		{8CE7E64C-7A6A-4581-A9B3-C05214986B4F}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{8CE7E64C-7A6A-4581-A9B3-C05214986B4F}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{8CE7E64C-7A6A-4581-A9B3-C05214986B4F}.Release|Any CPU.Build.0 = Release|Any CPU
-		{6E9667C0-303C-472D-949B-60F812E6C659}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{6E9667C0-303C-472D-949B-60F812E6C659}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6E9667C0-303C-472D-949B-60F812E6C659}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{6E9667C0-303C-472D-949B-60F812E6C659}.Release|Any CPU.Build.0 = Release|Any CPU
 		{8B8BF505-7A00-4868-939F-EB5056083E49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{8B8BF505-7A00-4868-939F-EB5056083E49}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{8B8BF505-7A00-4868-939F-EB5056083E49}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -221,50 +181,6 @@ Global
 		{257F1474-B220-4C61-88C6-5B83BEF7B3A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{257F1474-B220-4C61-88C6-5B83BEF7B3A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{257F1474-B220-4C61-88C6-5B83BEF7B3A7}.Release|Any CPU.Build.0 = Release|Any CPU
-		{41AB3A5A-5372-4A75-898C-9A4F9454F8A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{41AB3A5A-5372-4A75-898C-9A4F9454F8A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{41AB3A5A-5372-4A75-898C-9A4F9454F8A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{41AB3A5A-5372-4A75-898C-9A4F9454F8A5}.Release|Any CPU.Build.0 = Release|Any CPU
-		{DD9020DC-A51F-48F2-83FA-A3F10A43220F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{DD9020DC-A51F-48F2-83FA-A3F10A43220F}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{DD9020DC-A51F-48F2-83FA-A3F10A43220F}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{DD9020DC-A51F-48F2-83FA-A3F10A43220F}.Release|Any CPU.Build.0 = Release|Any CPU
-		{623C8558-8901-4D69-B1AC-1615597E8B88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{623C8558-8901-4D69-B1AC-1615597E8B88}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{623C8558-8901-4D69-B1AC-1615597E8B88}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{623C8558-8901-4D69-B1AC-1615597E8B88}.Release|Any CPU.Build.0 = Release|Any CPU
-		{76474288-450D-4553-BA0B-6ECB06BB48D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{76474288-450D-4553-BA0B-6ECB06BB48D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{76474288-450D-4553-BA0B-6ECB06BB48D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{76474288-450D-4553-BA0B-6ECB06BB48D8}.Release|Any CPU.Build.0 = Release|Any CPU
-		{183B670D-6A3C-49AF-9558-4154824319CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{183B670D-6A3C-49AF-9558-4154824319CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{183B670D-6A3C-49AF-9558-4154824319CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{183B670D-6A3C-49AF-9558-4154824319CA}.Release|Any CPU.Build.0 = Release|Any CPU
-		{03C88A20-C849-49AF-BCA9-D2F78A7054F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{03C88A20-C849-49AF-BCA9-D2F78A7054F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{03C88A20-C849-49AF-BCA9-D2F78A7054F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{03C88A20-C849-49AF-BCA9-D2F78A7054F0}.Release|Any CPU.Build.0 = Release|Any CPU
-		{FA745761-1C35-40A8-8695-8114EAF4273F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{FA745761-1C35-40A8-8695-8114EAF4273F}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{FA745761-1C35-40A8-8695-8114EAF4273F}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{FA745761-1C35-40A8-8695-8114EAF4273F}.Release|Any CPU.Build.0 = Release|Any CPU
-		{690A2E26-908A-4AED-8689-01B23F5CFCBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{690A2E26-908A-4AED-8689-01B23F5CFCBE}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{690A2E26-908A-4AED-8689-01B23F5CFCBE}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{690A2E26-908A-4AED-8689-01B23F5CFCBE}.Release|Any CPU.Build.0 = Release|Any CPU
-		{68C1433D-2DB7-499E-9225-CB8191891F8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{68C1433D-2DB7-499E-9225-CB8191891F8F}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{68C1433D-2DB7-499E-9225-CB8191891F8F}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{68C1433D-2DB7-499E-9225-CB8191891F8F}.Release|Any CPU.Build.0 = Release|Any CPU
-		{940983FB-5DDE-4B13-BBA0-FDA1EEED6C02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{940983FB-5DDE-4B13-BBA0-FDA1EEED6C02}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{940983FB-5DDE-4B13-BBA0-FDA1EEED6C02}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{940983FB-5DDE-4B13-BBA0-FDA1EEED6C02}.Release|Any CPU.Build.0 = Release|Any CPU
-		{4B503AF7-E1D3-4C94-AE98-4175CC94CD4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{4B503AF7-E1D3-4C94-AE98-4175CC94CD4B}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{4B503AF7-E1D3-4C94-AE98-4175CC94CD4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{4B503AF7-E1D3-4C94-AE98-4175CC94CD4B}.Release|Any CPU.Build.0 = Release|Any CPU
 		{E85BF19B-E671-4A1E-BC67-B545700B4BF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{E85BF19B-E671-4A1E-BC67-B545700B4BF1}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{E85BF19B-E671-4A1E-BC67-B545700B4BF1}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -273,18 +189,10 @@ Global
 		{3C333E39-520D-4183-8E3D-D0FF6628C15E}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{3C333E39-520D-4183-8E3D-D0FF6628C15E}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{3C333E39-520D-4183-8E3D-D0FF6628C15E}.Release|Any CPU.Build.0 = Release|Any CPU
-		{1CFDF4C1-53F7-4A32-B83D-4B99AFC95A8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{1CFDF4C1-53F7-4A32-B83D-4B99AFC95A8D}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{1CFDF4C1-53F7-4A32-B83D-4B99AFC95A8D}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{1CFDF4C1-53F7-4A32-B83D-4B99AFC95A8D}.Release|Any CPU.Build.0 = Release|Any CPU
 		{D757285D-0B7C-47C4-BC54-744B6E2A7E61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{D757285D-0B7C-47C4-BC54-744B6E2A7E61}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{D757285D-0B7C-47C4-BC54-744B6E2A7E61}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{D757285D-0B7C-47C4-BC54-744B6E2A7E61}.Release|Any CPU.Build.0 = Release|Any CPU
-		{B2100081-54BC-4500-80D9-2A5B1CBCFD1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{B2100081-54BC-4500-80D9-2A5B1CBCFD1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{B2100081-54BC-4500-80D9-2A5B1CBCFD1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{B2100081-54BC-4500-80D9-2A5B1CBCFD1B}.Release|Any CPU.Build.0 = Release|Any CPU
 		{B4932E85-54ED-4F1D-8773-184E3A0ADD62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{B4932E85-54ED-4F1D-8773-184E3A0ADD62}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{B4932E85-54ED-4F1D-8773-184E3A0ADD62}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -293,74 +201,30 @@ Global
 		{DA9765D1-568D-48CE-A723-D7F10534FA22}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{DA9765D1-568D-48CE-A723-D7F10534FA22}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{DA9765D1-568D-48CE-A723-D7F10534FA22}.Release|Any CPU.Build.0 = Release|Any CPU
-		{BDFA0BDC-5645-4A7F-B063-0E162EABB7EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{BDFA0BDC-5645-4A7F-B063-0E162EABB7EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{BDFA0BDC-5645-4A7F-B063-0E162EABB7EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{BDFA0BDC-5645-4A7F-B063-0E162EABB7EF}.Release|Any CPU.Build.0 = Release|Any CPU
 		{0C46F8C9-A44A-4AAD-A0B7-D0FB387A0B00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{0C46F8C9-A44A-4AAD-A0B7-D0FB387A0B00}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{0C46F8C9-A44A-4AAD-A0B7-D0FB387A0B00}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{0C46F8C9-A44A-4AAD-A0B7-D0FB387A0B00}.Release|Any CPU.Build.0 = Release|Any CPU
-		{5EB13A98-97E5-4848-A5F3-D90974AA76A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{5EB13A98-97E5-4848-A5F3-D90974AA76A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{5EB13A98-97E5-4848-A5F3-D90974AA76A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{5EB13A98-97E5-4848-A5F3-D90974AA76A8}.Release|Any CPU.Build.0 = Release|Any CPU
-		{3573D496-3EE5-48B2-9060-E5306B5E3A94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{3573D496-3EE5-48B2-9060-E5306B5E3A94}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{3573D496-3EE5-48B2-9060-E5306B5E3A94}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{3573D496-3EE5-48B2-9060-E5306B5E3A94}.Release|Any CPU.Build.0 = Release|Any CPU
 		{B703E19E-A1A7-4D7B-908A-C28B66512A8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{B703E19E-A1A7-4D7B-908A-C28B66512A8B}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{B703E19E-A1A7-4D7B-908A-C28B66512A8B}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{B703E19E-A1A7-4D7B-908A-C28B66512A8B}.Release|Any CPU.Build.0 = Release|Any CPU
-		{F41F510E-5D32-44A1-97A0-228B507DDA90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{F41F510E-5D32-44A1-97A0-228B507DDA90}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{F41F510E-5D32-44A1-97A0-228B507DDA90}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{F41F510E-5D32-44A1-97A0-228B507DDA90}.Release|Any CPU.Build.0 = Release|Any CPU
-		{6B3E64C2-34D4-4086-878D-D736431F0004}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{6B3E64C2-34D4-4086-878D-D736431F0004}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6B3E64C2-34D4-4086-878D-D736431F0004}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{6B3E64C2-34D4-4086-878D-D736431F0004}.Release|Any CPU.Build.0 = Release|Any CPU
 		{5D263A57-A36F-44DF-9AC8-9F4AA928B221}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{5D263A57-A36F-44DF-9AC8-9F4AA928B221}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{5D263A57-A36F-44DF-9AC8-9F4AA928B221}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{5D263A57-A36F-44DF-9AC8-9F4AA928B221}.Release|Any CPU.Build.0 = Release|Any CPU
-		{3263AB0B-19E7-456B-9DCF-C7DC3BEED337}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{3263AB0B-19E7-456B-9DCF-C7DC3BEED337}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{3263AB0B-19E7-456B-9DCF-C7DC3BEED337}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{3263AB0B-19E7-456B-9DCF-C7DC3BEED337}.Release|Any CPU.Build.0 = Release|Any CPU
 		{BA30E984-11EE-426B-872C-8DF74D48C3B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{BA30E984-11EE-426B-872C-8DF74D48C3B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{BA30E984-11EE-426B-872C-8DF74D48C3B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{BA30E984-11EE-426B-872C-8DF74D48C3B3}.Release|Any CPU.Build.0 = Release|Any CPU
-		{586340C5-C724-456D-A385-F8265D7E9FBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{586340C5-C724-456D-A385-F8265D7E9FBA}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{586340C5-C724-456D-A385-F8265D7E9FBA}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{586340C5-C724-456D-A385-F8265D7E9FBA}.Release|Any CPU.Build.0 = Release|Any CPU
 		{1F68D7B4-3565-4278-A207-8724303EEF60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{1F68D7B4-3565-4278-A207-8724303EEF60}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{1F68D7B4-3565-4278-A207-8724303EEF60}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{1F68D7B4-3565-4278-A207-8724303EEF60}.Release|Any CPU.Build.0 = Release|Any CPU
-		{A9D6C2E8-E8B0-482B-ABBD-BEBA119AB89A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{A9D6C2E8-E8B0-482B-ABBD-BEBA119AB89A}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{A9D6C2E8-E8B0-482B-ABBD-BEBA119AB89A}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{A9D6C2E8-E8B0-482B-ABBD-BEBA119AB89A}.Release|Any CPU.Build.0 = Release|Any CPU
-		{18BC89C3-3247-413C-9199-934741507CA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{18BC89C3-3247-413C-9199-934741507CA0}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{18BC89C3-3247-413C-9199-934741507CA0}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{18BC89C3-3247-413C-9199-934741507CA0}.Release|Any CPU.Build.0 = Release|Any CPU
 		{87606DDA-82DA-4BCD-87B3-E7CEFB05EADC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{87606DDA-82DA-4BCD-87B3-E7CEFB05EADC}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{87606DDA-82DA-4BCD-87B3-E7CEFB05EADC}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{87606DDA-82DA-4BCD-87B3-E7CEFB05EADC}.Release|Any CPU.Build.0 = Release|Any CPU
-		{30AB5928-8D59-4D35-8866-D42EF3273433}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{30AB5928-8D59-4D35-8866-D42EF3273433}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{30AB5928-8D59-4D35-8866-D42EF3273433}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{30AB5928-8D59-4D35-8866-D42EF3273433}.Release|Any CPU.Build.0 = Release|Any CPU
-		{E3F6DC4A-57F4-436F-86C5-6B2F782AA2C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{E3F6DC4A-57F4-436F-86C5-6B2F782AA2C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{E3F6DC4A-57F4-436F-86C5-6B2F782AA2C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{E3F6DC4A-57F4-436F-86C5-6B2F782AA2C9}.Release|Any CPU.Build.0 = Release|Any CPU
 		{F917D5C2-A067-47F3-8E18-1CD2C95FEC29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{F917D5C2-A067-47F3-8E18-1CD2C95FEC29}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{F917D5C2-A067-47F3-8E18-1CD2C95FEC29}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -373,10 +237,42 @@ Global
 		{6A818E8C-144C-46E7-8C66-B66CD85487C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{6A818E8C-144C-46E7-8C66-B66CD85487C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{6A818E8C-144C-46E7-8C66-B66CD85487C0}.Release|Any CPU.Build.0 = Release|Any CPU
-		{AB1B080B-FAA1-44F9-927E-1BB3DD658012}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{AB1B080B-FAA1-44F9-927E-1BB3DD658012}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{AB1B080B-FAA1-44F9-927E-1BB3DD658012}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{AB1B080B-FAA1-44F9-927E-1BB3DD658012}.Release|Any CPU.Build.0 = Release|Any CPU
+		{5BC237BD-BA54-4846-AA53-6067C0786CFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{5BC237BD-BA54-4846-AA53-6067C0786CFF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{5BC237BD-BA54-4846-AA53-6067C0786CFF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{5BC237BD-BA54-4846-AA53-6067C0786CFF}.Release|Any CPU.Build.0 = Release|Any CPU
+		{50835493-724D-478C-B497-3100AD1F1362}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{50835493-724D-478C-B497-3100AD1F1362}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{50835493-724D-478C-B497-3100AD1F1362}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{50835493-724D-478C-B497-3100AD1F1362}.Release|Any CPU.Build.0 = Release|Any CPU
+		{2150F1EF-794B-48CD-A847-DB0061197741}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{2150F1EF-794B-48CD-A847-DB0061197741}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{2150F1EF-794B-48CD-A847-DB0061197741}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{2150F1EF-794B-48CD-A847-DB0061197741}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6014C53E-91F8-4AFA-AE44-49618BDC875E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6014C53E-91F8-4AFA-AE44-49618BDC875E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6014C53E-91F8-4AFA-AE44-49618BDC875E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6014C53E-91F8-4AFA-AE44-49618BDC875E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{1C3B97FB-1382-4529-8A81-A1DCE260746A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{1C3B97FB-1382-4529-8A81-A1DCE260746A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{1C3B97FB-1382-4529-8A81-A1DCE260746A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{1C3B97FB-1382-4529-8A81-A1DCE260746A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{3FE79B5B-99C2-4C99-8B96-21C7133B3EF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{3FE79B5B-99C2-4C99-8B96-21C7133B3EF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{3FE79B5B-99C2-4C99-8B96-21C7133B3EF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{3FE79B5B-99C2-4C99-8B96-21C7133B3EF5}.Release|Any CPU.Build.0 = Release|Any CPU
+		{943A43D6-C278-4882-A37D-AC12F49A256A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{943A43D6-C278-4882-A37D-AC12F49A256A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{943A43D6-C278-4882-A37D-AC12F49A256A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{943A43D6-C278-4882-A37D-AC12F49A256A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6B0643C4-FFE3-4B32-80D9-9E0E40EB2907}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6B0643C4-FFE3-4B32-80D9-9E0E40EB2907}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6B0643C4-FFE3-4B32-80D9-9E0E40EB2907}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6B0643C4-FFE3-4B32-80D9-9E0E40EB2907}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B9098703-E776-485B-9B9D-7561BE24E820}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B9098703-E776-485B-9B9D-7561BE24E820}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B9098703-E776-485B-9B9D-7561BE24E820}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B9098703-E776-485B-9B9D-7561BE24E820}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -392,7 +288,6 @@ Global
 		{439C729E-C66D-492B-A481-0C7F73F04E76} = {0A264424-1AD7-49FA-B813-D96498066479}
 		{0A264424-1AD7-49FA-B813-D96498066479} = {7EB5153B-7702-4D7B-8592-FE6D992682AB}
 		{8CE7E64C-7A6A-4581-A9B3-C05214986B4F} = {9D8EDBBA-7A97-4D84-9B12-7FCC2F834046}
-		{6E9667C0-303C-472D-949B-60F812E6C659} = {ECAD410C-2895-4836-BCA7-D4EF340E778E}
 		{6F526F44-A5B0-49D5-8E04-DBFDB5F8E6C6} = {D60224CF-7F12-453B-851E-B5C01F9D2BBE}
 		{8B8BF505-7A00-4868-939F-EB5056083E49} = {0A264424-1AD7-49FA-B813-D96498066479}
 		{CCF267B2-ABB4-4B42-8351-103D59FA4B3B} = {6F526F44-A5B0-49D5-8E04-DBFDB5F8E6C6}
@@ -404,47 +299,30 @@ Global
 		{0EA9373C-B55A-4400-82AC-7681AA996229} = {6F526F44-A5B0-49D5-8E04-DBFDB5F8E6C6}
 		{257F1474-B220-4C61-88C6-5B83BEF7B3A7} = {6F526F44-A5B0-49D5-8E04-DBFDB5F8E6C6}
 		{9D8EDBBA-7A97-4D84-9B12-7FCC2F834046} = {7EB5153B-7702-4D7B-8592-FE6D992682AB}
-		{41AB3A5A-5372-4A75-898C-9A4F9454F8A5} = {ECAD410C-2895-4836-BCA7-D4EF340E778E}
-		{DD9020DC-A51F-48F2-83FA-A3F10A43220F} = {ECAD410C-2895-4836-BCA7-D4EF340E778E}
-		{623C8558-8901-4D69-B1AC-1615597E8B88} = {12CB0510-7B1E-4518-AA3B-412A4D323D42}
-		{1EBA4FD7-DF52-49A0-8AA4-9E61ABC614F5} = {7EB5153B-7702-4D7B-8592-FE6D992682AB}
-		{76474288-450D-4553-BA0B-6ECB06BB48D8} = {1EBA4FD7-DF52-49A0-8AA4-9E61ABC614F5}
-		{183B670D-6A3C-49AF-9558-4154824319CA} = {1EBA4FD7-DF52-49A0-8AA4-9E61ABC614F5}
-		{03C88A20-C849-49AF-BCA9-D2F78A7054F0} = {1EBA4FD7-DF52-49A0-8AA4-9E61ABC614F5}
-		{FA745761-1C35-40A8-8695-8114EAF4273F} = {1EBA4FD7-DF52-49A0-8AA4-9E61ABC614F5}
-		{690A2E26-908A-4AED-8689-01B23F5CFCBE} = {1EBA4FD7-DF52-49A0-8AA4-9E61ABC614F5}
-		{68C1433D-2DB7-499E-9225-CB8191891F8F} = {1EBA4FD7-DF52-49A0-8AA4-9E61ABC614F5}
-		{940983FB-5DDE-4B13-BBA0-FDA1EEED6C02} = {1EBA4FD7-DF52-49A0-8AA4-9E61ABC614F5}
-		{4B503AF7-E1D3-4C94-AE98-4175CC94CD4B} = {12CB0510-7B1E-4518-AA3B-412A4D323D42}
 		{E85BF19B-E671-4A1E-BC67-B545700B4BF1} = {1856E9E1-33C4-45C1-832C-854F9BE1ACC4}
 		{3C333E39-520D-4183-8E3D-D0FF6628C15E} = {1856E9E1-33C4-45C1-832C-854F9BE1ACC4}
-		{1CFDF4C1-53F7-4A32-B83D-4B99AFC95A8D} = {12CB0510-7B1E-4518-AA3B-412A4D323D42}
 		{D757285D-0B7C-47C4-BC54-744B6E2A7E61} = {9D8EDBBA-7A97-4D84-9B12-7FCC2F834046}
-		{B2100081-54BC-4500-80D9-2A5B1CBCFD1B} = {1EBA4FD7-DF52-49A0-8AA4-9E61ABC614F5}
 		{B4932E85-54ED-4F1D-8773-184E3A0ADD62} = {0A264424-1AD7-49FA-B813-D96498066479}
 		{DA9765D1-568D-48CE-A723-D7F10534FA22} = {0A264424-1AD7-49FA-B813-D96498066479}
-		{BDFA0BDC-5645-4A7F-B063-0E162EABB7EF} = {1EBA4FD7-DF52-49A0-8AA4-9E61ABC614F5}
 		{0C46F8C9-A44A-4AAD-A0B7-D0FB387A0B00} = {0A264424-1AD7-49FA-B813-D96498066479}
-		{5EB13A98-97E5-4848-A5F3-D90974AA76A8} = {1EBA4FD7-DF52-49A0-8AA4-9E61ABC614F5}
-		{3573D496-3EE5-48B2-9060-E5306B5E3A94} = {1EBA4FD7-DF52-49A0-8AA4-9E61ABC614F5}
 		{B703E19E-A1A7-4D7B-908A-C28B66512A8B} = {9D8EDBBA-7A97-4D84-9B12-7FCC2F834046}
-		{F41F510E-5D32-44A1-97A0-228B507DDA90} = {1EBA4FD7-DF52-49A0-8AA4-9E61ABC614F5}
-		{6B3E64C2-34D4-4086-878D-D736431F0004} = {12CB0510-7B1E-4518-AA3B-412A4D323D42}
 		{5D263A57-A36F-44DF-9AC8-9F4AA928B221} = {0A264424-1AD7-49FA-B813-D96498066479}
-		{3263AB0B-19E7-456B-9DCF-C7DC3BEED337} = {1EBA4FD7-DF52-49A0-8AA4-9E61ABC614F5}
 		{BA30E984-11EE-426B-872C-8DF74D48C3B3} = {0A264424-1AD7-49FA-B813-D96498066479}
-		{586340C5-C724-456D-A385-F8265D7E9FBA} = {1EBA4FD7-DF52-49A0-8AA4-9E61ABC614F5}
 		{1F68D7B4-3565-4278-A207-8724303EEF60} = {0A264424-1AD7-49FA-B813-D96498066479}
-		{A9D6C2E8-E8B0-482B-ABBD-BEBA119AB89A} = {1EBA4FD7-DF52-49A0-8AA4-9E61ABC614F5}
-		{18BC89C3-3247-413C-9199-934741507CA0} = {1856E9E1-33C4-45C1-832C-854F9BE1ACC4}
 		{F23C3553-3FE7-4ECC-9BBA-8C498C3B4398} = {D60224CF-7F12-453B-851E-B5C01F9D2BBE}
 		{87606DDA-82DA-4BCD-87B3-E7CEFB05EADC} = {F23C3553-3FE7-4ECC-9BBA-8C498C3B4398}
-		{30AB5928-8D59-4D35-8866-D42EF3273433} = {12CB0510-7B1E-4518-AA3B-412A4D323D42}
-		{E3F6DC4A-57F4-436F-86C5-6B2F782AA2C9} = {12CB0510-7B1E-4518-AA3B-412A4D323D42}
 		{F917D5C2-A067-47F3-8E18-1CD2C95FEC29} = {F23C3553-3FE7-4ECC-9BBA-8C498C3B4398}
 		{2E999BFE-9128-4BAD-9BB5-88C20295BE61} = {D60224CF-7F12-453B-851E-B5C01F9D2BBE}
 		{6A818E8C-144C-46E7-8C66-B66CD85487C0} = {9D8EDBBA-7A97-4D84-9B12-7FCC2F834046}
-		{AB1B080B-FAA1-44F9-927E-1BB3DD658012} = {12CB0510-7B1E-4518-AA3B-412A4D323D42}
+		{5BC237BD-BA54-4846-AA53-6067C0786CFF} = {2E080205-D55D-43C9-BD56-A0FDC62A790C}
+		{50835493-724D-478C-B497-3100AD1F1362} = {2E080205-D55D-43C9-BD56-A0FDC62A790C}
+		{2150F1EF-794B-48CD-A847-DB0061197741} = {2E080205-D55D-43C9-BD56-A0FDC62A790C}
+		{6014C53E-91F8-4AFA-AE44-49618BDC875E} = {2E080205-D55D-43C9-BD56-A0FDC62A790C}
+		{1C3B97FB-1382-4529-8A81-A1DCE260746A} = {2E080205-D55D-43C9-BD56-A0FDC62A790C}
+		{3FE79B5B-99C2-4C99-8B96-21C7133B3EF5} = {2E080205-D55D-43C9-BD56-A0FDC62A790C}
+		{943A43D6-C278-4882-A37D-AC12F49A256A} = {12CB0510-7B1E-4518-AA3B-412A4D323D42}
+		{6B0643C4-FFE3-4B32-80D9-9E0E40EB2907} = {2E080205-D55D-43C9-BD56-A0FDC62A790C}
+		{B9098703-E776-485B-9B9D-7561BE24E820} = {1856E9E1-33C4-45C1-832C-854F9BE1ACC4}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {5D5D3927-6714-40C0-84EA-44C5BA4C5E87}

+ 0 - 27
src/YSAI.DB.Pack/Program.cs

@@ -1,27 +0,0 @@
-using YSAI.Unility;
-
-namespace YSAI.DB.Pack
-{
-    internal class Program
-    {
-        private static void Main(string[] args)
-        {
-            string FileDirectory = string.Empty;
-            string[] paths = AppDomain.CurrentDomain.BaseDirectory.Split('\\');
-            for (int i = 0; i < paths.Length - 5; i++)
-            {
-                FileDirectory += $"{paths[i]}//";
-            }
-            FileDirectory += "YSAI.Manage//param";
-            string Name = "YSAI.DB";
-            string ParamFile = $"{FileDirectory}//{Name}.Param.json";
-            string ParamDetailsFile = $"{FileDirectory}//{Name}.ParamDetails.json";
-            if (!Directory.Exists(FileDirectory))
-            {
-                Directory.CreateDirectory(FileDirectory);
-            }
-            FileTool.StringToFile(ParamFile, new DBData.Basics().ToJson().JsonFormatting());
-            FileTool.StringToFile(ParamDetailsFile, ReflexTool.GetClassAllPropertyData<DBData.Basics>().ToJson().JsonFormatting());
-        }
-    }
-}

File diff suppressed because it is too large
+ 0 - 17
src/YSAI.DB.Pack/YSAI.DB.Pack.csproj


+ 0 - 55
src/YSAI.DaqManage/DaqManageData.cs

@@ -1,55 +0,0 @@
-namespace YSAI.DaqManage
-{
-    /// <summary>
-    /// 采集管理数据
-    /// </summary>
-    public class DaqManageData
-    {
-        /// <summary>
-        /// 基础数据
-        /// </summary>
-        public class Basics
-        {
-            /// <summary>
-            /// 库文件统一存放文件夹,绝对路径
-            /// </summary>
-            public string? LibFolder { get; set; } = $"{AppDomain.CurrentDomain.BaseDirectory}lib";
-
-            /// <summary>
-            /// 库配置文件夹,绝对路径
-            /// </summary>
-            public string? LibConfigFolder { get; set; } = $"{AppDomain.CurrentDomain.BaseDirectory}config";
-
-            /// <summary>
-            /// 库配置唯一标识符键
-            /// </summary>
-            public string? LibConfigSNKey { get; set; } = "SN";
-
-            /// <summary>
-            /// 动态库监控格式
-            /// </summary>
-            public string? DllWatcherFormat { get; set; } = "YSAI.*.dll";
-
-            /// <summary>
-            /// 配置监控格式
-            /// </summary>
-            public string? ConfigWatcherFormat { get; set; } = "*.Daq.Config.json";
-
-            /// <summary>
-            /// 配置文件名称的格式,SN与配置数据中的SN一致
-            /// 库配置:命名空间 + 类名.SN.Config.json
-            /// </summary>
-            public string? ConfigFileNameFormat { get; set; } = "{0}.*.Daq.Config.json";
-
-            /// <summary>
-            /// 配置替换格式
-            /// </summary>
-            public string? ConfigReplaceFormat { get; set; } = ".Daq.Config.json";
-
-            /// <summary>
-            /// 自动打开,创建实例成功后
-            /// </summary>
-            public bool AutoOn { get; set; } = true;
-        }
-    }
-}

File diff suppressed because it is too large
+ 0 - 1366
src/YSAI.DaqManage/DaqManageOperate.cs


+ 0 - 27
src/YSAI.Kafka.Pack/Program.cs

@@ -1,27 +0,0 @@
-using YSAI.Unility;
-
-namespace YSAI.Kafka.Pack
-{
-    internal class Program
-    {
-        private static void Main(string[] args)
-        {
-            string FileDirectory = string.Empty;
-            string[] paths = AppDomain.CurrentDomain.BaseDirectory.Split('\\');
-            for (int i = 0; i < paths.Length - 5; i++)
-            {
-                FileDirectory += $"{paths[i]}//";
-            }
-            FileDirectory += "YSAI.Manage//param";
-            string Name = "YSAI.Kafka";
-            string ParamFile = $"{FileDirectory}//{Name}.Param.json";
-            string ParamDetailsFile = $"{FileDirectory}//{Name}.ParamDetails.json";
-            if (!Directory.Exists(FileDirectory))
-            {
-                Directory.CreateDirectory(FileDirectory);
-            }
-            FileTool.StringToFile(ParamFile, new KafkaData.Basics().ToJson().JsonFormatting());
-            FileTool.StringToFile(ParamDetailsFile, ReflexTool.GetClassAllPropertyData<KafkaData.Basics>().ToJson().JsonFormatting());
-        }
-    }
-}

File diff suppressed because it is too large
+ 0 - 16
src/YSAI.Kafka.Pack/YSAI.Kafka.Pack.csproj


+ 0 - 12
src/YSAI.Manage/.config/dotnet-tools.json

@@ -1,12 +0,0 @@
-{
-  "version": 1,
-  "isRoot": true,
-  "tools": {
-    "dotnet-ef": {
-      "version": "7.0.9",
-      "commands": [
-        "dotnet-ef"
-      ]
-    }
-  }
-}

+ 0 - 145
src/YSAI.Manage/Controllers/DaqOperateController.cs

@@ -1,145 +0,0 @@
-using Microsoft.AspNetCore.Mvc;
-using YSAI.DaqManage;
-using YSAI.Model.data;
-using YSAI.Model.@enum;
-namespace YSAI.Manage.Controllers
-{
-    /// <summary>
-    /// 采集库操作
-    /// </summary>
-    [ApiController]
-    [Route("api/[controller]/[action]")]
-    public class DaqOperateController : Controller
-    {
-        /// <summary>
-        /// 统一操作结果
-        /// </summary>
-        private readonly DaqManageOperate daqManageOperate = Program.daqManageOperate;
-
-        /// <summary>
-        /// 批量读取
-        /// </summary>
-        /// <param name="FormFile">地址数据文件</param>
-        /// <param name="ISn">实例唯一标识符</param>
-        /// <returns>统一出参</returns>
-        [HttpPost]
-        public OperateResult Reads(IFormFile FormFile, string ISn)
-        {
-            return daqManageOperate.Read(FormFile, ISn);
-        }
-
-        /// <summary>
-        /// 单点读取
-        /// </summary>
-        /// <param name="AddressName">地址名称</param>
-        /// <param name="ISn">实例唯一标识符</param>
-        /// <returns>统一出参</returns>
-        [HttpPost]
-        public OperateResult Read(string AddressName, string ISn)
-        {
-            return daqManageOperate.Read(AddressName, ISn);
-        }
-
-        /// <summary>
-        /// 单点写入
-        /// </summary>
-        /// <param name="AddressName">地址名称</param>
-        /// <param name="Value">值</param>
-        /// <param name="DaType">数据类型</param>
-        /// <param name="ISn">实例唯一标识符</param>
-        /// <returns>统一出参</returns>
-        [HttpPost]
-        public OperateResult Write(string AddressName, string Value, DataType DaType, string ISn)
-        {
-            return daqManageOperate.Write(AddressName, Value, DaType, ISn);
-        }
-
-        /// <summary>
-        /// 订阅
-        /// </summary>
-        /// <param name="FormFile">地址数据文件</param>
-        /// <param name="ISn">实例唯一标识符</param>
-        /// <returns>统一出参</returns>
-        [HttpPost]
-        public OperateResult Subscribe(IFormFile FormFile, string ISn)
-        {
-            return daqManageOperate.Subscribe(FormFile, ISn);
-        }
-
-        /// <summary>
-        /// 取消订阅
-        /// </summary>
-        /// <param name="FormFile">地址数据文件</param>
-        /// <param name="ISn">实例唯一标识符</param>
-        /// <returns></returns>
-        [HttpPost]
-        public OperateResult UnSubscribe(IFormFile FormFile, string ISn)
-        {
-            return daqManageOperate.UnSubscribe(FormFile, ISn);
-        }
-
-        /// <summary>
-        /// 程序集唯一标识符集合
-        /// </summary>
-        /// <returns>统一出参</returns>
-        [HttpPost]
-        public List<string>? TypeSns()
-        {
-            return daqManageOperate.TypeSns();
-        }
-
-        /// <summary>
-        /// 实例唯一标识符集合
-        /// </summary>
-        /// <returns>统一出参</returns>
-        [HttpPost]
-        public List<string>? InstanceSns()
-        {
-            return daqManageOperate.InstanceSns();
-        }
-
-        /// <summary>
-        /// 释放指定实例
-        /// </summary>
-        /// <param name="ISn">实例唯一标识符</param>
-        /// <returns>统一出参</returns>
-        [HttpPost]
-        public OperateResult DisposeISn(string ISn)
-        {
-            return daqManageOperate.DisposeISn(ISn);
-        }
-
-        /// <summary>
-        /// 移除指定实例
-        /// </summary>
-        /// <param name="ISn">实例唯一标识符</param>
-        /// <returns>统一出参</returns>
-        [HttpPost]
-        public OperateResult Remove(string ISn)
-        {
-            return daqManageOperate.RemoveISn(ISn);
-        }
-
-        /// <summary>
-        /// 打开
-        /// </summary>
-        /// <param name="ISn">实例唯一标识符</param>
-        /// <returns>统一出参</returns>
-        [HttpPost]
-        public OperateResult On(string ISn)
-        {
-            return daqManageOperate.On(ISn);
-        }
-
-        /// <summary>
-        /// 关闭
-        /// </summary>
-        /// <param name="ISn">实例唯一标识符</param>
-        /// <returns>统一出参</returns>
-        [HttpPost]
-        public OperateResult Off(string ISn)
-        {
-            return daqManageOperate.Off(ISn);
-        }
-    }
-}

+ 0 - 63
src/YSAI.Manage/Controllers/FileOperateController.cs

@@ -1,63 +0,0 @@
-using Microsoft.AspNetCore.Mvc;
-using YSAI.DaqManage;
-using YSAI.Model.data;
-
-namespace YSAI.Manage.Controllers
-{
-    /// <summary>
-    /// 文件操作
-    /// </summary>
-    [ApiController]
-    [Route("api/[controller]/[action]")]
-    public class FileOperateController : Controller
-    {
-        /// <summary>
-        /// 统一操作结果
-        /// </summary>
-        private readonly DaqManageOperate daqManageOperate = Program.daqManageOperate;
-
-        /// <summary>
-        /// 设置库文件压缩包
-        /// </summary>
-        /// <param name="FormFiles">压缩包集合</param>
-        /// <returns>统一出参</returns>
-        [HttpPost]
-        public OperateResult SettingLibZip(List<IFormFile> FormFiles)
-        {
-            return daqManageOperate.SettingLibZip(FormFiles);
-        }
-
-        /// <summary>
-        /// 删除库文件夹(会自动释放此库的所有实例与程序集)
-        /// </summary>
-        /// <param name="FileNames">文件夹名集合</param>
-        /// <returns>统一出参</returns>
-        [HttpPost]
-        public OperateResult DeleteLibFolder(List<string> FileNames)
-        {
-            return daqManageOperate.DeleteLibFolder(FileNames);
-        }
-
-        /// <summary>
-        /// 设置库配置文件
-        /// </summary>
-        /// <param name="FormFiles">文件集合</param>
-        /// <returns>统一出参</returns>
-        [HttpPost]
-        public OperateResult SettingLibConfig(List<IFormFile> FormFiles)
-        {
-            return daqManageOperate.SettingLibConfig(FormFiles);
-        }
-
-        /// <summary>
-        /// 修改库配置文件
-        /// </summary>
-        /// <param name="FormFiles">文件集合</param>
-        /// <returns>统一出参</returns>
-        [HttpPost]
-        public OperateResult UpdateLibConfig(List<IFormFile> FormFiles)
-        {
-            return daqManageOperate.UpdateLibConfig(FormFiles);
-        }
-    }
-}

+ 0 - 77
src/YSAI.Manage/Controllers/InfoOperateController.cs

@@ -1,77 +0,0 @@
-using Microsoft.AspNetCore.Mvc;
-using YSAI.Model.data;
-using YSAI.Unility;
-
-namespace YSAI.Manage.Controllers
-{
-    /// <summary>
-    /// 信息操作
-    /// </summary>
-    [ApiController]
-    [Route("api/[controller]/[action]")]
-    public class InfoOperateController : Controller
-    {
-        /// <summary>
-        /// 文件夹路径
-        /// </summary>
-        private readonly string Path = $"{AppDomain.CurrentDomain.BaseDirectory}param";
-
-        /// <summary>
-        /// 参数文件名
-        /// </summary>
-        private readonly string ParamFileName = $"YSAI.*.Param.json";
-
-        /// <summary>
-        /// 参数详情文件名
-        /// </summary>
-        private readonly string ParamDetailsFileName = $"YSAI.*.ParamDetails.json";
-
-        /// <summary>
-        /// 获取库类型集合
-        /// </summary>
-        /// <returns></returns>
-        [HttpGet]
-        public List<string> LibTypes()
-        {
-            List<string> LTypes = new List<string>();
-            string[] Files = Directory.GetFiles(Path, ParamFileName, SearchOption.TopDirectoryOnly);
-            foreach (string File in Files)
-            {
-                LTypes.Add(FileTool.GetFileName(File).Split('.')[1]);
-            }
-            return LTypes;
-        }
-
-        /// <summary>
-        /// 参数
-        /// </summary>
-        /// <param name="LType">库类型</param>
-        /// <returns>统一出参</returns>
-        [HttpGet]
-        public object Param(string LType)
-        {
-            string path = $"{Path}//{ParamFileName.Replace("*", LType)}";
-            if (System.IO.File.Exists(path))
-            {
-                return FileTool.FileToString(path);
-            }
-            return new OperateResult(false, $"{LType} 不存在", 1);
-        }
-
-        /// <summary>
-        /// 参数详情
-        /// </summary>
-        /// <param name="LType">库类型</param>
-        /// <returns>统一出参</returns>
-        [HttpGet]
-        public object ParamDetails(string LType)
-        {
-            string path = $"{Path}//{ParamDetailsFileName.Replace("*", LType)}";
-            if (System.IO.File.Exists(path))
-            {
-                return FileTool.FileToString(path);
-            }
-            return new OperateResult(false, $"{LType} 不存在", 1);
-        }
-    }
-}

+ 0 - 89
src/YSAI.Manage/Controllers/RelayOperateController.cs

@@ -1,89 +0,0 @@
-using Microsoft.AspNetCore.Mvc;
-
-namespace YSAI.Manage.Controllers
-{
-    /// <summary>
-    /// 转发库操作
-    /// </summary>
-    [ApiController]
-    [Route("api/[controller]/[action]")]
-    public class RelayOperateController : Controller
-    {
-        ///// <summary>
-        ///// 打开
-        ///// </summary>
-        ///// <param name="ISn">实例唯一标识符</param>
-        ///// <returns>统一出参</returns>
-        //[HttpPost]
-        //public OperateResult On(string ISn)
-        //{
-        //    return RelayHandler.On(ISn);
-        //}
-
-        ///// <summary>
-        ///// 关闭
-        ///// </summary>
-        ///// <param name="ISn">实例唯一标识符</param>
-        ///// <returns>统一出参</returns>
-        //[HttpPost]
-        //public OperateResult Off(string ISn)
-        //{
-        //    return RelayHandler.Off(ISn);
-        //}
-
-        ///// <summary>
-        ///// 程序集唯一标识符集合
-        ///// </summary>
-        ///// <returns>统一出参</returns>
-        //[HttpPost]
-        //public List<string>? TypeSns()
-        //{
-        //    //return RelayHandler.TypeSns();
-        //}
-
-        ///// <summary>
-        ///// 实例唯一标识符集合
-        ///// </summary>
-        ///// <returns>统一出参</returns>
-        //[HttpPost]
-        //public List<string>? InstanceSns()
-        //{
-        //    //return RelayHandler.InstanceSns();
-        //}
-
-        ///// <summary>
-        ///// 释放指定实例
-        ///// </summary>
-        ///// <param name="ISn">实例唯一标识符</param>
-        ///// <returns>统一出参</returns>
-        //[HttpPost]
-        //public OperateResult DisposeISn(string ISn)
-        //{
-        //    //return RelayHandler.DisposeISn(ISn);
-        //}
-
-        ///// <summary>
-        ///// 移除指定实例
-        ///// </summary>
-        ///// <param name="ISn">实例唯一标识符</param>
-        ///// <returns>统一出参</returns>
-        //[HttpPost]
-        //public OperateResult Remove(string ISn)
-        //{
-        //    //return RelayHandler.RemoveISn(ISn);
-        //}
-
-        ///// <summary>
-        ///// 数据转发
-        ///// </summary>
-        ///// <param name="Topic">主题</param>
-        ///// <param name="Content">内容</param>
-        ///// <param name="ISns">实例唯一标识符集合,空则全部发送</param>
-        ///// <returns>统一出参</returns>
-        //[HttpPost]
-        //public OperateResult Relay(string Topic, string Content, List<string>? ISns = null)
-        //{
-        //    //return RelayHandler.Produce(Topic, Content, ISns);
-        //}
-    }
-}

+ 0 - 74
src/YSAI.Manage/Program.cs

@@ -1,74 +0,0 @@
-using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Mvc.Authorization;
-using System.Reflection;
-using System.Text.Json.Serialization;
-using YSAI.DaqManage;
-using YSAI.Model.data;
-using YSAI.Unility;
-
-namespace YSAI.Manage
-{
-    public class Program
-    {
-        public static DaqManageOperate daqManageOperate;
-
-        private static void DaqEvent(object? sender, EventResult e)
-        {
-            Console.ForegroundColor = ConsoleColor.Green;
-            Console.WriteLine(e.Message);
-        }
-
-        private static void RelayEvent(object? sender, object e)
-        {
-            EventResult? result = JsonTool.StringToJsonEntity<EventResult>(e.ToJson());
-            Console.ForegroundColor = ConsoleColor.Red;
-            Console.WriteLine(result.Message);
-        }
-
-        public static void Main(string[] args)
-        {
-            //创建实例
-            daqManageOperate = DaqManageOperate.Instance();
-            daqManageOperate.OnEvent += DaqEvent;
-            //RelayHandler.RelayEventRegister(RelayEvent);
-
-            var builder = WebApplication.CreateBuilder(args);
-
-            // 授权策略
-            var policy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();
-
-            // Add services to the container.
-            builder.Services.AddControllers(options => options.Filters.Add(new AuthorizeFilter(policy))).AddJsonOptions(options =>
-            {
-                //无驼峰,名称大小不变
-                options.JsonSerializerOptions.PropertyNamingPolicy = null;
-            }).AddJsonOptions(options =>
-            {
-                //让枚举以字符串形式展现
-                options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
-            });
-
-            builder.Services.AddEndpointsApiExplorer();
-            //Swagger 显示注释
-            builder.Services.AddSwaggerGen((o) =>
-            {
-                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.XML";
-                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
-                o.IncludeXmlComments(xmlPath);
-            });
-            var app = builder.Build();
-
-            app.UseSwagger();
-            app.UseSwaggerUI();
-
-            app.UseHttpsRedirection();
-
-            app.UseAuthentication();
-            app.UseAuthorization();
-
-            app.MapControllers();
-
-            app.Run();
-        }
-    }
-}

+ 0 - 21
src/YSAI.Manage/Properties/PublishProfiles/FolderProfile.pubxml

@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-https://go.microsoft.com/fwlink/?LinkID=208121.
--->
-<Project>
-  <PropertyGroup>
-    <DeleteExistingFiles>true</DeleteExistingFiles>
-    <ExcludeApp_Data>false</ExcludeApp_Data>
-    <LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
-    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
-    <LastUsedPlatform>Any CPU</LastUsedPlatform>
-    <PublishProvider>FileSystem</PublishProvider>
-    <PublishUrl>bin\Release\net6.0\publish\</PublishUrl>
-    <WebPublishMethod>FileSystem</WebPublishMethod>
-    <_TargetId>Folder</_TargetId>
-    <SiteUrlToLaunchAfterPublish />
-    <TargetFramework>net8.0</TargetFramework>
-    <ProjectGuid>6e9667c0-303c-472d-949b-60f812e6c659</ProjectGuid>
-    <SelfContained>false</SelfContained>
-  </PropertyGroup>
-</Project>

+ 0 - 31
src/YSAI.Manage/Properties/launchSettings.json

@@ -1,31 +0,0 @@
-{
-  "$schema": "https://json.schemastore.org/launchsettings.json",
-  "iisSettings": {
-    "windowsAuthentication": false,
-    "anonymousAuthentication": true,
-    "iisExpress": {
-      "applicationUrl": "http://localhost:8381",
-      "sslPort": 44397
-    }
-  },
-  "profiles": {
-    "YSAI.Manage": {
-      "commandName": "Project",
-      "dotnetRunMessages": true,
-      "launchBrowser": true,
-      "launchUrl": "swagger",
-      "applicationUrl": "https://127.0.0.1:19876;http://127.0.0.1:19875",
-      "environmentVariables": {
-        "ASPNETCORE_ENVIRONMENT": "Development"
-      }
-    },
-    "IIS Express": {
-      "commandName": "IISExpress",
-      "launchBrowser": true,
-      "launchUrl": "swagger",
-      "environmentVariables": {
-        "ASPNETCORE_ENVIRONMENT": "Development"
-      }
-    }
-  }
-}

+ 0 - 109
src/YSAI.Manage/YSAI.Manage.csproj

@@ -1,109 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk.Web">
-
-  <PropertyGroup>
-    <TargetFramework>net8.0</TargetFramework>
-    <Nullable>enable</Nullable>
-    <ImplicitUsings>enable</ImplicitUsings>
-    <GenerateDocumentationFile>True</GenerateDocumentationFile>
-    <PlatformTarget>AnyCPU</PlatformTarget>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <Content Remove="config\ReflectionConfig.json" />
-    <Content Remove="param\YSAI.Can.Param.json" />
-    <Content Remove="param\YSAI.Can.ParamDetails.json" />
-    <Content Remove="param\YSAI.DB.Param.json" />
-    <Content Remove="param\YSAI.DB.ParamDetails.json" />
-    <Content Remove="param\YSAI.Kafka.Param.json" />
-    <Content Remove="param\YSAI.Kafka.ParamDetails.json" />
-    <Content Remove="param\YSAI.Modbus.Param.json" />
-    <Content Remove="param\YSAI.Modbus.ParamDetails.json" />
-    <Content Remove="param\YSAI.Mqtt.Param.json" />
-    <Content Remove="param\YSAI.Mqtt.ParamDetails.json" />
-    <Content Remove="param\YSAI.OpcDa.Param.json" />
-    <Content Remove="param\YSAI.OpcDa.ParamDetails.json" />
-    <Content Remove="param\YSAI.OpcDaHttp.Param.json" />
-    <Content Remove="param\YSAI.OpcDaHttp.ParamDetails.json" />
-    <Content Remove="param\YSAI.OpcUa.Param.json" />
-    <Content Remove="param\YSAI.OpcUa.ParamDetails.json" />
-    <Content Remove="param\YSAI.RabbitMQ.Param.json" />
-    <Content Remove="param\YSAI.RabbitMQ.ParamDetails.json" />
-    <Content Remove="param\YSAI.S7.Param.json" />
-    <Content Remove="param\YSAI.S7.ParamDetails.json" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <None Include="config\ReflectionConfig.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.Can.Param.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.Can.ParamDetails.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.DB.Param.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.DB.ParamDetails.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.Kafka.Param.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.Kafka.ParamDetails.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.Modbus.Param.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.Modbus.ParamDetails.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.Mqtt.Param.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.Mqtt.ParamDetails.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.OpcDa.Param.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.OpcDa.ParamDetails.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.OpcDaHttp.Param.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.OpcDaHttp.ParamDetails.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.OpcUa.Param.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.OpcUa.ParamDetails.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.RabbitMQ.Param.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.RabbitMQ.ParamDetails.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.S7.Param.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-    <None Include="param\YSAI.S7.ParamDetails.json">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\YSAI.DaqManage\YSAI.DaqManage.csproj" />
-    <ProjectReference Include="..\YSAI.RelayManage\YSAI.RelayManage.csproj" />
-  </ItemGroup>
-
-</Project>

+ 0 - 8
src/YSAI.Manage/appsettings.Development.json

@@ -1,8 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft.AspNetCore": "Warning"
-    }
-  }
-}

+ 0 - 9
src/YSAI.Manage/appsettings.json

@@ -1,9 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft.AspNetCore": "Warning"
-    }
-  },
-  "AllowedHosts": "*"
-}

+ 0 - 82
src/YSAI.Manage/config/ReflectionConfig.json

@@ -1,82 +0,0 @@
-{
-  "DllDatas": [
-    {
-      "DllPath": "YSAI.RelayManage.dll",
-      "IsAbsolutePath": false,
-      "NamespaceDatas": [
-        {
-          "Namespace": "YSAI.RelayManage",
-          "ClassDatas": [
-            {
-              "SN": "YSAI.RelayManage.RelayManageOperate[Instance]",
-              "ClassName": "RelayManageOperate",
-              "ConstructorParam": null,
-              "MethodDatas": [
-                {
-                  "SN": "[Subscribe]",
-                  "WhetherExecute": false,
-                  "MethodName": "Subscribe",
-                  "MethodParam": null
-                },
-                {
-                  "SN": "[UnSubscribe]",
-                  "WhetherExecute": false,
-                  "MethodName": "UnSubscribe",
-                  "MethodParam": null
-                },
-                {
-                  "SN": "[Produce]",
-                  "WhetherExecute": false,
-                  "MethodName": "Produce",
-                  "MethodParam": null
-                },
-                {
-                  "SN": "[TypeSns]",
-                  "WhetherExecute": false,
-                  "MethodName": "TypeSns",
-                  "MethodParam": null
-                },
-                {
-                  "SN": "[InstanceSns]",
-                  "WhetherExecute": false,
-                  "MethodName": "InstanceSns",
-                  "MethodParam": null
-                },
-                {
-                  "SN": "[DisposeISn]",
-                  "WhetherExecute": false,
-                  "MethodName": "DisposeISn",
-                  "MethodParam": null
-                },
-                {
-                  "SN": "[RemoveISn]",
-                  "WhetherExecute": false,
-                  "MethodName": "RemoveISn",
-                  "MethodParam": null
-                },
-                {
-                  "SN": "[On]",
-                  "WhetherExecute": false,
-                  "MethodName": "On",
-                  "MethodParam": null
-                },
-                {
-                  "SN": "[Off]",
-                  "WhetherExecute": false,
-                  "MethodName": "Off",
-                  "MethodParam": null
-                }
-              ],
-              "EventDatas": [
-                {
-                  "SN": "[OnEvent]",
-                  "EventName": "OnEvent"
-                }
-              ]
-            }
-          ]
-        }
-      ]
-    }
-  ]
-}

+ 0 - 7
src/YSAI.Manage/param/YSAI.Beckhoff.Param.json

@@ -1,7 +0,0 @@
-{
-    "SN": "4D6C4F9EC5BA4395AAF2E37CB1E16B4D",
-    "AmsNetID": "192.168.66.130.1.1",
-    "Port": 851,
-    "TaskNumber": 5,
-    "TaskHandleInterval": 100
-}

+ 0 - 37
src/YSAI.Manage/param/YSAI.Beckhoff.ParamDetails.json

@@ -1,37 +0,0 @@
-[
-    {
-        "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
-    }
-]

+ 0 - 10
src/YSAI.Manage/param/YSAI.Can.Param.json

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

+ 0 - 139
src/YSAI.Manage/param/YSAI.Can.ParamDetails.json

@@ -1,139 +0,0 @@
-[
-    {
-        "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
-    }
-]

+ 0 - 10
src/YSAI.Manage/param/YSAI.DB.Param.json

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

+ 0 - 79
src/YSAI.Manage/param/YSAI.DB.ParamDetails.json

@@ -1,79 +0,0 @@
-[
-    {
-        "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
-    }
-]

+ 0 - 7
src/YSAI.Manage/param/YSAI.Kafka.Param.json

@@ -1,7 +0,0 @@
-{
-    "SN": "6DAA493FFA7E45A6B93BE91211E4763E",
-    "BootstrapServers": null,
-    "WaitTime": 1000,
-    "SecurityProtocol": "Plaintext",
-    "AutoOffsetReset": "Latest"
-}

+ 0 - 74
src/YSAI.Manage/param/YSAI.Kafka.ParamDetails.json

@@ -1,74 +0,0 @@
-[
-    {
-        "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
-    }
-]

+ 0 - 14
src/YSAI.Manage/param/YSAI.Mitsubishi.Param.json

@@ -1,14 +0,0 @@
-{
-    "SN": "2D7D20DCBE8E4066ABB86F6A401CB6F8",
-    "Ip": "127.0.0.1",
-    "Port": 6688,
-    "InterruptReconnection": true,
-    "ReconnectionInterval": 2000,
-    "Timeout": 1000,
-    "PType": "A1E",
-    "HandleInterval": 1000,
-    "ChangeOut": true,
-    "AllOut": false,
-    "TaskNumber": 5,
-    "TaskHandleInterval": 100
-}

+ 0 - 97
src/YSAI.Manage/param/YSAI.Mitsubishi.ParamDetails.json

@@ -1,97 +0,0 @@
-[
-    {
-        "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": "InterruptReconnection",
-        "Describe": "是否需要断开重新连接",
-        "ParamType": "Boolean",
-        "EnumArray": null,
-        "ObjArray": null
-    },
-    {
-        "Name": "ReconnectionInterval",
-        "Describe": "重连间隔",
-        "ParamType": "Int32",
-        "EnumArray": null,
-        "ObjArray": null
-    },
-    {
-        "Name": "Timeout",
-        "Describe": "超时时间",
-        "ParamType": "Int32",
-        "EnumArray": null,
-        "ObjArray": null
-    },
-    {
-        "Name": "PType",
-        "Describe": "协议类型",
-        "ParamType": "Enum",
-        "EnumArray": [
-            {
-                "Value": 0,
-                "Name": "A1E",
-                "Describe": "三菱MC.A1E帧"
-            },
-            {
-                "Value": 1,
-                "Name": "QNA3E",
-                "Describe": "三菱MC.QNA3E帧"
-            }
-        ],
-        "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
-    }
-]

+ 0 - 22
src/YSAI.Manage/param/YSAI.Modbus.Param.json

@@ -1,22 +0,0 @@
-{
-    "SN": "B5D247FFD01046FA8A76349AD09649D4",
-    "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
-}

+ 0 - 327
src/YSAI.Manage/param/YSAI.Modbus.ParamDetails.json

@@ -1,327 +0,0 @@
-[
-    {
-        "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
-    }
-]

+ 0 - 9
src/YSAI.Manage/param/YSAI.Mqtt.Param.json

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

+ 0 - 67
src/YSAI.Manage/param/YSAI.Mqtt.ParamDetails.json

@@ -1,67 +0,0 @@
-[
-    {
-        "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
-    }
-]

+ 0 - 6
src/YSAI.Manage/param/YSAI.NetMQ.Param.json

@@ -1,6 +0,0 @@
-{
-    "SAddress": "tcp://127.0.0.1:8866",
-    "PAddress": "tcp://127.0.0.1:8866",
-    "ReceiveHighWatermark": 1000,
-    "TimeOut": 1000
-}

+ 0 - 30
src/YSAI.Manage/param/YSAI.NetMQ.ParamDetails.json

@@ -1,30 +0,0 @@
-[
-    {
-        "Name": "SAddress",
-        "Describe": "订阅地址",
-        "ParamType": "String",
-        "EnumArray": null,
-        "ObjArray": null
-    },
-    {
-        "Name": "PAddress",
-        "Describe": "发布地址",
-        "ParamType": "String",
-        "EnumArray": null,
-        "ObjArray": null
-    },
-    {
-        "Name": "ReceiveHighWatermark",
-        "Describe": "队列大小",
-        "ParamType": "Int32",
-        "EnumArray": null,
-        "ObjArray": null
-    },
-    {
-        "Name": "TimeOut",
-        "Describe": "超时时间",
-        "ParamType": "Int32",
-        "EnumArray": null,
-        "ObjArray": null
-    }
-]

+ 0 - 9
src/YSAI.Manage/param/YSAI.Netty.Param.json

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

+ 0 - 51
src/YSAI.Manage/param/YSAI.Netty.ParamDetails.json

@@ -1,51 +0,0 @@
-[
-    {
-        "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
-    }
-]

+ 0 - 17
src/YSAI.Manage/param/YSAI.Omron.Param.json

@@ -1,17 +0,0 @@
-{
-    "SN": "4DE688731B15438AB527B75D517CED01",
-    "Ip": "127.0.0.1",
-    "Port": 6688,
-    "InterruptReconnection": true,
-    "ReconnectionInterval": 2000,
-    "Timeout": 1000,
-    "UnitAddress": 0,
-    "SA1": 11,
-    "PType": "FINS",
-    "EFormat": "CDAB",
-    "HandleInterval": 1000,
-    "ChangeOut": true,
-    "AllOut": false,
-    "TaskNumber": 5,
-    "TaskHandleInterval": 100
-}

+ 0 - 134
src/YSAI.Manage/param/YSAI.Omron.ParamDetails.json

@@ -1,134 +0,0 @@
-[
-    {
-        "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": "InterruptReconnection",
-        "Describe": "是否需要断开重新连接",
-        "ParamType": "Boolean",
-        "EnumArray": null,
-        "ObjArray": null
-    },
-    {
-        "Name": "ReconnectionInterval",
-        "Describe": "重连间隔",
-        "ParamType": "Int32",
-        "EnumArray": null,
-        "ObjArray": null
-    },
-    {
-        "Name": "Timeout",
-        "Describe": "超时时间",
-        "ParamType": "Int32",
-        "EnumArray": null,
-        "ObjArray": null
-    },
-    {
-        "Name": "UnitAddress",
-        "Describe": "目标单元地址",
-        "ParamType": "Byte",
-        "EnumArray": null,
-        "ObjArray": null
-    },
-    {
-        "Name": "SA1",
-        "Describe": "SA1客户端节点编号",
-        "ParamType": "Byte",
-        "EnumArray": null,
-        "ObjArray": null
-    },
-    {
-        "Name": "PType",
-        "Describe": "协议类型",
-        "ParamType": "Enum",
-        "EnumArray": [
-            {
-                "Value": 0,
-                "Name": "FINS",
-                "Describe": "欧姆龙FINS"
-            }
-        ],
-        "ObjArray": null
-    },
-    {
-        "Name": "EFormat",
-        "Describe": "数据大小端",
-        "ParamType": "Enum",
-        "EnumArray": [
-            {
-                "Value": 0,
-                "Name": "ABCD",
-                "Describe": "大端序ABCD"
-            },
-            {
-                "Value": 1,
-                "Name": "BADC",
-                "Describe": "中端序BADC"
-            },
-            {
-                "Value": 2,
-                "Name": "CDAB",
-                "Describe": "中端序CDAB"
-            },
-            {
-                "Value": 3,
-                "Name": "DCBA",
-                "Describe": "小端序DCBA"
-            }
-        ],
-        "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
-    }
-]

+ 0 - 9
src/YSAI.Manage/param/YSAI.OpcDa.Param.json

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

+ 0 - 60
src/YSAI.Manage/param/YSAI.OpcDa.ParamDetails.json

@@ -1,60 +0,0 @@
-[
-    {
-        "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
-    }
-]

+ 0 - 12
src/YSAI.Manage/param/YSAI.OpcDaHttp.Param.json

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

+ 0 - 83
src/YSAI.Manage/param/YSAI.OpcDaHttp.ParamDetails.json

@@ -1,83 +0,0 @@
-[
-    {
-        "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
-    }
-]

+ 0 - 18
src/YSAI.Manage/param/YSAI.OpcUa.Param.json

@@ -1,18 +0,0 @@
-{
-    "SubscribeSingleGroupMaxCount": 0,
-    "SN": "939A6F68B1DC49DD99A73A731CCC9410",
-    "UserName": null,
-    "Password": null,
-    "Cer": null,
-    "SecreKey": null,
-    "ServerUrl": null,
-    "CustomName": "8f538ef4f3db4e01afa6d5990cdf7806",
-    "Timeout": 5000,
-    "SamplingInterval": 100,
-    "PublishingInterval": 1000,
-    "KeepAliveCount": 261120,
-    "LifetimeCount": 783360,
-    "QueueSize": 1020,
-    "TaskNumber": 5,
-    "TaskHandleInterval": 100
-}

+ 0 - 107
src/YSAI.Manage/param/YSAI.OpcUa.ParamDetails.json

@@ -1,107 +0,0 @@
-[
-    {
-        "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
-    }
-]

+ 0 - 8
src/YSAI.Manage/param/YSAI.RabbitMQ.Param.json

@@ -1,8 +0,0 @@
-{
-    "SN": "6840C33CC2A64A4B9E0FEE7D5A98045E",
-    "ExChangeName": null,
-    "HostName": null,
-    "Port": 0,
-    "UserName": null,
-    "Password": null
-}

+ 0 - 44
src/YSAI.Manage/param/YSAI.RabbitMQ.ParamDetails.json

@@ -1,44 +0,0 @@
-[
-    {
-        "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
-    }
-]

+ 0 - 13
src/YSAI.Manage/param/YSAI.S7.Param.json

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

+ 0 - 115
src/YSAI.Manage/param/YSAI.S7.ParamDetails.json

@@ -1,115 +0,0 @@
-[
-    {
-        "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
-    }
-]

+ 0 - 27
src/YSAI.Mewtocol.Pack/Program.cs

@@ -1,27 +0,0 @@
-using YSAI.Unility;
-
-namespace YSAI.Mewtocol.Pack
-{
-    internal class Program
-    {
-        static void Main(string[] args)
-        {
-            string FileDirectory = string.Empty;
-            string[] paths = AppDomain.CurrentDomain.BaseDirectory.Split('\\');
-            for (int i = 0; i < paths.Length - 5; i++)
-            {
-                FileDirectory += $"{paths[i]}//";
-            }
-            FileDirectory += "YSAI.Manage//param";
-            string Name = "YSAI.Mewtocol";
-            string ParamFile = $"{FileDirectory}//{Name}.Param.json";
-            string ParamDetailsFile = $"{FileDirectory}//{Name}.ParamDetails.json";
-            if (!Directory.Exists(FileDirectory))
-            {
-                Directory.CreateDirectory(FileDirectory);
-            }
-            FileTool.StringToFile(ParamFile, new MewtocolData.Basics().ToJson().JsonFormatting());
-            FileTool.StringToFile(ParamDetailsFile, ReflexTool.GetClassAllPropertyData<MewtocolData.Basics>().ToJson().JsonFormatting());
-        }
-    }
-}

File diff suppressed because it is too large
+ 0 - 18
src/YSAI.Mewtocol.Pack/YSAI.Mewtocol.Pack.csproj


+ 0 - 27
src/YSAI.Mitsubishi.Pack/Program.cs

@@ -1,27 +0,0 @@
-using YSAI.Unility;
-
-namespace YSAI.Mitsubishi.Pack
-{
-    internal class Program
-    {
-        static void Main(string[] args)
-        {
-            string FileDirectory = string.Empty;
-            string[] paths = AppDomain.CurrentDomain.BaseDirectory.Split('\\');
-            for (int i = 0; i < paths.Length - 5; i++)
-            {
-                FileDirectory += $"{paths[i]}//";
-            }
-            FileDirectory += "YSAI.Manage//param";
-            string Name = "YSAI.Mitsubishi";
-            string ParamFile = $"{FileDirectory}//{Name}.Param.json";
-            string ParamDetailsFile = $"{FileDirectory}//{Name}.ParamDetails.json";
-            if (!Directory.Exists(FileDirectory))
-            {
-                Directory.CreateDirectory(FileDirectory);
-            }
-            FileTool.StringToFile(ParamFile, new MitsubishiData.Basics().ToJson().JsonFormatting());
-            FileTool.StringToFile(ParamDetailsFile, ReflexTool.GetClassAllPropertyData<MitsubishiData.Basics>().ToJson().JsonFormatting());
-        }
-    }
-}

File diff suppressed because it is too large
+ 0 - 16
src/YSAI.Mitsubishi.Pack/YSAI.Mitsubishi.Pack.csproj


+ 0 - 27
src/YSAI.Modbus.Pack/Program.cs

@@ -1,27 +0,0 @@
-using YSAI.Unility;
-
-namespace YSAI.Modbus.Pack
-{
-    internal class Program
-    {
-        private static void Main(string[] args)
-        {
-            string FileDirectory = string.Empty;
-            string[] paths = AppDomain.CurrentDomain.BaseDirectory.Split('\\');
-            for (int i = 0; i < paths.Length - 5; i++)
-            {
-                FileDirectory += $"{paths[i]}//";
-            }
-            FileDirectory += "YSAI.Manage//param";
-            string Name = "YSAI.Modbus";
-            string ParamFile = $"{FileDirectory}//{Name}.Param.json";
-            string ParamDetailsFile = $"{FileDirectory}//{Name}.ParamDetails.json";
-            if (!Directory.Exists(FileDirectory))
-            {
-                Directory.CreateDirectory(FileDirectory);
-            }
-            FileTool.StringToFile(ParamFile, new ModbusData.Basics().ToJson().JsonFormatting());
-            FileTool.StringToFile(ParamDetailsFile, ReflexTool.GetClassAllPropertyData<ModbusData.Basics>().ToJson().JsonFormatting());
-        }
-    }
-}

+ 0 - 28
src/YSAI.Mqtt.Pack/Program.cs

@@ -1,28 +0,0 @@
-using YSAI.Mqtt.client;
-using YSAI.Unility;
-
-namespace YSAI.Mqtt.Pack
-{
-    internal class Program
-    {
-        private static void Main(string[] args)
-        {
-            string FileDirectory = string.Empty;
-            string[] paths = AppDomain.CurrentDomain.BaseDirectory.Split('\\');
-            for (int i = 0; i < paths.Length - 5; i++)
-            {
-                FileDirectory += $"{paths[i]}//";
-            }
-            FileDirectory += "YSAI.Manage//param";
-            string Name = "YSAI.Mqtt";
-            string ParamFile = $"{FileDirectory}//{Name}.Param.json";
-            string ParamDetailsFile = $"{FileDirectory}//{Name}.ParamDetails.json";
-            if (!Directory.Exists(FileDirectory))
-            {
-                Directory.CreateDirectory(FileDirectory);
-            }
-            FileTool.StringToFile(ParamFile, new MqttClientData.Basics().ToJson().JsonFormatting());
-            FileTool.StringToFile(ParamDetailsFile, ReflexTool.GetClassAllPropertyData<MqttClientData.Basics>().ToJson().JsonFormatting());
-        }
-    }
-}

File diff suppressed because it is too large
+ 0 - 16
src/YSAI.Mqtt.Pack/YSAI.Mqtt.Pack.csproj


+ 1 - 1
src/YSAI.Test.Service/Common/DataPersist.cs

@@ -1,7 +1,7 @@
 using Newtonsoft.Json;
 using System.Collections.Concurrent;
 
-namespace YSAI.Test.Service.Common
+namespace YSAI.NS.Service.Samples.Common
 {
     public class DataPersist
     {

+ 1 - 1
src/YSAI.Test.Service/Common/Helpers/CRC16.cs

@@ -1,4 +1,4 @@
-namespace YSAI.Test.Service.Common.Helpers
+namespace YSAI.NS.Service.Samples.Common.Helpers
 {
     /// <summary>
     /// CRC16验证

+ 1 - 1
src/YSAI.Test.Service/Common/Helpers/DataConvert.cs

@@ -1,6 +1,6 @@
 using System.Text;
 
-namespace YSAI.Test.Service.Common.Helpers
+namespace YSAI.NS.Service.Samples.Common.Helpers
 {
     /// <summary>
     /// 数据转换

+ 1 - 1
src/YSAI.Test.Service/Common/Helpers/LRC.cs

@@ -1,4 +1,4 @@
-namespace YSAI.Test.Service.Common.Helpers
+namespace YSAI.NS.Service.Samples.Common.Helpers
 {
     /// <summary>
     /// LRC验证

+ 2 - 0
src/YSAI.NS.Service.Samples/Program.cs

@@ -0,0 +1,2 @@
+//非标服务端示例
+Console.WriteLine();

+ 2 - 2
src/YSAI.Test.Service/Servers/BACnet/BACnetServer.cs

@@ -7,7 +7,7 @@ using System.IO.BACnet.Storage;
 using System.Linq;
 using System.Net.NetworkInformation;
 
-namespace YSAI.Test.Service.Servers.BACnet
+namespace YSAI.NS.Service.Samples.Servers.BACnet
 {
     public class BACnetServer
     {
@@ -44,7 +44,7 @@ namespace YSAI.Test.Service.Servers.BACnet
                 // Un bricollage du dimanche vite fait ici !
                 deviceId = deviceId + increaseId++;
 
-                m_storage = DeviceStorage.Load("YSAI.Test.Service.DeviceStorage.xml", deviceId);
+                m_storage = DeviceStorage.Load("YSAI.NS.Service.Samples.DeviceStorage.xml", deviceId);
 
                 var str = JsonConvert.SerializeObject(m_storage);
 

+ 3 - 3
src/YSAI.Test.Service/Servers/Modbus/ModBusAsciiServer.cs

@@ -1,10 +1,10 @@
 using Newtonsoft.Json;
 using System.IO.Ports;
 using System.Text;
-using YSAI.Test.Service.Common;
-using YSAI.Test.Service.Common.Helpers;
+using YSAI.NS.Service.Samples.Common;
+using YSAI.NS.Service.Samples.Common.Helpers;
 
-namespace YSAI.Test.Service.Servers.Modbus
+namespace YSAI.NS.Service.Samples.Servers.Modbus
 {
     /// <summary>
     /// ModbusAscii 服务端模拟

+ 3 - 3
src/YSAI.Test.Service/Servers/Modbus/ModBusRtuServer.cs

@@ -1,10 +1,10 @@
 using Newtonsoft.Json;
 using System.IO.Ports;
 using System.Text;
-using YSAI.Test.Service.Common;
-using YSAI.Test.Service.Common.Helpers;
+using YSAI.NS.Service.Samples.Common;
+using YSAI.NS.Service.Samples.Common.Helpers;
 
-namespace YSAI.Test.Service.Servers.Modbus
+namespace YSAI.NS.Service.Samples.Servers.Modbus
 {
     /// <summary>
     /// ModbusRtu 服务端模拟

+ 3 - 3
src/YSAI.Test.Service/Servers/Modbus/ModBusTcpServer.cs

@@ -1,10 +1,10 @@
 using Newtonsoft.Json;
 using System.Net;
 using System.Net.Sockets;
-using YSAI.Test.Service.Common;
-using YSAI.Test.Service.Common.Helpers;
+using YSAI.NS.Service.Samples.Common;
+using YSAI.NS.Service.Samples.Common.Helpers;
 
-namespace YSAI.Test.Service.Servers.Modbus
+namespace YSAI.NS.Service.Samples.Servers.Modbus
 {
     /// <summary>
     /// ModbusTcp 服务端模拟

+ 3 - 3
src/YSAI.Test.Service/Servers/PLC/AllenBradleyServer.cs

@@ -2,10 +2,10 @@
 using System.Net;
 using System.Net.Sockets;
 using System.Text;
-using YSAI.Test.Service.Common;
-using YSAI.Test.Service.Common.Helpers;
+using YSAI.NS.Service.Samples.Common;
+using YSAI.NS.Service.Samples.Common.Helpers;
 
-namespace YSAI.Test.Service.Servers.PLC
+namespace YSAI.NS.Service.Samples.Servers.PLC
 {
     public class AllenBradleyServer : ServerSocketBase, IIoTServer
     {

+ 1 - 1
src/YSAI.Test.Service/Servers/PLC/IIoTServer.cs

@@ -1,4 +1,4 @@
-namespace YSAI.Test.Service.Servers.PLC
+namespace YSAI.NS.Service.Samples.Servers.PLC
 {
     public interface IIoTServer
     {

+ 3 - 3
src/YSAI.Test.Service/Servers/PLC/MitsubishiA1EServer.cs

@@ -1,10 +1,10 @@
 using Newtonsoft.Json;
 using System.Net;
 using System.Net.Sockets;
-using YSAI.Test.Service.Common;
-using YSAI.Test.Service.Common.Helpers;
+using YSAI.NS.Service.Samples.Common;
+using YSAI.NS.Service.Samples.Common.Helpers;
 
-namespace YSAI.Test.Service.Servers.PLC
+namespace YSAI.NS.Service.Samples.Servers.PLC
 {
     /// <summary>
     /// 三菱MC A-1E 服务端模拟

+ 3 - 3
src/YSAI.Test.Service/Servers/PLC/MitsubishiQna3EServer.cs

@@ -1,10 +1,10 @@
 using Newtonsoft.Json;
 using System.Net;
 using System.Net.Sockets;
-using YSAI.Test.Service.Common;
-using YSAI.Test.Service.Common.Helpers;
+using YSAI.NS.Service.Samples.Common;
+using YSAI.NS.Service.Samples.Common.Helpers;
 
-namespace YSAI.Test.Service.Servers.PLC
+namespace YSAI.NS.Service.Samples.Servers.PLC
 {
     /// <summary>
     /// 三菱MC Qna-3E  服务端模拟

+ 3 - 3
src/YSAI.Test.Service/Servers/PLC/OmronFinsServer.cs

@@ -1,10 +1,10 @@
 using Newtonsoft.Json;
 using System.Net;
 using System.Net.Sockets;
-using YSAI.Test.Service.Common;
-using YSAI.Test.Service.Common.Helpers;
+using YSAI.NS.Service.Samples.Common;
+using YSAI.NS.Service.Samples.Common.Helpers;
 
-namespace YSAI.Test.Service.Servers.PLC
+namespace YSAI.NS.Service.Samples.Servers.PLC
 {
     /// <summary>
     /// 欧姆龙Fins 服务端模拟

+ 3 - 3
src/YSAI.Test.Service/Servers/PLC/SiemensServer.cs

@@ -1,10 +1,10 @@
 using Newtonsoft.Json;
 using System.Net;
 using System.Net.Sockets;
-using YSAI.Test.Service.Common;
-using YSAI.Test.Service.Common.Helpers;
+using YSAI.NS.Service.Samples.Common;
+using YSAI.NS.Service.Samples.Common.Helpers;
 
-namespace YSAI.Test.Service.Servers.PLC
+namespace YSAI.NS.Service.Samples.Servers.PLC
 {
     /// <summary>
     /// Siemens命令常量

+ 1 - 1
src/YSAI.Test.Service/Servers/ServerSocketBase.cs

@@ -3,7 +3,7 @@ using System.Collections.Generic;
 using System.Net.Sockets;
 using System.Text;
 
-namespace YSAI.Test.Service.Servers
+namespace YSAI.NS.Service.Samples.Servers
 {
     /// <summary>
     /// ServerSocket基类

+ 3 - 7
src/YSAI.DaqManage/YSAI.DaqManage.csproj

@@ -1,17 +1,13 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
+    <OutputType>Exe</OutputType>
     <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>
 	<ItemGroup>
-		<FrameworkReference Include="Microsoft.AspNetCore.App" />
-		<PackageReference Include="YSAI.Core" Version="23.338.19544" />
+		<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
+		<PackageReference Include="Talk.BACnet" Version="1.0.2" />
 	</ItemGroup>
-
-	<!--<ItemGroup>
-		<ProjectReference Include="..\YSAI.Core\YSAI.Core.csproj" />
-	</ItemGroup>-->
-
 </Project>

+ 0 - 27
src/YSAI.NetMQ.Pack/Program.cs

@@ -1,27 +0,0 @@
-using YSAI.Unility;
-
-namespace YSAI.NetMQ.Pack
-{
-    internal class Program
-    {
-        static void Main(string[] args)
-        {
-            string FileDirectory = string.Empty;
-            string[] paths = AppDomain.CurrentDomain.BaseDirectory.Split('\\');
-            for (int i = 0; i < paths.Length - 5; i++)
-            {
-                FileDirectory += $"{paths[i]}//";
-            }
-            FileDirectory += "YSAI.Manage//param";
-            string Name = "YSAI.NetMQ";
-            string ParamFile = $"{FileDirectory}//{Name}.Param.json";
-            string ParamDetailsFile = $"{FileDirectory}//{Name}.ParamDetails.json";
-            if (!Directory.Exists(FileDirectory))
-            {
-                Directory.CreateDirectory(FileDirectory);
-            }
-            FileTool.StringToFile(ParamFile, new NetMQData.Basics().ToJson().JsonFormatting());
-            FileTool.StringToFile(ParamDetailsFile, ReflexTool.GetClassAllPropertyData<NetMQData.Basics>().ToJson().JsonFormatting());
-        }
-    }
-}

File diff suppressed because it is too large
+ 0 - 16
src/YSAI.NetMQ.Pack/YSAI.NetMQ.Pack.csproj


+ 0 - 27
src/YSAI.Netty.Pack/Program.cs

@@ -1,27 +0,0 @@
-using YSAI.Netty.client;
-using YSAI.Unility;
-
-namespace YSAI.Netty.Pack;
-
-internal class Program
-{
-    private static void Main(string[] args)
-    {
-        string FileDirectory = string.Empty;
-        string[] paths = AppDomain.CurrentDomain.BaseDirectory.Split('\\');
-        for (int i = 0; i < paths.Length - 5; i++)
-        {
-            FileDirectory += $"{paths[i]}//";
-        }
-        FileDirectory += "YSAI.Manage//param";
-        string Name = "YSAI.Netty";
-        string ParamFile = $"{FileDirectory}//{Name}.Param.json";
-        string ParamDetailsFile = $"{FileDirectory}//{Name}.ParamDetails.json";
-        if (!Directory.Exists(FileDirectory))
-        {
-            Directory.CreateDirectory(FileDirectory);
-        }
-        FileTool.StringToFile(ParamFile, new NettyClientData.Basics().ToJson().JsonFormatting());
-        FileTool.StringToFile(ParamDetailsFile, ReflexTool.GetClassAllPropertyData<NettyClientData.Basics>().ToJson().JsonFormatting());
-    }
-}

File diff suppressed because it is too large
+ 0 - 16
src/YSAI.Netty.Pack/YSAI.Netty.Pack.csproj


+ 0 - 27
src/YSAI.Omron.Pack/Program.cs

@@ -1,27 +0,0 @@
-using YSAI.Unility;
-
-namespace YSAI.Omron.Pack
-{
-    internal class Program
-    {
-        static void Main(string[] args)
-        {
-            string FileDirectory = string.Empty;
-            string[] paths = AppDomain.CurrentDomain.BaseDirectory.Split('\\');
-            for (int i = 0; i < paths.Length - 5; i++)
-            {
-                FileDirectory += $"{paths[i]}//";
-            }
-            FileDirectory += "YSAI.Manage//param";
-            string Name = "YSAI.Omron";
-            string ParamFile = $"{FileDirectory}//{Name}.Param.json";
-            string ParamDetailsFile = $"{FileDirectory}//{Name}.ParamDetails.json";
-            if (!Directory.Exists(FileDirectory))
-            {
-                Directory.CreateDirectory(FileDirectory);
-            }
-            FileTool.StringToFile(ParamFile, new OmronData.Basics().ToJson().JsonFormatting());
-            FileTool.StringToFile(ParamDetailsFile, ReflexTool.GetClassAllPropertyData<OmronData.Basics>().ToJson().JsonFormatting());
-        }
-    }
-}

File diff suppressed because it is too large
+ 0 - 16
src/YSAI.Omron.Pack/YSAI.Omron.Pack.csproj


+ 0 - 55
src/YSAI.Opc.Pack/Program.cs

@@ -1,55 +0,0 @@
-using YSAI.Opc.da.client;
-using YSAI.Opc.da.http;
-using YSAI.Opc.ua.client;
-using YSAI.Unility;
-
-namespace YSAI.Opc.Pack
-{
-    internal class Program
-    {
-        private static void Main(string[] args)
-        {
-            string FileDirectory = string.Empty;
-            string[] paths = AppDomain.CurrentDomain.BaseDirectory.Split('\\');
-            for (int i = 0; i < paths.Length - 5; i++)
-            {
-                FileDirectory += $"{paths[i]}//";
-            }
-            FileDirectory += "YSAI.Manage//param";
-
-            string Name = "YSAI.OpcUa";
-            string ParamFile = $"{FileDirectory}//{Name}.Param.json";
-            string ParamDetailsFile = $"{FileDirectory}//{Name}.ParamDetails.json";
-            if (!Directory.Exists(FileDirectory))
-            {
-                Directory.CreateDirectory(FileDirectory);
-            }
-            FileTool.StringToFile(ParamFile, new OpcUaClientData.Basics().ToJson().JsonFormatting());
-            FileTool.StringToFile(ParamDetailsFile, ReflexTool.GetClassAllPropertyData<OpcUaClientData.Basics>().ToJson().JsonFormatting());
-
-            ///////////////////////////////////////
-
-            Name = "YSAI.OpcDa";
-            ParamFile = $"{FileDirectory}//{Name}.Param.json";
-            ParamDetailsFile = $"{FileDirectory}//{Name}.ParamDetails.json";
-            if (!Directory.Exists(FileDirectory))
-            {
-                Directory.CreateDirectory(FileDirectory);
-            }
-            FileTool.StringToFile(ParamFile, new OpcDaClientData.Basics().ToJson().JsonFormatting());
-            FileTool.StringToFile(ParamDetailsFile, ReflexTool.GetClassAllPropertyData<OpcDaClientData.Basics>().ToJson().JsonFormatting());
-
-            ///////////////////////////////////////
-
-            Name = "YSAI.OpcDaHttp";
-            ParamFile = $"{FileDirectory}//{Name}.Param.json";
-            ParamDetailsFile = $"{FileDirectory}//{Name}.ParamDetails.json";
-            if (!Directory.Exists(FileDirectory))
-            {
-                Directory.CreateDirectory(FileDirectory);
-            }
-            FileTool.StringToFile(ParamFile, new OpcDaHttpData.Basics().ToJson().JsonFormatting());
-            FileTool.StringToFile(ParamDetailsFile, ReflexTool.GetClassAllPropertyData<OpcDaHttpData.Basics>().ToJson().JsonFormatting());
-        }
-    }
-}

File diff suppressed because it is too large
+ 0 - 15
src/YSAI.Opc.Pack/YSAI.Opc.Pack.csproj


+ 25 - 0
src/YSAI.Pack/src/YSAI.AllenBradley.Pack/Program.cs

@@ -0,0 +1,25 @@
+namespace YSAI.AllenBradley.Pack
+{
+    internal class Program
+    {
+        static void Main(string[] args)
+        {
+            //string FileDirectory = string.Empty;
+            //string[] paths = AppDomain.CurrentDomain.BaseDirectory.Split('\\');
+            //for (int i = 0; i < paths.Length - 5; i++)
+            //{
+            //    FileDirectory += $"{paths[i]}//";
+            //}
+            //FileDirectory += "YSAI.Manage//param";
+            //string Name = "YSAI.AllenBradley";
+            //string ParamFile = $"{FileDirectory}//{Name}.Param.json";
+            //string ParamDetailsFile = $"{FileDirectory}//{Name}.ParamDetails.json";
+            //if (!Directory.Exists(FileDirectory))
+            //{
+            //    Directory.CreateDirectory(FileDirectory);
+            //}
+            //FileTool.StringToFile(ParamFile, new AllenBradleyData.Basics().ToJson().JsonFormatting());
+            //FileTool.StringToFile(ParamDetailsFile, ReflexTool.GetClassAllPropertyData<AllenBradleyData.Basics>().ToJson().JsonFormatting());
+        }
+    }
+}

File diff suppressed because it is too large
+ 18 - 0
src/YSAI.Pack/src/YSAI.AllenBradley.Pack/YSAI.AllenBradley.Pack.csproj


+ 25 - 0
src/YSAI.Pack/src/YSAI.Beckhoff.Pack/Program.cs

@@ -0,0 +1,25 @@
+namespace YSAI.Beckhoff.Pack
+{
+    internal class Program
+    {
+        private static void Main(string[] args)
+        {
+            //string FileDirectory = string.Empty;
+            //string[] paths = AppDomain.CurrentDomain.BaseDirectory.Split('\\');
+            //for (int i = 0; i < paths.Length - 5; i++)
+            //{
+            //    FileDirectory += $"{paths[i]}//";
+            //}
+            //FileDirectory += "YSAI.Manage//param";
+            //string Name = "YSAI.Beckhoff";
+            //string ParamFile = $"{FileDirectory}//{Name}.Param.json";
+            //string ParamDetailsFile = $"{FileDirectory}//{Name}.ParamDetails.json";
+            //if (!Directory.Exists(FileDirectory))
+            //{
+            //    Directory.CreateDirectory(FileDirectory);
+            //}
+            //FileTool.StringToFile(ParamFile, new BeckhoffData.Basics().ToJson().JsonFormatting());
+            //FileTool.StringToFile(ParamDetailsFile, ReflexTool.GetClassAllPropertyData<BeckhoffData.Basics>().ToJson().JsonFormatting());
+        }
+    }
+}

File diff suppressed because it is too large
+ 18 - 0
src/YSAI.Pack/src/YSAI.Beckhoff.Pack/YSAI.Beckhoff.Pack.csproj


+ 25 - 0
src/YSAI.Pack/src/YSAI.Can.Pack/Program.cs

@@ -0,0 +1,25 @@
+namespace YSAI.Can.Pack
+{
+    internal class Program
+    {
+        private static void Main(string[] args)
+        {
+            //string FileDirectory = string.Empty;
+            //string[] paths = AppDomain.CurrentDomain.BaseDirectory.Split('\\');
+            //for (int i = 0; i < paths.Length - 5; i++)
+            //{
+            //    FileDirectory += $"{paths[i]}//";
+            //}
+            //FileDirectory += "YSAI.Manage//param";
+            //string Name = "YSAI.Can";
+            //string ParamFile = $"{FileDirectory}//{Name}.Param.json";
+            //string ParamDetailsFile = $"{FileDirectory}//{Name}.ParamDetails.json";
+            //if (!Directory.Exists(FileDirectory))
+            //{
+            //    Directory.CreateDirectory(FileDirectory);
+            //}
+            //FileTool.StringToFile(ParamFile, new CanData.Basics().ToJson().JsonFormatting());
+            //FileTool.StringToFile(ParamDetailsFile, ReflexTool.GetClassAllPropertyData<CanData.Basics>().ToJson().JsonFormatting());
+        }
+    }
+}

+ 0 - 0
src/YSAI.Pack/src/YSAI.Can.Pack/YSAI.Can.Pack.csproj


Some files were not shown because too many files changed in this diff