修复了串口Modbus连接的问题

This commit is contained in:
王海东 2021-12-18 19:13:41 +08:00
parent ae75d6005c
commit 61f6e78834
6 changed files with 24 additions and 4 deletions

Binary file not shown.

View File

@ -20,6 +20,7 @@
<PackageReference Include="MQTTnet.AspNetCore" Version="3.1.1" /> <PackageReference Include="MQTTnet.AspNetCore" Version="3.1.1" />
<PackageReference Include="MQTTnet.Extensions.ManagedClient" Version="3.1.1" /> <PackageReference Include="MQTTnet.Extensions.ManagedClient" Version="3.1.1" />
<PackageReference Include="MQTTnet.Extensions.Rpc" Version="3.1.1" /> <PackageReference Include="MQTTnet.Extensions.Rpc" Version="3.1.1" />
<PackageReference Include="System.IO.Ports" Version="6.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -7,7 +7,11 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" /> <PackageReference Include="System.IO.Ports" Version="6.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\PluginInterface\PluginInterface.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -74,7 +74,22 @@ namespace DriverModbusMaster
{ {
get get
{ {
return clientTcp != null && master != null && clientTcp.Connected; switch (Master_TYPE)
{
case Master_TYPE.Tcp:
case Master_TYPE.RtuOnTcp:
case Master_TYPE.AsciiOnTcp:
return clientTcp != null && master != null && clientTcp.Connected;
case Master_TYPE.Udp:
case Master_TYPE.RtuOnUdp:
case Master_TYPE.AsciiOnUdp:
return clientUdp != null && master != null && clientUdp.Client.Connected ;
case Master_TYPE.Rtu:
case Master_TYPE.Ascii:
return port != null && master != null && port.IsOpen;
default:
return false;
}
} }
} }
@ -124,7 +139,7 @@ namespace DriverModbusMaster
break; break;
} }
} }
catch (Exception) catch (Exception ex)
{ {
return false; return false;
} }
@ -225,7 +240,7 @@ namespace DriverModbusMaster
private DriverReturnValueModel ReadRegistersBuffers(byte FunCode, DriverAddressIoArgModel ioarg) private DriverReturnValueModel ReadRegistersBuffers(byte FunCode, DriverAddressIoArgModel ioarg)
{ {
DriverReturnValueModel ret = new() { StatusType = VaribaleStatusTypeEnum.Good }; DriverReturnValueModel ret = new() { StatusType = VaribaleStatusTypeEnum.Good };
if (!clientTcp.Connected) if (!IsConnected)
ret.StatusType = VaribaleStatusTypeEnum.Bad; ret.StatusType = VaribaleStatusTypeEnum.Bad;
else else
{ {