refactor: 连接时判断setup

This commit is contained in:
2248356998 qq.com
2025-07-30 23:27:35 +08:00
parent 4de7c31ed7
commit a921cb8400
5 changed files with 7 additions and 5 deletions

View File

@@ -3,7 +3,7 @@
<PropertyGroup>
<PluginVersion>10.9.91</PluginVersion>
<ProPluginVersion>10.9.91</ProPluginVersion>
<DefaultVersion>10.9.92</DefaultVersion>
<DefaultVersion>10.9.93</DefaultVersion>
<AuthenticationVersion>2.9.29</AuthenticationVersion>
<SourceGeneratorVersion>10.9.29</SourceGeneratorVersion>
<NET8Version>8.0.18</NET8Version>

View File

@@ -394,6 +394,8 @@ public abstract class DeviceBase : DisposableObject, IDevice
await connectWaitLock.WaitAsync(token).ConfigureAwait(false);
if (AutoConnect && Channel != null && Channel?.Online != true)
{
if (Channel.PluginManager == null)
await Channel.SetupAsync(Channel.Config.Clone()).ConfigureAwait(false);
await Channel.CloseAsync().ConfigureAwait(false);
await Task.Delay(500, token).ConfigureAwait(false);
await Channel.ConnectAsync(Channel.ChannelOptions.ConnectTimeout, token).ConfigureAwait(false);

View File

@@ -37,7 +37,7 @@ public class Dlt645Test
var dltMaster = new Dlt645_2007Master() { Timeout = 10000, Station = "111111111111" };
dltMaster.InitChannel(dltChannel);
await dltChannel.SetupAsync(dltChannel.Config);
await dltChannel.ConnectAsync(dltChannel.ChannelOptions.ConnectTimeout, CancellationToken.None);
await dltMaster.ConnectAsync(CancellationToken.None);
var adapter = dltChannel.ReadOnlyDataHandlingAdapter as SingleStreamDataHandlingAdapter;
var task1 = Task.Run(async () =>

View File

@@ -42,7 +42,7 @@ public class ModbusTest
var modbusMaster = new ModbusMaster() { ModbusType = ModbusTypeEnum.ModbusTcp, Timeout = 10000 };
modbusMaster.InitChannel(modbusChannel);
await modbusChannel.SetupAsync(modbusChannel.Config);
await modbusChannel.ConnectAsync(modbusChannel.ChannelOptions.ConnectTimeout, CancellationToken.None);
await modbusMaster.ConnectAsync(CancellationToken.None);
var adapter = modbusChannel.ReadOnlyDataHandlingAdapter as SingleStreamDataHandlingAdapter;
var task1 = Task.Run(async () =>
@@ -94,7 +94,7 @@ public class ModbusTest
var modbusMaster = new ModbusMaster() { ModbusType = ModbusTypeEnum.ModbusRtu, Timeout = 10000, Station = 1 };
modbusMaster.InitChannel(modbusChannel);
await modbusChannel.SetupAsync(modbusChannel.Config);
await modbusChannel.ConnectAsync(modbusChannel.ChannelOptions.ConnectTimeout, CancellationToken.None);
await modbusMaster.ConnectAsync(CancellationToken.None);
var adapter = modbusChannel.ReadOnlyDataHandlingAdapter as SingleStreamDataHandlingAdapter;
var task1 = Task.Run(async () =>

View File

@@ -41,7 +41,7 @@ public class SiemensS7Test
var siemensS7Master = new SiemensS7Master() { SiemensS7Type = SiemensTypeEnum.S1200, Timeout = 10000 };
siemensS7Master.InitChannel(siemensS7Channel);
await siemensS7Channel.SetupAsync(siemensS7Channel.Config);
await siemensS7Channel.ConnectAsync(siemensS7Channel.ChannelOptions.ConnectTimeout, CancellationToken.None);
await siemensS7Master.ConnectAsync(CancellationToken.None);
var adapter = siemensS7Channel.ReadOnlyDataHandlingAdapter as SingleStreamDataHandlingAdapter;
await siemensS7Master.ConnectAsync(CancellationToken.None);
var task1 = Task.Run(async () =>