From 2522333a9c7ff89f5cfc5984f88d1f3a986c8ba0 Mon Sep 17 00:00:00 2001 From: "2248356998 qq.com" <2248356998@qq.com> Date: Mon, 29 Sep 2025 23:16:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ThingsGateway.Furion.csproj | 2 +- .../Extension/ChannelOptionsExtensions.cs | 14 ++++++--- .../Extensions/JSRuntimeExtensions.cs | 12 ++++++-- .../Benchmark/ModbusBenchmark.cs | 18 ++++++----- .../Benchmark/S7Benchmark.cs | 2 +- .../GlobalSuppressions.cs | 0 .../GlobalUsings.cs | 0 .../ModbusMasterDemo.cs | 0 .../ThingsGateway.Foundation.Demo/Program.cs | 0 .../SiemensS7MasterDemo.cs | 0 .../ThingsGateway.Foundation.Demo.csproj | 4 +-- src/ThingsGateway.sln | 30 +++++++++++-------- 12 files changed, 52 insertions(+), 30 deletions(-) rename src/{Foundation => Plugin}/ThingsGateway.Foundation.Demo/GlobalSuppressions.cs (100%) rename src/{Foundation => Plugin}/ThingsGateway.Foundation.Demo/GlobalUsings.cs (100%) rename src/{Foundation => Plugin}/ThingsGateway.Foundation.Demo/ModbusMasterDemo.cs (100%) rename src/{Foundation => Plugin}/ThingsGateway.Foundation.Demo/Program.cs (100%) rename src/{Foundation => Plugin}/ThingsGateway.Foundation.Demo/SiemensS7MasterDemo.cs (100%) rename src/{Foundation => Plugin}/ThingsGateway.Foundation.Demo/ThingsGateway.Foundation.Demo.csproj (64%) diff --git a/src/Admin/ThingsGateway.Furion/ThingsGateway.Furion.csproj b/src/Admin/ThingsGateway.Furion/ThingsGateway.Furion.csproj index 5a2c34051..c00d7bd42 100644 --- a/src/Admin/ThingsGateway.Furion/ThingsGateway.Furion.csproj +++ b/src/Admin/ThingsGateway.Furion/ThingsGateway.Furion.csproj @@ -29,7 +29,7 @@ - + diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelOptionsExtensions.cs b/src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelOptionsExtensions.cs index 5086c412d..fb64af98a 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelOptionsExtensions.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelOptionsExtensions.cs @@ -8,6 +8,8 @@ // QQ群:605534569 //------------------------------------------------------------------------------ +using System.Buffers; + using ThingsGateway.Foundation.Extension.String; using TouchSocket.SerialPorts; @@ -101,13 +103,17 @@ public static class ChannelOptionsExtensions config.SetTransportOption(a => { + a.MaxBufferSize = 1024; + a.MinBufferSize = 512; a.SendPipeOptions = new System.IO.Pipelines.PipeOptions( - minimumSegmentSize: 1024, + minimumSegmentSize: 512, + pauseWriterThreshold: 1024, + resumeWriterThreshold: 512, useSynchronizationContext: false); a.ReceivePipeOptions = new System.IO.Pipelines.PipeOptions( - pauseWriterThreshold: 1024 * 1024, - resumeWriterThreshold: 1024 * 512, - minimumSegmentSize: 1024, + minimumSegmentSize: 512, + pauseWriterThreshold: 1024, + resumeWriterThreshold: 512, useSynchronizationContext: false); }); diff --git a/src/Gateway/ThingsGateway.Blazor.Diagrams/Components/Extensions/JSRuntimeExtensions.cs b/src/Gateway/ThingsGateway.Blazor.Diagrams/Components/Extensions/JSRuntimeExtensions.cs index 1ed5d509c..45e8c5235 100644 --- a/src/Gateway/ThingsGateway.Blazor.Diagrams/Components/Extensions/JSRuntimeExtensions.cs +++ b/src/Gateway/ThingsGateway.Blazor.Diagrams/Components/Extensions/JSRuntimeExtensions.cs @@ -18,14 +18,20 @@ public static class JSRuntimeExtensions { await jsRuntime.InvokeVoidAsync("BlazorDiagrams.observe", element, reference, element.Id).ConfigureAwait(false); } - catch (ObjectDisposedException) + catch { - // Ignore, DotNetObjectReference was likely disposed } } public static async Task UnobserveResizes(this IJSRuntime jsRuntime, ElementReference element) { - await jsRuntime.InvokeVoidAsync("BlazorDiagrams.unobserve", element, element.Id).ConfigureAwait(false); + try + { + await jsRuntime.InvokeVoidAsync("BlazorDiagrams.unobserve", element, element.Id).ConfigureAwait(false); + } + catch + { + + } } } diff --git a/src/Plugin/ThingsGateway.Foundation.Benchmark/Benchmark/ModbusBenchmark.cs b/src/Plugin/ThingsGateway.Foundation.Benchmark/Benchmark/ModbusBenchmark.cs index 7cf37fe69..2d0dc484e 100644 --- a/src/Plugin/ThingsGateway.Foundation.Benchmark/Benchmark/ModbusBenchmark.cs +++ b/src/Plugin/ThingsGateway.Foundation.Benchmark/Benchmark/ModbusBenchmark.cs @@ -10,7 +10,6 @@ using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Diagnosers; -using BenchmarkDotNet.Jobs; using Longbow.Modbus; using Longbow.TcpSocket; @@ -29,14 +28,14 @@ using ModbusMaster = ThingsGateway.Foundation.Modbus.ModbusMaster; namespace ThingsGateway.Foundation; -[SimpleJob(RuntimeMoniker.Net80)] +//[SimpleJob(RuntimeMoniker.Net80)] //[SimpleJob(RuntimeMoniker.Net10_0)] [MemoryDiagnoser] public class ModbusBenchmark : IDisposable { - public static int ClientCount = 2; + public static int ClientCount = 1; public static int TaskNumberOfItems = 4; - public static int NumberOfItems = 4; + public static int NumberOfItems = 40; private readonly List _lgbModbusClients = []; private List thingsgatewaymodbuss = new(); @@ -62,7 +61,7 @@ public class ModbusBenchmark : IDisposable await clientChannel.SetupAsync(clientChannel.Config); clientChannel.Logger.LogLevel = LogLevel.Warning; await thingsgatewaymodbus.ConnectAsync(CancellationToken.None); - await thingsgatewaymodbus.ReadAsync("40001", 100); + await thingsgatewaymodbus.ModbusReadAsync(new ModbusAddress() { FunctionCode = 3, StartAddress = 0, Length = 100 }); thingsgatewaymodbuss.Add(thingsgatewaymodbus); } @@ -145,7 +144,7 @@ public class ModbusBenchmark : IDisposable public async Task LongbowModbus() { List tasks = new List(); - foreach (var _lgbModbusClient in _lgbModbusClients) + foreach (var client in _lgbModbusClients) { for (int i = 0; i < TaskNumberOfItems; i++) @@ -155,7 +154,12 @@ public class ModbusBenchmark : IDisposable for (int i = 0; i < NumberOfItems; i++) { using var cts = new CancellationTokenSource(3000); - var task = await _lgbModbusClient.ReadHoldingRegistersAsync(1, 0, 100, cts.Token).ConfigureAwait(false); + var result = await client.ReadHoldingRegistersAsync(1, 0, 100, cts.Token).ConfigureAwait(false); + var data = result.ReadUShortValues(100); + if (!result.IsSuccess) + { + throw new Exception(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff") + result.Exception); + } } })); } diff --git a/src/Plugin/ThingsGateway.Foundation.Benchmark/Benchmark/S7Benchmark.cs b/src/Plugin/ThingsGateway.Foundation.Benchmark/Benchmark/S7Benchmark.cs index b512ddfab..a9764088a 100644 --- a/src/Plugin/ThingsGateway.Foundation.Benchmark/Benchmark/S7Benchmark.cs +++ b/src/Plugin/ThingsGateway.Foundation.Benchmark/Benchmark/S7Benchmark.cs @@ -22,7 +22,7 @@ using TouchSocket.Core; namespace ThingsGateway.Foundation; -[SimpleJob(RuntimeMoniker.Net80)] +//[SimpleJob(RuntimeMoniker.Net80)] //[SimpleJob(RuntimeMoniker.Net10_0)] [MemoryDiagnoser] public class S7Benchmark : IDisposable diff --git a/src/Foundation/ThingsGateway.Foundation.Demo/GlobalSuppressions.cs b/src/Plugin/ThingsGateway.Foundation.Demo/GlobalSuppressions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Demo/GlobalSuppressions.cs rename to src/Plugin/ThingsGateway.Foundation.Demo/GlobalSuppressions.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Demo/GlobalUsings.cs b/src/Plugin/ThingsGateway.Foundation.Demo/GlobalUsings.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Demo/GlobalUsings.cs rename to src/Plugin/ThingsGateway.Foundation.Demo/GlobalUsings.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Demo/ModbusMasterDemo.cs b/src/Plugin/ThingsGateway.Foundation.Demo/ModbusMasterDemo.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Demo/ModbusMasterDemo.cs rename to src/Plugin/ThingsGateway.Foundation.Demo/ModbusMasterDemo.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Demo/Program.cs b/src/Plugin/ThingsGateway.Foundation.Demo/Program.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Demo/Program.cs rename to src/Plugin/ThingsGateway.Foundation.Demo/Program.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Demo/SiemensS7MasterDemo.cs b/src/Plugin/ThingsGateway.Foundation.Demo/SiemensS7MasterDemo.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Demo/SiemensS7MasterDemo.cs rename to src/Plugin/ThingsGateway.Foundation.Demo/SiemensS7MasterDemo.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Demo/ThingsGateway.Foundation.Demo.csproj b/src/Plugin/ThingsGateway.Foundation.Demo/ThingsGateway.Foundation.Demo.csproj similarity index 64% rename from src/Foundation/ThingsGateway.Foundation.Demo/ThingsGateway.Foundation.Demo.csproj rename to src/Plugin/ThingsGateway.Foundation.Demo/ThingsGateway.Foundation.Demo.csproj index 2233c8acb..43e02ab32 100644 --- a/src/Foundation/ThingsGateway.Foundation.Demo/ThingsGateway.Foundation.Demo.csproj +++ b/src/Plugin/ThingsGateway.Foundation.Demo/ThingsGateway.Foundation.Demo.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/src/ThingsGateway.sln b/src/ThingsGateway.sln index 18c975bb0..c2844c0c9 100644 --- a/src/ThingsGateway.sln +++ b/src/ThingsGateway.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.9.34622.214 +# Visual Studio Version 18 +VisualStudioVersion = 18.0.11018.127 d18.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThingsGateway.Server", "ThingsGateway.Server\ThingsGateway.Server.csproj", "{22875EFB-DADF-4612-A572-33BCC092F644}" EndProject @@ -111,12 +111,16 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "foundation", "foundation", EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "debug", "debug", "{053AB5FA-9742-96EC-76A1-2AEC739860C6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ThingsGateway.Foundation.Demo", "Foundation\ThingsGateway.Foundation.Demo\ThingsGateway.Foundation.Demo.csproj", "{520DEEAA-1CBD-C0CB-2363-EB190D7DE4EA}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ThingsGateway.Foundation.Benchmark", "Plugin\ThingsGateway.Foundation.Benchmark\ThingsGateway.Foundation.Benchmark.csproj", "{B0957BD6-CF77-36E7-B657-2D0DB85F386F}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ThingsGateway.ScriptDebug", "ThingsGateway.ScriptDebug\ThingsGateway.ScriptDebug.csproj", "{F4AC662F-BE2C-6E1C-4BAF-370B968B3554}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{4F7AAAB1-C607-4FA0-9DFC-562940D76BC1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "benchmark", "benchmark", "{19611184-C452-4DF7-A0A3-CCFFCE1DD191}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ThingsGateway.Foundation.Demo", "Plugin\ThingsGateway.Foundation.Demo\ThingsGateway.Foundation.Demo.csproj", "{C9B6F478-8CEC-1C71-00C2-19442F731E0E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -287,10 +291,6 @@ Global {EAEE6A03-D2E7-7283-0F7A-F15B6261EE96}.Debug|Any CPU.Build.0 = Debug|Any CPU {EAEE6A03-D2E7-7283-0F7A-F15B6261EE96}.Release|Any CPU.ActiveCfg = Release|Any CPU {EAEE6A03-D2E7-7283-0F7A-F15B6261EE96}.Release|Any CPU.Build.0 = Release|Any CPU - {520DEEAA-1CBD-C0CB-2363-EB190D7DE4EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {520DEEAA-1CBD-C0CB-2363-EB190D7DE4EA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {520DEEAA-1CBD-C0CB-2363-EB190D7DE4EA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {520DEEAA-1CBD-C0CB-2363-EB190D7DE4EA}.Release|Any CPU.Build.0 = Release|Any CPU {B0957BD6-CF77-36E7-B657-2D0DB85F386F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B0957BD6-CF77-36E7-B657-2D0DB85F386F}.Debug|Any CPU.Build.0 = Debug|Any CPU {B0957BD6-CF77-36E7-B657-2D0DB85F386F}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -299,6 +299,10 @@ Global {F4AC662F-BE2C-6E1C-4BAF-370B968B3554}.Debug|Any CPU.Build.0 = Debug|Any CPU {F4AC662F-BE2C-6E1C-4BAF-370B968B3554}.Release|Any CPU.ActiveCfg = Release|Any CPU {F4AC662F-BE2C-6E1C-4BAF-370B968B3554}.Release|Any CPU.Build.0 = Release|Any CPU + {C9B6F478-8CEC-1C71-00C2-19442F731E0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C9B6F478-8CEC-1C71-00C2-19442F731E0E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C9B6F478-8CEC-1C71-00C2-19442F731E0E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C9B6F478-8CEC-1C71-00C2-19442F731E0E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -345,12 +349,14 @@ Global {1D9CD7A3-9700-A851-0ABD-183347D9CC33} = {36510D70-161F-4241-B8D0-781E21032816} {E6EF2033-F02A-CDAD-5A72-EE397A89742E} = {36510D70-161F-4241-B8D0-781E21032816} {053AB5FA-9742-96EC-76A1-2AEC739860C6} = {36510D70-161F-4241-B8D0-781E21032816} - {520DEEAA-1CBD-C0CB-2363-EB190D7DE4EA} = {2AC600BB-4325-4E0A-93A7-B1F53C8E2CA7} - {B0957BD6-CF77-36E7-B657-2D0DB85F386F} = {1D9CD7A3-9700-A851-0ABD-183347D9CC33} + {B0957BD6-CF77-36E7-B657-2D0DB85F386F} = {19611184-C452-4DF7-A0A3-CCFFCE1DD191} + {4F7AAAB1-C607-4FA0-9DFC-562940D76BC1} = {36510D70-161F-4241-B8D0-781E21032816} + {19611184-C452-4DF7-A0A3-CCFFCE1DD191} = {36510D70-161F-4241-B8D0-781E21032816} + {C9B6F478-8CEC-1C71-00C2-19442F731E0E} = {4F7AAAB1-C607-4FA0-9DFC-562940D76BC1} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - RESX_Rules = {"EnabledRules":[]} - RESX_NeutralResourcesLanguage = zh-Hans SolutionGuid = {199B1B96-4F56-4828-9531-813BA02DB282} + RESX_NeutralResourcesLanguage = zh-Hans + RESX_Rules = {"EnabledRules":[]} EndGlobalSection EndGlobal