diff --git a/framework/.editorconfig b/framework/.editorconfig
index 3badce029..6f01d995b 100644
--- a/framework/.editorconfig
+++ b/framework/.editorconfig
@@ -81,6 +81,15 @@ dotnet_diagnostic.CA2208.severity = none
# IDE0057: 使用范围运算符
dotnet_diagnostic.IDE0057.severity = none
+# IDE0056: 使用索引运算符
+dotnet_diagnostic.IDE0056.severity = none
+
+# CA1830: 最好使用 StringBuilder 的强类型 Append 和 Insert 方法重载
+dotnet_diagnostic.CA1830.severity = none
+
+# CA1847: 将字符型文本用于单个字符查找
+dotnet_diagnostic.CA1847.severity = none
+
[*.vb]
#### 命名样式 ####
diff --git a/framework/ThingsGateway.Blazor/DebugPage/SerialClientPage.razor.cs b/framework/ThingsGateway.Blazor/DebugPage/SerialClientPage.razor.cs
index de31f9952..1d26ae1ec 100644
--- a/framework/ThingsGateway.Blazor/DebugPage/SerialClientPage.razor.cs
+++ b/framework/ThingsGateway.Blazor/DebugPage/SerialClientPage.razor.cs
@@ -78,8 +78,7 @@ public partial class SerialClientPage
///
protected override void OnInitialized()
{
- config?.Dispose();
- config = new TouchSocketConfig();
+ config ??= new TouchSocketConfig();
var LogMessage = new TouchSocket.Core.LoggerGroup() { LogLevel = TouchSocket.Core.LogLevel.Trace };
LogMessage.AddLogger(new EasyLogger(LogOut) { LogLevel = TouchSocket.Core.LogLevel.Trace });
config.ConfigureContainer(a => a.RegisterSingleton(LogMessage));
diff --git a/framework/ThingsGateway.Blazor/DebugPage/TcpClientPage.razor.cs b/framework/ThingsGateway.Blazor/DebugPage/TcpClientPage.razor.cs
index 90a287e65..7ab168d46 100644
--- a/framework/ThingsGateway.Blazor/DebugPage/TcpClientPage.razor.cs
+++ b/framework/ThingsGateway.Blazor/DebugPage/TcpClientPage.razor.cs
@@ -78,8 +78,7 @@ public partial class TcpClientPage
///
public TcpClientEx GetTcpClient()
{
- config?.Dispose();
- config = new TouchSocketConfig();
+ config ??= new TouchSocketConfig();
var LogMessage = new TouchSocket.Core.LoggerGroup() { LogLevel = TouchSocket.Core.LogLevel.Trace };
LogMessage.AddLogger(new EasyLogger(LogOut) { LogLevel = TouchSocket.Core.LogLevel.Trace });
config.ConfigureContainer(a => a.RegisterSingleton(LogMessage));
diff --git a/framework/ThingsGateway.Blazor/DebugPage/TcpServerPage.razor.cs b/framework/ThingsGateway.Blazor/DebugPage/TcpServerPage.razor.cs
index 0077f9586..ca6b6af92 100644
--- a/framework/ThingsGateway.Blazor/DebugPage/TcpServerPage.razor.cs
+++ b/framework/ThingsGateway.Blazor/DebugPage/TcpServerPage.razor.cs
@@ -67,8 +67,7 @@ public partial class TcpServerPage
///
public TcpService GetTcpServer()
{
- config?.Dispose();
- config = new TouchSocketConfig();
+ config ??= new TouchSocketConfig();
var LogMessage = new TouchSocket.Core.LoggerGroup() { LogLevel = TouchSocket.Core.LogLevel.Trace };
LogMessage.AddLogger(new EasyLogger(LogOut) { LogLevel = TouchSocket.Core.LogLevel.Trace });
config.ConfigureContainer(a => a.RegisterSingleton(LogMessage));
diff --git a/framework/ThingsGateway.Blazor/DebugPage/UdpSessionPage.razor.cs b/framework/ThingsGateway.Blazor/DebugPage/UdpSessionPage.razor.cs
index d73197f62..6b9d45570 100644
--- a/framework/ThingsGateway.Blazor/DebugPage/UdpSessionPage.razor.cs
+++ b/framework/ThingsGateway.Blazor/DebugPage/UdpSessionPage.razor.cs
@@ -67,8 +67,7 @@ public partial class UdpSessionPage : IDisposable
///
public UdpSession GetUdpSession()
{
- config?.Dispose();
- config = new TouchSocketConfig();
+ config ??= new TouchSocketConfig();
var LogMessage = new TouchSocket.Core.LoggerGroup() { LogLevel = TouchSocket.Core.LogLevel.Trace };
LogMessage.AddLogger(new EasyLogger(LogOut) { LogLevel = TouchSocket.Core.LogLevel.Trace });
config.ConfigureContainer(a => a.RegisterSingleton(LogMessage));
diff --git a/framework/ThingsGateway.Foundation/BaseReadWrite/ReadWriteDevicesUdpBase.cs b/framework/ThingsGateway.Foundation/BaseReadWrite/ReadWriteDevicesUdpBase.cs
index a39949861..10def1781 100644
--- a/framework/ThingsGateway.Foundation/BaseReadWrite/ReadWriteDevicesUdpBase.cs
+++ b/framework/ThingsGateway.Foundation/BaseReadWrite/ReadWriteDevicesUdpBase.cs
@@ -24,10 +24,8 @@ public abstract class ReadWriteDevicesUdpBase : ReadWriteDevicesClientBase
///
public ReadWriteDevicesUdpBase(UdpSession udpSession)
{
-
UdpSession = udpSession;
WaitingClientEx = UdpSession.GetWaitingClientEx(new());
-
SetDataAdapter();
}
///
diff --git a/framework/ThingsGateway.Plugin/Foundataion.Demo/OPCUAClientDemo/Program.cs b/framework/ThingsGateway.Plugin/Foundataion.Demo/OPCUAClientDemo/Program.cs
index 814daf065..0e0166e05 100644
--- a/framework/ThingsGateway.Plugin/Foundataion.Demo/OPCUAClientDemo/Program.cs
+++ b/framework/ThingsGateway.Plugin/Foundataion.Demo/OPCUAClientDemo/Program.cs
@@ -8,15 +8,18 @@ namespace ModbusDemo
{
static async Task Main(string[] args)
{
- OPCUAClient oPCUAClient = new(new EasyLogger(a => Console.WriteLine(a)));
- oPCUAClient.OPCNode = new()
+ OPCUAClient oPCUAClient = new(new EasyLogger(a => Console.WriteLine(a)))
{
- OPCUrl = "opc.tcp://desktop-p5gb4iq:50001/StandardServer",
- IsUseSecurity = true,
+ OPCNode = new()
+ {
+ OPCUrl = "opc.tcp://desktop-p5gb4iq:50001/StandardServer",
+ IsUseSecurity = true,
+ }
};
await oPCUAClient.ConnectAsync();
var testData1 = await oPCUAClient.ReadJTokenValueAsync(new[] { "ns=2;i=2897" });
+ await oPCUAClient.WriteNodeAsync("ns=2;i=2897", testData1.FirstOrDefault().Item3);
}
}
diff --git a/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusRtu/ModbusRtu.cs b/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusRtu/ModbusRtu.cs
index 77f97aa13..47253ee31 100644
--- a/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusRtu/ModbusRtu.cs
+++ b/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusRtu/ModbusRtu.cs
@@ -82,12 +82,12 @@ public class ModbusRtu : ReadWriteDevicesSerialBase
///
public override void SetDataAdapter()
{
- ModbusRtuDataHandleAdapter DataHandleAdapter = new()
+ ModbusRtuDataHandleAdapter dataHandleAdapter = new()
{
Crc16CheckEnable = Crc16CheckEnable,
CacheTimeout = TimeSpan.FromMilliseconds(CacheTimeout)
};
- SerialClient.SetDataHandlingAdapter(DataHandleAdapter);
+ SerialClient.SetDataHandlingAdapter(dataHandleAdapter);
}
///
diff --git a/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusRtuOverTcp/ModbusRtuOverTcp.cs b/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusRtuOverTcp/ModbusRtuOverTcp.cs
index cee758439..8abcddbe6 100644
--- a/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusRtuOverTcp/ModbusRtuOverTcp.cs
+++ b/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusRtuOverTcp/ModbusRtuOverTcp.cs
@@ -78,12 +78,12 @@ public class ModbusRtuOverTcp : ReadWriteDevicesTcpClientBase
///
public override void SetDataAdapter()
{
- ModbusRtuDataHandleAdapter DataHandleAdapter = new()
+ ModbusRtuDataHandleAdapter dataHandleAdapter = new()
{
Crc16CheckEnable = Crc16CheckEnable,
CacheTimeout = TimeSpan.FromMilliseconds(CacheTimeout)
};
- TcpClientEx.SetDataHandlingAdapter(DataHandleAdapter);
+ TcpClientEx.SetDataHandlingAdapter(dataHandleAdapter);
}
///
diff --git a/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusRtuOverUdp/ModbusRtuOverUdp.cs b/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusRtuOverUdp/ModbusRtuOverUdp.cs
index b2bf80a7a..53f2a344e 100644
--- a/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusRtuOverUdp/ModbusRtuOverUdp.cs
+++ b/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusRtuOverUdp/ModbusRtuOverUdp.cs
@@ -72,11 +72,14 @@ public class ModbusRtuOverUdp : ReadWriteDevicesUdpBase
///
public override void SetDataAdapter()
{
- ModbusRtuOverUdpDataHandleAdapter DataHandleAdapter = new()
+ ModbusRtuOverUdpDataHandleAdapter dataHandleAdapter = new()
{
Crc16CheckEnable = Crc16CheckEnable,
};
- UdpSession.SetDataHandlingAdapter(DataHandleAdapter);
+ UdpSession.Config.SetUdpDataHandlingAdapter(() =>
+ {
+ return dataHandleAdapter;
+ });
}
///
diff --git a/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusServer/ModbusServer.cs b/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusServer/ModbusServer.cs
index f24bc3d36..d53c2e465 100644
--- a/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusServer/ModbusServer.cs
+++ b/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusServer/ModbusServer.cs
@@ -78,8 +78,8 @@ public class ModbusServer : ReadWriteDevicesTcpServerBase
///
public override void SetDataAdapter(SocketClient client)
{
- ModbusServerDataHandleAdapter DataHandleAdapter = new();
- client.SetDataHandlingAdapter(DataHandleAdapter);
+ ModbusServerDataHandleAdapter dataHandleAdapter = new();
+ client.SetDataHandlingAdapter(dataHandleAdapter);
}
///
diff --git a/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusTcp/ModbusTcp.cs b/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusTcp/ModbusTcp.cs
index 25142a639..691be6c87 100644
--- a/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusTcp/ModbusTcp.cs
+++ b/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusTcp/ModbusTcp.cs
@@ -79,12 +79,12 @@ public class ModbusTcp : ReadWriteDevicesTcpClientBase
///
public override void SetDataAdapter()
{
- ModbusTcpDataHandleAdapter DataHandleAdapter = new()
+ ModbusTcpDataHandleAdapter dataHandleAdapter = new()
{
IsCheckMessageId = IsCheckMessageId,
CacheTimeout = TimeSpan.FromMilliseconds(CacheTimeout)
};
- TcpClientEx.SetDataHandlingAdapter(DataHandleAdapter);
+ TcpClientEx.SetDataHandlingAdapter(dataHandleAdapter);
}
///
diff --git a/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusUdp/ModbusUdp.cs b/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusUdp/ModbusUdp.cs
index e8597d715..dffa4c51f 100644
--- a/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusUdp/ModbusUdp.cs
+++ b/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Modbus/Modbus/ModbusUdp/ModbusUdp.cs
@@ -75,11 +75,14 @@ public class ModbusUdp : ReadWriteDevicesUdpBase
///
public override void SetDataAdapter()
{
- ModbusUdpDataHandleAdapter DataHandleAdapter = new()
+ ModbusUdpDataHandleAdapter dataHandleAdapter = new()
{
IsCheckMessageId = IsCheckMessageId
};
- UdpSession.SetDataHandlingAdapter(DataHandleAdapter);
+ UdpSession.Config.SetUdpDataHandlingAdapter(() =>
+ {
+ return dataHandleAdapter;
+ });
}
///
diff --git a/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Siemens/Siemens/SiemensS7PLC.cs b/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Siemens/Siemens/SiemensS7PLC.cs
index 3b0b41291..aefa78bca 100644
--- a/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Siemens/Siemens/SiemensS7PLC.cs
+++ b/framework/ThingsGateway.Plugin/Foundataion/ThingsGateway.Foundation.Adapter.Siemens/Siemens/SiemensS7PLC.cs
@@ -305,6 +305,8 @@ namespace ThingsGateway.Foundation.Adapter.Siemens
foreach (var item in commandResult.Content)
{
ResponsedData result = await WaitingClientEx.SendThenResponseAsync(item, TimeOut, token);
+ if (!((MessageBase)result.RequestInfo).IsSuccess)
+ return OperResult.CreateFailedResult(((MessageBase)result.RequestInfo));
bytes.Add(result);
}
return OperResult.CreateSuccessResult(bytes.ToArray());
@@ -338,7 +340,7 @@ namespace ThingsGateway.Foundation.Adapter.Siemens
if (commandResult.IsSuccess)
{
var result = await WaitingClientEx.SendThenResponseAsync(commandResult.Content, TimeOut, token);
- return OperResult.CreateSuccessResult(result);
+ return (MessageBase)result.RequestInfo;
}
else
{
diff --git a/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusRtu/ModbusRtuDebugDriverPage.razor b/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusRtu/ModbusRtuDebugDriverPage.razor
index b12fc855b..59e9ed478 100644
--- a/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusRtu/ModbusRtuDebugDriverPage.razor
+++ b/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusRtu/ModbusRtuDebugDriverPage.razor
@@ -26,13 +26,13 @@
- x.Crc16CheckEnable)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Crc16CheckEnable>
- x.FrameTime)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.FrameTime>
- x.CacheTimeout)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.CacheTimeout>
+ x.Crc16CheckEnable)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Crc16CheckEnable>
+ x.FrameTime)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.FrameTime>
+ x.CacheTimeout)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.CacheTimeout>
- x.Station)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Station>
- x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
- x.Station)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Station>
+ x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
+ u.des)
@@ -54,6 +54,7 @@
{
//载入配置
_plc = new ThingsGateway.Foundation.Adapter.Modbus.ModbusRtu((SerialClient)defalutDebugDriverPage.SerialClientPage.GetSerialClient());
+ defalutDebugDriverPage.Plc = _plc;
}
base.OnAfterRender(firstRender);
}
diff --git a/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusRtuOverTcp/ModbusRtuOverTcpDebugDriverPage.razor b/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusRtuOverTcp/ModbusRtuOverTcpDebugDriverPage.razor
index f6ddc86ba..a67380edc 100644
--- a/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusRtuOverTcp/ModbusRtuOverTcpDebugDriverPage.razor
+++ b/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusRtuOverTcp/ModbusRtuOverTcpDebugDriverPage.razor
@@ -25,13 +25,13 @@
- x.Crc16CheckEnable)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Crc16CheckEnable>
- x.FrameTime)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.FrameTime>
- x.CacheTimeout)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.CacheTimeout>
+ x.Crc16CheckEnable)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Crc16CheckEnable>
+ x.FrameTime)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.FrameTime>
+ x.CacheTimeout)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.CacheTimeout>
- x.Station)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Station>
- x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
- x.Station)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Station>
+ x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
+ u.des)
diff --git a/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusRtuOverUdp/ModbusRtuOverUdpDebugDriverPage.razor b/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusRtuOverUdp/ModbusRtuOverUdpDebugDriverPage.razor
index 46afc5f6a..d010c9819 100644
--- a/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusRtuOverUdp/ModbusRtuOverUdpDebugDriverPage.razor
+++ b/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusRtuOverUdp/ModbusRtuOverUdpDebugDriverPage.razor
@@ -25,12 +25,12 @@
- x.Crc16CheckEnable)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Crc16CheckEnable>
- x.FrameTime)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.FrameTime>
+ x.Crc16CheckEnable)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Crc16CheckEnable>
+ x.FrameTime)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.FrameTime>
- x.Station)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Station>
- x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
- x.Station)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Station>
+ x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
+ u.des)
diff --git a/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusServer/ModbusServerDebugDriverPage.razor b/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusServer/ModbusServerDebugDriverPage.razor
index 5e6b7e13a..b29990d0b 100644
--- a/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusServer/ModbusServerDebugDriverPage.razor
+++ b/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusServer/ModbusServerDebugDriverPage.razor
@@ -25,11 +25,11 @@
- x.MulStation)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.MulStation>
+ x.MulStation)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.MulStation>
- x.Station)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Station>
- x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
- x.Station)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Station>
+ x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
+ u.des)
diff --git a/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusTcp/ModbusTcpDebugDriverPage.razor b/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusTcp/ModbusTcpDebugDriverPage.razor
index 7c75bb7b4..61059dd91 100644
--- a/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusTcp/ModbusTcpDebugDriverPage.razor
+++ b/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusTcp/ModbusTcpDebugDriverPage.razor
@@ -25,13 +25,13 @@
- x.IsCheckMessageId)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.IsCheckMessageId>
- x.FrameTime)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.FrameTime>
- x.CacheTimeout)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.CacheTimeout>
+ x.IsCheckMessageId)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.IsCheckMessageId>
+ x.FrameTime)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.FrameTime>
+ x.CacheTimeout)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.CacheTimeout>
- x.Station)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Station>
- x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
- x.Station)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Station>
+ x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
+ u.des)
diff --git a/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusUdp/ModbusUdpDebugDriverPage.razor b/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusUdp/ModbusUdpDebugDriverPage.razor
index 6846ef777..a49a61b88 100644
--- a/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusUdp/ModbusUdpDebugDriverPage.razor
+++ b/framework/ThingsGateway.Plugin/ThingsGateway.Modbus/ModbusUdp/ModbusUdpDebugDriverPage.razor
@@ -25,12 +25,12 @@
- x.IsCheckMessageId)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.IsCheckMessageId>
- x.FrameTime)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.FrameTime>
+ x.IsCheckMessageId)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.IsCheckMessageId>
+ x.FrameTime)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.FrameTime>
- x.Station)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Station>
- x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
- x.Station)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Station>
+ x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
+ u.des)
diff --git a/framework/ThingsGateway.Plugin/ThingsGateway.OPCUA/OPCUAClient/ImportVariable.razor.cs b/framework/ThingsGateway.Plugin/ThingsGateway.OPCUA/OPCUAClient/ImportVariable.razor.cs
index a923c646e..ae37ffcff 100644
--- a/framework/ThingsGateway.Plugin/ThingsGateway.OPCUA/OPCUAClient/ImportVariable.razor.cs
+++ b/framework/ThingsGateway.Plugin/ThingsGateway.OPCUA/OPCUAClient/ImportVariable.razor.cs
@@ -89,7 +89,7 @@ public partial class ImportVariable
var dataTypeId = (Opc.Ua.NodeId)(await PLC.ReadNoteAttributeAsync(a.NodeId.ToString(), Attributes.DataType)).Content.FirstOrDefault().Value;
var dataType = Opc.Ua.TypeInfo.GetSystemType(dataTypeId, PLC.Session.Factory);
- var result = dataType != null ? Enum.TryParse(dataType.Name, out dataTypeEnum) : false;
+ var result = dataType != null && Enum.TryParse(dataType.Name, out dataTypeEnum);
if (!result)
{
dataTypeEnum = DataTypeEnum.Object;
diff --git a/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_1200DebugDriverPage.razor b/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_1200DebugDriverPage.razor
index 1bf00f80f..15d98f81c 100644
--- a/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_1200DebugDriverPage.razor
+++ b/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_1200DebugDriverPage.razor
@@ -25,11 +25,11 @@
- x.Slot)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Slot>
- x.Rack)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Rack>
+ x.Slot)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Slot>
+ x.Rack)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Rack>
- x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
- x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
+ u.des)
diff --git a/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_1500DebugDriverPage.razor b/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_1500DebugDriverPage.razor
index 281cf04d1..4a15ed4dd 100644
--- a/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_1500DebugDriverPage.razor
+++ b/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_1500DebugDriverPage.razor
@@ -25,11 +25,11 @@
- x.Slot)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Slot>
- x.Rack)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Rack>
+ x.Slot)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Slot>
+ x.Rack)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Rack>
- x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
- x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
+ u.des)
diff --git a/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_200DebugDriverPage.razor b/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_200DebugDriverPage.razor
index 42b0ae95e..c1cff3307 100644
--- a/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_200DebugDriverPage.razor
+++ b/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_200DebugDriverPage.razor
@@ -25,11 +25,11 @@
- x.Slot)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Slot>
- x.Rack)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Rack>
+ x.Slot)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Slot>
+ x.Rack)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Rack>
- x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
- x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
+ u.des)
diff --git a/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_200SMARTDebugDriverPage.razor b/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_200SMARTDebugDriverPage.razor
index f31a1c9c2..ed38b07c1 100644
--- a/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_200SMARTDebugDriverPage.razor
+++ b/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_200SMARTDebugDriverPage.razor
@@ -25,11 +25,11 @@
- x.Slot)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Slot>
- x.Rack)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Rack>
+ x.Slot)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Slot>
+ x.Rack)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Rack>
- x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
- x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
+ u.des)
diff --git a/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_300DebugDriverPage.razor b/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_300DebugDriverPage.razor
index 068c81aad..7449ca50a 100644
--- a/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_300DebugDriverPage.razor
+++ b/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_300DebugDriverPage.razor
@@ -25,11 +25,11 @@
- x.Slot)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Slot>
- x.Rack)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Rack>
+ x.Slot)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Slot>
+ x.Rack)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Rack>
- x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
- x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
+ u.des)
diff --git a/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_400DebugDriverPage.razor b/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_400DebugDriverPage.razor
index 2e9343662..e16fd98cb 100644
--- a/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_400DebugDriverPage.razor
+++ b/framework/ThingsGateway.Plugin/ThingsGateway.Siemens/S7_400DebugDriverPage.razor
@@ -25,11 +25,11 @@
- x.Slot)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Slot>
- x.Rack)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Rack>
+ x.Slot)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Slot>
+ x.Rack)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.Rack>
- x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
- x.TimeOut)) Dense Outlined HideDetails="@("auto")" @bind-Value=@_plc.TimeOut>
+ u.des)
diff --git a/framework/ThingsGateway.sln b/framework/ThingsGateway.sln
index 43687ce6c..1eeaa8b01 100644
--- a/framework/ThingsGateway.sln
+++ b/framework/ThingsGateway.sln
@@ -88,6 +88,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Foundataion.Demo", "Foundat
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ModbusDemo", "ThingsGateway.Plugin\Foundataion.Demo\ModbusDemo\ModbusDemo.csproj", "{48D2CA26-E535-413D-8CA9-A4A2AAC6582D}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OPCUAClientDemo", "ThingsGateway.Plugin\Foundataion.Demo\OPCUAClientDemo\OPCUAClientDemo.csproj", "{3F83EF0F-002D-4D06-87A8-739399074DBA}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -186,6 +188,10 @@ Global
{48D2CA26-E535-413D-8CA9-A4A2AAC6582D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{48D2CA26-E535-413D-8CA9-A4A2AAC6582D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{48D2CA26-E535-413D-8CA9-A4A2AAC6582D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3F83EF0F-002D-4D06-87A8-739399074DBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3F83EF0F-002D-4D06-87A8-739399074DBA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3F83EF0F-002D-4D06-87A8-739399074DBA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3F83EF0F-002D-4D06-87A8-739399074DBA}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -220,6 +226,7 @@ Global
{E1C327FA-C442-45DD-9265-9EA26573B61E} = {F2DF3BE7-D497-44B3-9CD6-CDDBC4FBD09C}
{E733E483-4823-4BD6-BC29-669426386A96} = {86119A5F-5717-42FF-8888-F034B4136A1B}
{48D2CA26-E535-413D-8CA9-A4A2AAC6582D} = {E733E483-4823-4BD6-BC29-669426386A96}
+ {3F83EF0F-002D-4D06-87A8-739399074DBA} = {E733E483-4823-4BD6-BC29-669426386A96}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {38B292E0-B3E7-4608-9912-1B057C2A508F}