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