Ver código fonte

1. 所有库 统一更新,支持 6.0 8.0
2. mqttwsservice 细节优化

Shun 2 anos atrás
pai
commit
b00ad2a353
58 arquivos alterados com 250 adições e 329 exclusões
  1. 5 1
      README.md
  2. 1 1
      src/YSAI.AllenBradley.Pack/YSAI.AllenBradley.Pack.csproj
  3. 1 1
      src/YSAI.AllenBradley/YSAI.AllenBradley.csproj
  4. 1 1
      src/YSAI.Beckhoff.Pack/YSAI.Beckhoff.Pack.csproj
  5. 1 1
      src/YSAI.Beckhoff/YSAI.Beckhoff.csproj
  6. 1 1
      src/YSAI.Can.Pack/YSAI.Can.Pack.csproj
  7. 1 1
      src/YSAI.Can/YSAI.Can.csproj
  8. 2 2
      src/YSAI.Controls/YSAI.Controls.csproj
  9. 1 1
      src/YSAI.Converters/YSAI.Converters.csproj
  10. 2 2
      src/YSAI.Core/YSAI.Core.csproj
  11. 8 88
      src/YSAI.Core/redis/RedisOperate.cs
  12. 1 1
      src/YSAI.DB.Pack/YSAI.DB.Pack.csproj
  13. 1 1
      src/YSAI.DB/YSAI.DB.csproj
  14. 1 1
      src/YSAI.DaqManage/YSAI.DaqManage.csproj
  15. 1 1
      src/YSAI.Kafka.Pack/YSAI.Kafka.Pack.csproj
  16. 1 1
      src/YSAI.Kafka/YSAI.Kafka.csproj
  17. 1 1
      src/YSAI.Langs/YSAI.Langs.csproj
  18. 1 1
      src/YSAI.Log/YSAI.Log.csproj
  19. 1 1
      src/YSAI.Manage/Properties/PublishProfiles/FolderProfile.pubxml
  20. 1 1
      src/YSAI.Manage/YSAI.Manage.csproj
  21. 1 1
      src/YSAI.Mewtocol.Pack/YSAI.Mewtocol.Pack.csproj
  22. 1 1
      src/YSAI.Mewtocol/YSAI.Mewtocol.csproj
  23. 1 1
      src/YSAI.Mitsubishi.Pack/YSAI.Mitsubishi.Pack.csproj
  24. 1 5
      src/YSAI.Mitsubishi/MitsubishiOperate.cs
  25. 1 1
      src/YSAI.Mitsubishi/YSAI.Mitsubishi.csproj
  26. 1 1
      src/YSAI.Modbus.Pack/YSAI.Modbus.Pack.csproj
  27. 1 1
      src/YSAI.Modbus/YSAI.Modbus.csproj
  28. 1 1
      src/YSAI.Mqtt.Pack/YSAI.Mqtt.Pack.csproj
  29. 1 1
      src/YSAI.Mqtt/YSAI.Mqtt.csproj
  30. 1 1
      src/YSAI.Mqtt/service/websocket/MqttWebSocketServiceData.cs
  31. 85 95
      src/YSAI.Mqtt/service/websocket/MqttWebSocketServiceOperate.cs
  32. 1 1
      src/YSAI.Mvvm/YSAI.Mvvm.csproj
  33. 1 1
      src/YSAI.NetMQ.Pack/YSAI.NetMQ.Pack.csproj
  34. 1 1
      src/YSAI.NetMQ/YSAI.NetMQ.csproj
  35. 1 1
      src/YSAI.Netty.Pack/YSAI.Netty.Pack.csproj
  36. 1 1
      src/YSAI.Netty/YSAI.Netty.csproj
  37. 1 1
      src/YSAI.Omron.Pack/YSAI.Omron.Pack.csproj
  38. 1 5
      src/YSAI.Omron/OmronOperate.cs
  39. 1 1
      src/YSAI.Omron/YSAI.Omron.csproj
  40. 1 1
      src/YSAI.Opc.Pack/YSAI.Opc.Pack.csproj
  41. 1 1
      src/YSAI.Opc/YSAI.Opc.csproj
  42. 1 1
      src/YSAI.RabbitMQ.Pack/YSAI.RabbitMQ.Pack.csproj
  43. 1 1
      src/YSAI.RabbitMQ/YSAI.RabbitMQ.csproj
  44. 1 1
      src/YSAI.RelayManage/YSAI.RelayManage.csproj
  45. 1 1
      src/YSAI.Resources/YSAI.Resources.csproj
  46. 1 1
      src/YSAI.Siemens.Pack/YSAI.Siemens.Pack.csproj
  47. 1 1
      src/YSAI.Siemens/YSAI.Siemens.csproj
  48. 0 18
      src/YSAI.Test.All/Properties/PublishProfiles/FolderProfile.pubxml
  49. 1 1
      src/YSAI.Test.All/YSAI.Test.All.csproj
  50. 95 62
      src/YSAI.Test.Console/Program.cs
  51. 1 1
      src/YSAI.Test.Console/YSAI.Test.Console.csproj
  52. 1 1
      src/YSAI.Test.Service/YSAI.Test.Service.csproj
  53. 1 1
      src/YSAI.Test/YSAI.Test.csproj
  54. 2 2
      src/YSAI.Unility.Windows/YSAI.Unility.Windows.csproj
  55. 1 1
      src/YSAI.Unility/YSAI.Unility.csproj
  56. 1 1
      src/YSAI.VT/YSAI.VT.csproj
  57. 2 2
      src/YSAI.Window/YSAI.Window.csproj
  58. 1 1
      src/YSAI.WindowMessage/YSAI.WindowMessage.csproj

+ 5 - 1
README.md

@@ -468,4 +468,8 @@ while(true)
 2. 所有库新增中英文描述
 3. 等待.net8发布,集成.net8
 4. OPCUA 移除默认XML文件,使用动态创建
-5. 新增版本更新工具,一键更新版本
+5. 新增版本更新工具,一键更新版本
+
+#### 2023-11-15
+1. 所有库 统一更新,支持 6.0 8.0 
+2. mqttwsservice 细节优化

+ 1 - 1
src/YSAI.AllenBradley.Pack/YSAI.AllenBradley.Pack.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>

+ 1 - 1
src/YSAI.AllenBradley/YSAI.AllenBradley.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+	<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Version>23.318.29700</Version>

+ 1 - 1
src/YSAI.Beckhoff.Pack/YSAI.Beckhoff.Pack.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>

+ 1 - 1
src/YSAI.Beckhoff/YSAI.Beckhoff.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+	<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Version>23.318.29701</Version>

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

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>

+ 1 - 1
src/YSAI.Can/YSAI.Can.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+	<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Version>23.318.29701</Version>

+ 2 - 2
src/YSAI.Controls/YSAI.Controls.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-    <TargetFramework>net6.0-windows</TargetFramework>
+    <TargetFrameworks>net6.0-windows;net8.0-windows</TargetFrameworks>
     <Nullable>enable</Nullable>
     <UseWPF>true</UseWPF>
   </PropertyGroup>
@@ -31,7 +31,7 @@
 
 	<ItemGroup>
 		<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
-		<PackageReference Include="System.Drawing.Common" Version="7.0.0" />
+		<PackageReference Include="System.Drawing.Common" Version="8.0.0" />
 	</ItemGroup>
 
 	<ItemGroup>

+ 1 - 1
src/YSAI.Converters/YSAI.Converters.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-    <TargetFramework>net6.0-windows</TargetFramework>
+	<TargetFrameworks>net6.0-windows;net8.0-windows</TargetFrameworks>
     <Nullable>enable</Nullable>
     <UseWPF>true</UseWPF>
   </PropertyGroup>

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

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Version>23.318.29473</Version>
@@ -18,7 +18,7 @@
   <ItemGroup>
     <PackageReference Include="StackExchange.Redis" Version="2.7.4" />
     <PackageReference Include="Microsoft.ClearScript" Version="7.4.4" />
-    <PackageReference Include="System.IO.Ports" Version="7.0.0" />
+    <PackageReference Include="System.IO.Ports" Version="8.0.0" />
     <PackageReference Include="YSAI.Log" Version="23.318.29223" />
     <PackageReference Include="YSAI.Unility" Version="23.318.29224" />
   </ItemGroup>

+ 8 - 88
src/YSAI.Core/redis/RedisOperate.cs

@@ -1,6 +1,5 @@
 using Newtonsoft.Json;
 using StackExchange.Redis;
-using System.Runtime.Serialization.Formatters.Binary;
 using YSAI.Core.@interface;
 using YSAI.Unility;
 
@@ -131,7 +130,6 @@ namespace YSAI.Core.redis
         //序列化类型
         public enum SerializeType
         {
-            Binary,   //二进制
             Json,     //Json
         }
 
@@ -221,10 +219,6 @@ namespace YSAI.Core.redis
             {
                 switch (serializeType)
                 {
-                    case SerializeType.Binary:
-                        var binaryValue = Serialize(redisValue);
-                        return _DB.StringSet(basics.Prefix + redisKey, binaryValue, expiry);
-
                     case SerializeType.Json:
                         var jsonValue = SerializeJson(redisValue);
                         return _DB.StringSet(basics.Prefix + redisKey, jsonValue, expiry);
@@ -253,9 +247,6 @@ namespace YSAI.Core.redis
             {
                 switch (serializeType)
                 {
-                    case SerializeType.Binary:
-                        return Deserialize<T>(_DB.StringGet(basics.Prefix + redisKey));
-
                     case SerializeType.Json:
                         return DeserializeJson<T>(_DB.StringGet(basics.Prefix + redisKey));
 
@@ -344,10 +335,6 @@ namespace YSAI.Core.redis
             {
                 switch (serializeType)
                 {
-                    case SerializeType.Binary:
-                        var binaryValue = Serialize(redisValue);
-                        return await _DB.StringSetAsync(basics.Prefix + redisKey, binaryValue, expiry);
-
                     case SerializeType.Json:
                         var jsonValue = SerializeJson(redisValue);
                         return await _DB.StringSetAsync(basics.Prefix + redisKey, jsonValue, expiry);
@@ -377,9 +364,6 @@ namespace YSAI.Core.redis
             {
                 switch (serializeType)
                 {
-                    case SerializeType.Binary:
-                        return Deserialize<T>(await _DB.StringGetAsync(basics.Prefix + redisKey));
-
                     case SerializeType.Json:
                         return DeserializeJson<T>(await _DB.StringGetAsync(basics.Prefix + redisKey));
 
@@ -579,10 +563,6 @@ namespace YSAI.Core.redis
             {
                 switch (serializeType)
                 {
-                    case SerializeType.Binary:
-                        var binaryValue = Serialize(redisValue);
-                        return _DB.HashSet(basics.Prefix + redisKey, hashField, binaryValue);
-
                     case SerializeType.Json:
                         var jsonValue = SerializeJson(redisValue);
                         return _DB.HashSet(basics.Prefix + redisKey, hashField, jsonValue);
@@ -611,9 +591,6 @@ namespace YSAI.Core.redis
             {
                 switch (serializeType)
                 {
-                    case SerializeType.Binary:
-                        return Deserialize<T>(_DB.HashGet(basics.Prefix + redisKey, hashField));
-
                     case SerializeType.Json:
                         return DeserializeJson<T>(_DB.HashGet(basics.Prefix + redisKey, hashField));
 
@@ -813,10 +790,6 @@ namespace YSAI.Core.redis
             {
                 switch (serializeType)
                 {
-                    case SerializeType.Binary:
-                        var binaryValue = Serialize(value);
-                        return await _DB.HashSetAsync(basics.Prefix + redisKey, hashField, binaryValue);
-
                     case SerializeType.Json:
                         var jsonValue = SerializeJson(value);
                         return await _DB.HashSetAsync(basics.Prefix + redisKey, hashField, jsonValue);
@@ -845,9 +818,6 @@ namespace YSAI.Core.redis
             {
                 switch (serializeType)
                 {
-                    case SerializeType.Binary:
-                        return Deserialize<T>(await _DB.HashGetAsync(basics.Prefix + redisKey, hashField));
-
                     case SerializeType.Json:
                         return DeserializeJson<T>(await _DB.HashGetAsync(basics.Prefix + redisKey, hashField));
 
@@ -1005,9 +975,6 @@ namespace YSAI.Core.redis
             {
                 switch (serializeType)
                 {
-                    case SerializeType.Binary:
-                        return Deserialize<T>(_DB.ListLeftPop(basics.Prefix + redisKey));
-
                     case SerializeType.Json:
                         return DeserializeJson<T>(_DB.ListLeftPop(basics.Prefix + redisKey));
 
@@ -1033,9 +1000,6 @@ namespace YSAI.Core.redis
             {
                 switch (serializeType)
                 {
-                    case SerializeType.Binary:
-                        return Deserialize<T>(_DB.ListRightPop(basics.Prefix + redisKey));
-
                     case SerializeType.Json:
                         return DeserializeJson<T>(_DB.ListRightPop(basics.Prefix + redisKey));
 
@@ -1059,7 +1023,7 @@ namespace YSAI.Core.redis
         {
             if (ConnetStatus)
             {
-                return _DB.ListRightPush(basics.Prefix + redisKey, Serialize(redisValue));
+                return _DB.ListRightPush(basics.Prefix + redisKey, SerializeJson(redisValue));
             }
             else
             {
@@ -1077,7 +1041,7 @@ namespace YSAI.Core.redis
         {
             if (ConnetStatus)
             {
-                return _DB.ListLeftPush(basics.Prefix + redisKey, Serialize(redisValue));
+                return _DB.ListLeftPush(basics.Prefix + redisKey, SerializeJson(redisValue));
             }
             else
             {
@@ -1226,9 +1190,6 @@ namespace YSAI.Core.redis
             {
                 switch (serializeType)
                 {
-                    case SerializeType.Binary:
-                        return Deserialize<T>(await _DB.ListLeftPopAsync(basics.Prefix + redisKey));
-
                     case SerializeType.Json:
                         return DeserializeJson<T>(await _DB.ListLeftPopAsync(basics.Prefix + redisKey));
 
@@ -1254,9 +1215,6 @@ namespace YSAI.Core.redis
             {
                 switch (serializeType)
                 {
-                    case SerializeType.Binary:
-                        return Deserialize<T>(await _DB.ListRightPopAsync(basics.Prefix + redisKey));
-
                     case SerializeType.Json:
                         return DeserializeJson<T>(await _DB.ListRightPopAsync(basics.Prefix + redisKey));
 
@@ -1280,7 +1238,7 @@ namespace YSAI.Core.redis
         {
             if (ConnetStatus)
             {
-                return await _DB.ListRightPushAsync(basics.Prefix + redisKey, Serialize(redisValue));
+                return await _DB.ListRightPushAsync(basics.Prefix + redisKey, SerializeJson(redisValue));
             }
             else
             {
@@ -1298,7 +1256,7 @@ namespace YSAI.Core.redis
         {
             if (ConnetStatus)
             {
-                return await _DB.ListLeftPushAsync(basics.Prefix + redisKey, Serialize(redisValue));
+                return await _DB.ListLeftPushAsync(basics.Prefix + redisKey, SerializeJson(redisValue));
             }
             else
             {
@@ -1400,7 +1358,7 @@ namespace YSAI.Core.redis
         {
             if (ConnetStatus)
             {
-                var json = Serialize(member);
+                var json = SerializeJson(member);
                 return _DB.SortedSetAdd(basics.Prefix + redisKey, json, score);
             }
             else
@@ -1514,7 +1472,7 @@ namespace YSAI.Core.redis
         {
             if (ConnetStatus)
             {
-                var json = Serialize(member);
+                var json = SerializeJson(member);
                 return await _DB.SortedSetAddAsync(basics.Prefix + redisKey, json, score);
             }
             else
@@ -1792,7 +1750,7 @@ namespace YSAI.Core.redis
         public long Publish<T>(RedisChannel channel, T message)
         {
             var sub = _ConnMultiplexer.GetSubscriber();
-            return sub.Publish(channel, Serialize(message));
+            return sub.Publish(channel, SerializeJson(message));
         }
 
         #endregion 同步方式
@@ -1832,7 +1790,7 @@ namespace YSAI.Core.redis
         public async Task<long> PublishAsync<T>(RedisChannel channel, T message)
         {
             var sub = _ConnMultiplexer.GetSubscriber();
-            return await sub.PublishAsync(channel, Serialize(message));
+            return await sub.PublishAsync(channel, SerializeJson(message));
         }
 
         #endregion 异步方式
@@ -1962,44 +1920,6 @@ namespace YSAI.Core.redis
             return list.Select(x => x.ToString());
         }
 
-        /// <summary>
-        /// 序列化(二进制)
-        /// </summary>
-        /// <param name="obj"></param>
-        /// <returns></returns>
-        private static byte[] Serialize(object obj)
-        {
-            if (obj == null)
-                return null;
-
-            var binaryFormatter = new BinaryFormatter();
-            using (var memoryStream = new MemoryStream())
-            {
-                binaryFormatter.Serialize(memoryStream, obj);
-                var data = memoryStream.ToArray();
-                return data;
-            }
-        }
-
-        /// <summary>
-        /// 反序列化(二进制)
-        /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="data"></param>
-        /// <returns></returns>
-        private static T Deserialize<T>(byte[] data)
-        {
-            if (data == null)
-                return default(T);
-
-            var binaryFormatter = new BinaryFormatter();
-            using (var memoryStream = new MemoryStream(data))
-            {
-                var result = (T)binaryFormatter.Deserialize(memoryStream);
-                return result;
-            }
-        }
-
         /// <summary>
         /// 序列化对象为Json字符串
         /// </summary>

+ 1 - 1
src/YSAI.DB.Pack/YSAI.DB.Pack.csproj

@@ -2,7 +2,7 @@
 
 	<PropertyGroup>
 		<OutputType>Exe</OutputType>
-		<TargetFramework>net6.0</TargetFramework>
+		<TargetFramework>net8.0</TargetFramework>
 		<ImplicitUsings>enable</ImplicitUsings>
 		<Nullable>enable</Nullable>
 	</PropertyGroup>

+ 1 - 1
src/YSAI.DB/YSAI.DB.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+	<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Version>23.318.29701</Version>

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

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>

+ 1 - 1
src/YSAI.Kafka.Pack/YSAI.Kafka.Pack.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>

+ 1 - 1
src/YSAI.Kafka/YSAI.Kafka.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+	<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Version>23.318.29701</Version>

+ 1 - 1
src/YSAI.Langs/YSAI.Langs.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-    <TargetFramework>net6.0-windows</TargetFramework>
+	<TargetFrameworks>net6.0-windows;net8.0-windows</TargetFrameworks>
     <Nullable>enable</Nullable>
     <UseWPF>true</UseWPF>
   </PropertyGroup>

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

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+	<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Version>23.318.29223</Version>

+ 1 - 1
src/YSAI.Manage/Properties/PublishProfiles/FolderProfile.pubxml

@@ -14,7 +14,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
     <WebPublishMethod>FileSystem</WebPublishMethod>
     <_TargetId>Folder</_TargetId>
     <SiteUrlToLaunchAfterPublish />
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ProjectGuid>6e9667c0-303c-472d-949b-60f812e6c659</ProjectGuid>
     <SelfContained>false</SelfContained>
   </PropertyGroup>

+ 1 - 1
src/YSAI.Manage/YSAI.Manage.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk.Web">
 
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <Nullable>enable</Nullable>
     <ImplicitUsings>enable</ImplicitUsings>
     <GenerateDocumentationFile>True</GenerateDocumentationFile>

+ 1 - 1
src/YSAI.Mewtocol.Pack/YSAI.Mewtocol.Pack.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>

+ 1 - 1
src/YSAI.Mewtocol/YSAI.Mewtocol.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+	<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Version>23.318.29701</Version>

+ 1 - 1
src/YSAI.Mitsubishi.Pack/YSAI.Mitsubishi.Pack.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>

+ 1 - 5
src/YSAI.Mitsubishi/MitsubishiOperate.cs

@@ -1034,11 +1034,7 @@ namespace YSAI.Mitsubishi
                         else
                         {
                             object obj = Param.Value;
-                            if (obj is byte)
-                            {
-                                RState = W(Param.Key, BitConverter.GetBytes((byte)obj));
-                            }
-                            else if (obj is Int16)
+                            if (obj is Int16)
                             {
                                 RState = W(Param.Key, BitConverter.GetBytes((Int16)obj));
                             }

+ 1 - 1
src/YSAI.Mitsubishi/YSAI.Mitsubishi.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+	<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Version>23.318.29701</Version>

+ 1 - 1
src/YSAI.Modbus.Pack/YSAI.Modbus.Pack.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>

+ 1 - 1
src/YSAI.Modbus/YSAI.Modbus.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+	<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Version>23.318.29701</Version>

+ 1 - 1
src/YSAI.Mqtt.Pack/YSAI.Mqtt.Pack.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>

+ 1 - 1
src/YSAI.Mqtt/YSAI.Mqtt.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+	<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Version>23.318.29701</Version>

+ 1 - 1
src/YSAI.Mqtt/service/websocket/MqttWebSocketServiceData.cs

@@ -12,7 +12,7 @@ namespace YSAI.Mqtt.service.websocket
         /// <summary>
         /// MQTTwebsocket 接口
         /// </summary>
-        public interface IMqttWebSocketService : IOn, IDisposable
+        public interface IMqttWebSocketService : IOn, IEvent, IDisposable
         { }
 
         /// <summary>

+ 85 - 95
src/YSAI.Mqtt/service/websocket/MqttWebSocketServiceOperate.cs

@@ -79,6 +79,7 @@ namespace YSAI.Mqtt.service.websocket
         public MqttWebSocketServiceOperate(MqttWebSocketServiceData.Basics basics)
         {
             mqttServiceData_Static = this.basics = basics;
+            OnEventHandler_Static = OnEventHandler;
         }
 
         /// <summary>
@@ -99,6 +100,11 @@ namespace YSAI.Mqtt.service.websocket
 ";
         }
 
+
+        public static event EventHandler<EventResult> OnEventHandler_Static;
+
+
+
         public void Dispose()
         {
             GC.Collect();
@@ -106,20 +112,6 @@ namespace YSAI.Mqtt.service.websocket
             ThisObjList.Remove(this);
         }
 
-        /// <summary>
-        /// 信息传递
-        /// </summary>
-        public event EventHandler<EventResult> OnEvent
-        {
-            add { OnEventHandler += value; }
-            remove { OnEventHandler -= value; }
-        }
-
-        /// <summary>
-        /// 信息传递
-        /// </summary>
-        public static EventHandler<EventResult>? OnEventHandler;
-
         public Task<OperateResult> OnAsync()
         {
             return Task.Run(() => On());
@@ -151,7 +143,6 @@ namespace YSAI.Mqtt.service.websocket
                                // MQTT WEBSOCKET 服务端口
                                o.ListenAnyIP(mqttServiceData_Static.WsPort);
                            });
-
                        webBuilder.UseStartup<Startup>();
                    }).RunConsoleAsync();
                 return Break("On", true);
@@ -161,6 +152,77 @@ namespace YSAI.Mqtt.service.websocket
                 return Break("On", false, ex.Message, Exception: ex);
             }
         }
+        /// <summary>
+        /// 启动
+        /// </summary>
+        private sealed class Startup
+        {
+            /// <summary>
+            /// 配置
+            /// </summary>
+            public void Configure(IApplicationBuilder app, IWebHostEnvironment environment, MqttController mqttController)
+            {
+                try
+                {
+                    app.UseRouting();
+
+                    app.UseEndpoints(
+                        endpoints =>
+                        {
+                            endpoints.MapConnectionHandler<MqttConnectionHandler>(
+                                mqttServiceData_Static.Uri,  //指定地址
+                                httpConnectionDispatcherOptions => httpConnectionDispatcherOptions.WebSockets.SubProtocolSelector = protocolList => protocolList.FirstOrDefault() ?? string.Empty);
+                        });
+
+                    app.UseMqttServer(
+                        server =>
+                        {
+                            //身份验证(异步)
+                            server.ValidatingConnectionAsync += mqttController.MqttServer_ValidatingConnectionAsync;
+                            //消息接收(异步)
+                            server.ApplicationMessageNotConsumedAsync += mqttController.MqttServer_ApplicationMessageNotConsumedAsync;
+                            //客户端连接(异步)
+                            server.ClientConnectedAsync += mqttController.MqttServer_ClientConnectedAsync;
+                            //客户端断开(异步)
+                            server.ClientDisconnectedAsync += mqttController.MqttServer_ClientDisconnectedAsync;
+                            //客户端订阅事件(异步)
+                            server.ClientSubscribedTopicAsync += mqttController.MqttServer_ClientSubscribedTopicAsync;
+                            //客户端取消订阅(异步)
+                            server.ClientUnsubscribedTopicAsync += mqttController.MqttServer_ClientUnsubscribedTopicAsync;
+                        });
+
+                    OnEventHandler_Static?.Invoke(this, new EventResult(true, $"[ {Steps.系统信息} ]MQTT 服务端地址 ( 127.0.0.1:{mqttServiceData_Static.Port} )"));
+                    OnEventHandler_Static?.Invoke(this, new EventResult(true, $"[ {Steps.系统信息} ]MQTT WebSocket 服务端地址 ( ws://127.0.0.1:{mqttServiceData_Static.WsPort}/{mqttServiceData_Static.Uri} )"));
+                }
+                catch (Exception ex)
+                {
+                    OnEventHandler_Static?.Invoke(this, new EventResult(false, $"[ {Steps.系统异常信息} ]配置服务异常:{ex.Message}"));
+                }
+            }
+
+            /// <summary>
+            /// 配置服务
+            /// </summary>
+            /// <param name="services"></param>
+            public void ConfigureServices(IServiceCollection services)
+            {
+                try
+                {
+                    services.AddHostedMqttServer(
+                        optionsBuilder =>
+                        {
+                            optionsBuilder.WithDefaultEndpoint();
+                        });
+                    services.AddMqttConnectionHandler();
+                    services.AddConnections();
+                    services.AddSingleton<MqttController>();
+                }
+                catch (Exception ex)
+                {
+                    OnEventHandler_Static?.Invoke(this, new EventResult(false, $"[ {Steps.系统异常信息} ]配置服务异常:{ex.Message}"));
+                }
+            }
+        }
 
         /// <summary>
         /// MQTT控制器
@@ -174,7 +236,7 @@ namespace YSAI.Mqtt.service.websocket
             {
                 return Task.Run(() =>
                 {
-                    OnEventHandler(this, new EventResult(true, $"[ {Steps.客户端取消订阅事件} ]( {arg.ClientId} ) 取消了 ( {arg.TopicFilter} ) 的订阅", arg.ClientId, Core.@enum.ResultType.String));
+                    OnEventHandler_Static?.Invoke(this, new EventResult(true, $"[ {Steps.客户端取消订阅事件} ]( {arg.ClientId} ) 取消了 ( {arg.TopicFilter} ) 的订阅", arg.ClientId, Core.@enum.ResultType.String));
                 });
             }
 
@@ -185,7 +247,7 @@ namespace YSAI.Mqtt.service.websocket
             {
                 return Task.Run(() =>
                 {
-                    OnEventHandler(this, new EventResult(true, $"[ {Steps.客户端订阅事件} ]( {arg.ClientId} ) 订阅了主题 ( {arg.TopicFilter.Topic} )", arg.ClientId, Core.@enum.ResultType.String));
+                    OnEventHandler_Static?.Invoke(this, new EventResult(true, $"[ {Steps.客户端订阅事件} ]( {arg.ClientId} ) 订阅了主题 ( {arg.TopicFilter.Topic} )", arg.ClientId, Core.@enum.ResultType.String));
                 });
             }
 
@@ -205,7 +267,7 @@ namespace YSAI.Mqtt.service.websocket
                             dynamic DynamicObj = new ExpandoObject();
                             DynamicObj.Messages = arg.ApplicationMessage;
                             DynamicObj.SenderID = arg.SenderId;
-                            OnEventHandler(this, new EventResult(true, $"[ {Steps.客户端消息事件} ]( {arg.SenderId} ) 发布了主题 ( {arg.ApplicationMessage.Topic} ) 内容 ( {Encoding.UTF8.GetString(arg.ApplicationMessage.Payload)} )", DynamicObj, Core.@enum.ResultType.Dynamic));
+                            OnEventHandler_Static?.Invoke(this, new EventResult(true, $"[ {Steps.客户端消息事件} ]( {arg.SenderId} ) 发布了主题 ( {arg.ApplicationMessage.Topic} ) 内容 ( {Encoding.UTF8.GetString(arg.ApplicationMessage.Payload)} )", DynamicObj, Core.@enum.ResultType.Dynamic));
                             break;
                     }
                 });
@@ -218,7 +280,7 @@ namespace YSAI.Mqtt.service.websocket
             {
                 return Task.Run(() =>
                 {
-                    OnEventHandler(this, new EventResult(true, $"[ {Steps.客户端断开事件} ]( {arg.ClientId} ) 已断开", arg.ClientId, Core.@enum.ResultType.String));
+                    OnEventHandler_Static?.Invoke(this, new EventResult(true, $"[ {Steps.客户端断开事件} ]( {arg.ClientId} ) 已断开", arg.ClientId, Core.@enum.ResultType.String));
                 });
             }
 
@@ -229,7 +291,7 @@ namespace YSAI.Mqtt.service.websocket
             {
                 return Task.Run(() =>
                 {
-                    OnEventHandler(this, new EventResult(true, $"[ {Steps.客户端连接事件} ]( {arg.ClientId} ) 已连接", arg.ClientId, Core.@enum.ResultType.String));
+                    OnEventHandler_Static?.Invoke(this, new EventResult(true, $"[ {Steps.客户端连接事件} ]( {arg.ClientId} ) 已连接", arg.ClientId, Core.@enum.ResultType.String));
                 });
             }
 
@@ -244,90 +306,18 @@ namespace YSAI.Mqtt.service.websocket
                 return Task.Run((Action)(() =>
                 {
                     //验证账号密码是否正确
-                    if (!arg.UserName.Equals((string?)mqttServiceData_Static.UserName) || !arg.Password.Equals(mqttServiceData_Static.Password))
+                    if (arg.UserName != mqttServiceData_Static.UserName || arg.Password != mqttServiceData_Static.Password)
                     {
                         arg.ReasonCode = MQTTnet.Protocol.MqttConnectReasonCode.BadUserNameOrPassword;
-                        OnEventHandler(this, new EventResult(false, $"[ {Steps.客户端身份验证事件} ]( {arg.ClientId} ) 身份验证异常:{arg.ReasonCode}", arg.ClientId, Core.@enum.ResultType.String));
+                        OnEventHandler_Static?.Invoke(this, new EventResult(false, $"[ {Steps.客户端身份验证事件} ]( {arg.ClientId} ) 身份验证异常:{arg.ReasonCode}", arg.ClientId, Core.@enum.ResultType.String));
                     }
                     else
                     {
                         arg.ReasonCode = MQTTnet.Protocol.MqttConnectReasonCode.Success;
-                        OnEventHandler(this, new EventResult(true, $"[ {Steps.客户端身份验证事件} ]( {arg.ClientId} ) 身份验证成功", arg.ClientId, Core.@enum.ResultType.String));
+                        OnEventHandler_Static?.Invoke(this, new EventResult(true, $"[ {Steps.客户端身份验证事件} ]( {arg.ClientId} ) 身份验证成功", arg.ClientId, Core.@enum.ResultType.String));
                     }
                 }));
             }
         }
-
-        /// <summary>
-        /// 启动
-        /// </summary>
-        private sealed class Startup
-        {
-            /// <summary>
-            /// 配置
-            /// </summary>
-            public void Configure(IApplicationBuilder app, IWebHostEnvironment environment, MqttController mqttController)
-            {
-                try
-                {
-                    app.UseRouting();
-
-                    app.UseEndpoints(
-                        endpoints =>
-                        {
-                            endpoints.MapConnectionHandler<MqttConnectionHandler>(
-                                mqttServiceData_Static.Uri,  //指定地址
-                                httpConnectionDispatcherOptions => httpConnectionDispatcherOptions.WebSockets.SubProtocolSelector = protocolList => protocolList.FirstOrDefault() ?? string.Empty);
-                        });
-
-                    app.UseMqttServer(
-                        server =>
-                        {
-                            //身份验证(异步)
-                            server.ValidatingConnectionAsync += mqttController.MqttServer_ValidatingConnectionAsync;
-                            //消息接收(异步)
-                            server.ApplicationMessageNotConsumedAsync += mqttController.MqttServer_ApplicationMessageNotConsumedAsync;
-                            //客户端连接(异步)
-                            server.ClientConnectedAsync += mqttController.MqttServer_ClientConnectedAsync;
-                            //客户端断开(异步)
-                            server.ClientDisconnectedAsync += mqttController.MqttServer_ClientDisconnectedAsync;
-                            //客户端订阅事件(异步)
-                            server.ClientSubscribedTopicAsync += mqttController.MqttServer_ClientSubscribedTopicAsync;
-                            //客户端取消订阅(异步)
-                            server.ClientUnsubscribedTopicAsync += mqttController.MqttServer_ClientUnsubscribedTopicAsync;
-                        });
-
-                    OnEventHandler(this, new EventResult(true, $"[ {Steps.系统信息} ]MQTT 服务端地址 ( 127.0.0.1:{mqttServiceData_Static.Port} )"));
-                    OnEventHandler(this, new EventResult(true, $"[ {Steps.系统信息} ]MQTT WebSocket 服务端地址 ( ws://127.0.0.1:{mqttServiceData_Static.WsPort}/{mqttServiceData_Static.Uri} )"));
-                }
-                catch (Exception ex)
-                {
-                    OnEventHandler(this, new EventResult(false, $"[ {Steps.系统异常信息} ]配置异常:{ex.Message}"));
-                }
-            }
-
-            /// <summary>
-            /// 配置服务
-            /// </summary>
-            /// <param name="services"></param>
-            public void ConfigureServices(IServiceCollection services)
-            {
-                try
-                {
-                    services.AddHostedMqttServer(
-                        optionsBuilder =>
-                        {
-                            optionsBuilder.WithDefaultEndpoint();
-                        });
-                    services.AddMqttConnectionHandler();
-                    services.AddConnections();
-                    services.AddSingleton<MqttController>();
-                }
-                catch (Exception ex)
-                {
-                    OnEventHandler(this, new EventResult(false, $"[ {Steps.系统异常信息} ]配置服务异常:{ex.Message}"));
-                }
-            }
-        }
     }
 }

+ 1 - 1
src/YSAI.Mvvm/YSAI.Mvvm.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-    <TargetFramework>net6.0-windows</TargetFramework>
+	<TargetFrameworks>net6.0-windows;net8.0-windows</TargetFrameworks>
     <Nullable>enable</Nullable>
     <UseWPF>true</UseWPF>
   </PropertyGroup>

+ 1 - 1
src/YSAI.NetMQ.Pack/YSAI.NetMQ.Pack.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>

+ 1 - 1
src/YSAI.NetMQ/YSAI.NetMQ.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+	<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Version>23.318.29701</Version>

+ 1 - 1
src/YSAI.Netty.Pack/YSAI.Netty.Pack.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>

+ 1 - 1
src/YSAI.Netty/YSAI.Netty.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+	<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Version>23.318.29701</Version>

+ 1 - 1
src/YSAI.Omron.Pack/YSAI.Omron.Pack.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>

+ 1 - 5
src/YSAI.Omron/OmronOperate.cs

@@ -820,11 +820,7 @@ namespace YSAI.Omron
                         else
                         {
                             object obj = Param.Value;
-                            if (obj is byte)
-                            {
-                                RState = W(Param.Key, BitConverter.GetBytes((byte)obj));
-                            }
-                            else if (obj is Int16)
+                            if (obj is Int16)
                             {
                                 RState = W(Param.Key, BitConverter.GetBytes((Int16)obj));
                             }

+ 1 - 1
src/YSAI.Omron/YSAI.Omron.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+	<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Version>23.318.29701</Version>

+ 1 - 1
src/YSAI.Opc.Pack/YSAI.Opc.Pack.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>

+ 1 - 1
src/YSAI.Opc/YSAI.Opc.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+	<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Version>23.318.34902</Version>

+ 1 - 1
src/YSAI.RabbitMQ.Pack/YSAI.RabbitMQ.Pack.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>

+ 1 - 1
src/YSAI.RabbitMQ/YSAI.RabbitMQ.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+	<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Version>23.318.29701</Version>

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

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>

+ 1 - 1
src/YSAI.Resources/YSAI.Resources.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-    <TargetFramework>net6.0-windows</TargetFramework>
+	<TargetFrameworks>net6.0-windows;net8.0-windows</TargetFrameworks>
     <Nullable>enable</Nullable>
     <UseWPF>true</UseWPF>
   </PropertyGroup>

+ 1 - 1
src/YSAI.Siemens.Pack/YSAI.Siemens.Pack.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>

+ 1 - 1
src/YSAI.Siemens/YSAI.Siemens.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+	<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Version>23.318.29702</Version>

+ 0 - 18
src/YSAI.Test.All/Properties/PublishProfiles/FolderProfile.pubxml

@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-https://go.microsoft.com/fwlink/?LinkID=208121.
--->
-<Project>
-  <PropertyGroup>
-    <Configuration>Release</Configuration>
-    <Platform>Any CPU</Platform>
-    <PublishDir>bin\Release\net6.0\publish\linux-x64\</PublishDir>
-    <PublishProtocol>FileSystem</PublishProtocol>
-    <_TargetId>Folder</_TargetId>
-    <TargetFramework>net6.0</TargetFramework>
-    <RuntimeIdentifier>linux-x64</RuntimeIdentifier>
-    <SelfContained>true</SelfContained>
-    <PublishSingleFile>false</PublishSingleFile>
-    <PublishTrimmed>false</PublishTrimmed>
-  </PropertyGroup>
-</Project>

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

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
 	<SatelliteResourceLanguages>zh-Hans</SatelliteResourceLanguages>

+ 95 - 62
src/YSAI.Test.Console/Program.cs

@@ -1,4 +1,37 @@
-
+using YSAI.Mqtt.client;
+using YSAI.Mqtt.service.websocket;
+using YSAI.Unility;
+
+await Task.Factory.StartNew(() =>
+{
+    MqttWebSocketServiceOperate mqttWebSocketServiceOperate = MqttWebSocketServiceOperate.Instance(new MqttWebSocketServiceData.Basics()
+    {
+        Uri = "ysai",
+        WsPort = 11820,
+        Port = 11819,
+        UserName = "ysai",
+        Password = "ysai"
+    });
+
+    Console.WriteLine(mqttWebSocketServiceOperate.On().ToJson().JsonFormatting());
+});
+
+
+
+MqttClientOperate mqttClientOperate = MqttClientOperate.Instance(new MqttClientData.Basics
+{
+    Ip = "127.0.0.1",
+    Port = 11819,
+    UserName = "ysai",
+    //Password = "ysai"
+});
+
+Console.WriteLine(mqttClientOperate.On().ToJson().JsonFormatting());
+
+
+
+
+
 //using YSAI.AllenBradley;
 //using YSAI.Beckhoff;
 //using YSAI.Can;
@@ -363,72 +396,72 @@
 //    LogHelper.Info(result.ToJson().JsonFormatting());
 //}
 
-using S7.Net;
-using System.Collections.Concurrent;
-using YSAI.Core.data;
-using YSAI.Core.@enum;
-using YSAI.Siemens;
-using YSAI.Unility;
+//using S7.Net;
+//using System.Collections.Concurrent;
+//using YSAI.Core.data;
+//using YSAI.Core.@enum;
+//using YSAI.Siemens;
+//using YSAI.Unility;
 
-SiemensOperate s7ClientOperate = SiemensOperate.Instance(new SiemensData.Basics()
-{
-    Ip = "192.168.2.20",
-    Port = 102,
-    Rack = 0,
-    Slot = 1,
-    CType = CpuType.S71200,
-    ChangeOut = true,
-    HandleInterval = 1000,
-    SN = Guid.NewGuid().ToString()
-}); ;
+//SiemensOperate s7ClientOperate = SiemensOperate.Instance(new SiemensData.Basics()
+//{
+//    Ip = "192.168.2.20",
+//    Port = 102,
+//    Rack = 0,
+//    Slot = 1,
+//    CType = CpuType.S71200,
+//    ChangeOut = true,
+//    HandleInterval = 1000,
+//    SN = Guid.NewGuid().ToString()
+//}); ;
 
-//打开
-OperateResult operateResult = s7ClientOperate.On();
-Console.WriteLine(operateResult.Message);
-
-//点位地址
-Address address = new Address();
-address.SN = Guid.NewGuid().ToString();
-address.CreationTime = DateTime.Now.ToLocalTime();
-address.AddressArray = new List<AddressDetails>();
-address.AddressArray.Add(new AddressDetails()
-{
-    AddressName = "DB71.DBD4",
-    AddressDataType = YSAI.Core.@enum.DataType.String,
-    AddressType = AddressType.Reality
-});
+////打开
+//OperateResult operateResult = s7ClientOperate.On();
+//Console.WriteLine(operateResult.Message);
 
-//读取
-operateResult = s7ClientOperate.Read(address);
-Console.WriteLine(operateResult.Message);
-if (operateResult.State)
-{
-    foreach (var item in operateResult.RData as ConcurrentDictionary<string, AddressValue>)
-    {
-        Console.WriteLine(item.Key);
-        Console.WriteLine(item.Value.Value);
-    }
-}
+////点位地址
+//Address address = new Address();
+//address.SN = Guid.NewGuid().ToString();
+//address.CreationTime = DateTime.Now.ToLocalTime();
+//address.AddressArray = new List<AddressDetails>();
+//address.AddressArray.Add(new AddressDetails()
+//{
+//    AddressName = "DB71.DBD4",
+//    AddressDataType = YSAI.Core.@enum.DataType.String,
+//    AddressType = AddressType.Reality
+//});
 
-//订阅
-s7ClientOperate.OnEvent += S7ClientOperate_OnEvent;
-s7ClientOperate.Subscribe(address);
+////读取
+//operateResult = s7ClientOperate.Read(address);
+//Console.WriteLine(operateResult.Message);
+//if (operateResult.State)
+//{
+//    foreach (var item in operateResult.RData as ConcurrentDictionary<string, AddressValue>)
+//    {
+//        Console.WriteLine(item.Key);
+//        Console.WriteLine(item.Value.Value);
+//    }
+//}
 
-while (true)
-{
-    string value = Console.ReadLine();
-    //写入
-    ConcurrentDictionary<string, string> keyValuePairs = new ConcurrentDictionary<string, string>();
-    //keyValuePairs.TryAdd("DB71.DBD4", string.IsNullOrWhiteSpace(value) ? uint.MaxValue : uint.Parse(value));
-    keyValuePairs.TryAdd("DB71.DBD4", value);
-    operateResult = s7ClientOperate.Write(keyValuePairs);
-    Console.WriteLine(operateResult.Message);
-}
-
-void S7ClientOperate_OnEvent(object? sender, EventResult e)
-{
-    Console.WriteLine(e.ToJson());
-}
+////订阅
+//s7ClientOperate.OnEvent += S7ClientOperate_OnEvent;
+//s7ClientOperate.Subscribe(address);
+
+//while (true)
+//{
+//    string value = Console.ReadLine();
+//    //写入
+//    ConcurrentDictionary<string, string> keyValuePairs = new ConcurrentDictionary<string, string>();
+//    //keyValuePairs.TryAdd("DB71.DBD4", string.IsNullOrWhiteSpace(value) ? uint.MaxValue : uint.Parse(value));
+//    keyValuePairs.TryAdd("DB71.DBD4", value);
+//    operateResult = s7ClientOperate.Write(keyValuePairs);
+//    Console.WriteLine(operateResult.Message);
+//}
+
+//void S7ClientOperate_OnEvent(object? sender, EventResult e)
+//{
+//    Console.WriteLine(e.ToJson());
+//}
 
 //WsServiceOperate wsServiceOperate = WsServiceOperate.Instance(new WsServiceData.Basics
 //{

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

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
 	  <SatelliteResourceLanguages>zh-Hans</SatelliteResourceLanguages>

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

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>

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

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
 

+ 2 - 2
src/YSAI.Unility.Windows/YSAI.Unility.Windows.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-	  <TargetFramework>net6.0-windows</TargetFramework>
+	  <TargetFrameworks>net6.0-windows;net8.0-windows</TargetFrameworks>
 	  <ImplicitUsings>enable</ImplicitUsings>
 	  <Nullable>enable</Nullable>
 	  <UseWPF>true</UseWPF>
@@ -16,6 +16,6 @@
 		<PackageReference Include="LibreHardwareMonitorLib" Version="0.9.2" />
 		<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
 		<PackageReference Include="NPOI" Version="2.6.2" />
-		<PackageReference Include="System.Speech" Version="7.0.0" />
+		<PackageReference Include="System.Speech" Version="8.0.0" />
 	</ItemGroup>
 </Project>

+ 1 - 1
src/YSAI.Unility/YSAI.Unility.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
+	<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <Version>23.318.29224</Version>

+ 1 - 1
src/YSAI.VT/YSAI.VT.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
   </PropertyGroup>

+ 2 - 2
src/YSAI.Window/YSAI.Window.csproj

@@ -1,12 +1,12 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-    <TargetFramework>net6.0-windows</TargetFramework>
+	<TargetFrameworks>net6.0-windows;net8.0-windows</TargetFrameworks>
     <Nullable>enable</Nullable>
     <UseWPF>true</UseWPF>
   </PropertyGroup>
 	<ItemGroup>
-		<PackageReference Include="System.Drawing.Common" Version="7.0.0" />
+		<PackageReference Include="System.Drawing.Common" Version="8.0.0" />
 	</ItemGroup>
 
 	<ItemGroup>

+ 1 - 1
src/YSAI.WindowMessage/YSAI.WindowMessage.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-    <TargetFramework>net6.0-windows</TargetFramework>
+	<TargetFrameworks>net6.0-windows;net8.0-windows</TargetFrameworks>
     <Nullable>enable</Nullable>
     <UseWPF>true</UseWPF>
   </PropertyGroup>