diff --git a/AMWD.Protocols.Modbus.Proxy/ModbusTcpProxy.cs b/AMWD.Protocols.Modbus.Proxy/ModbusTcpProxy.cs index 92d271e..40987e0 100644 --- a/AMWD.Protocols.Modbus.Proxy/ModbusTcpProxy.cs +++ b/AMWD.Protocols.Modbus.Proxy/ModbusTcpProxy.cs @@ -22,6 +22,8 @@ namespace AMWD.Protocols.Modbus.Proxy private bool _isDisposed; + private TimeSpan _readWriteTimeout = TimeSpan.FromSeconds(100); + private TcpListener _listener; private CancellationTokenSource _stopCts; private Task _clientConnectTask = Task.CompletedTask; @@ -92,8 +94,19 @@ namespace AMWD.Protocols.Modbus.Proxy /// /// Gets or sets the read/write timeout for the incoming connections (not the !). + /// Default: 100 seconds. /// - public TimeSpan ReadWriteTimeout { get; set; } + public TimeSpan ReadWriteTimeout + { + get => _readWriteTimeout; + set + { + if (value != Timeout.InfiniteTimeSpan && value < TimeSpan.Zero) + throw new ArgumentOutOfRangeException(nameof(value)); + + _readWriteTimeout = value; + } + } #endregion Properties diff --git a/AMWD.Protocols.Modbus.Tests/AMWD.Protocols.Modbus.Tests.csproj b/AMWD.Protocols.Modbus.Tests/AMWD.Protocols.Modbus.Tests.csproj index a62e5d1..fdc9b15 100644 --- a/AMWD.Protocols.Modbus.Tests/AMWD.Protocols.Modbus.Tests.csproj +++ b/AMWD.Protocols.Modbus.Tests/AMWD.Protocols.Modbus.Tests.csproj @@ -20,10 +20,10 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + - - + + diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a30469..eeac134 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -_no changes_ +### Changed + +- The `ModbusTcpProxy.ReadWriteTimeout` has a default of 100 seconds (same default as a `HttpClient` has). ## [v0.3.2] (2024-09-04)