diff --git a/AMWD.Protocols.Modbus.Common/Contracts/ModbusClientBase.cs b/AMWD.Protocols.Modbus.Common/Contracts/ModbusClientBase.cs
index 7274624..d00c99b 100644
--- a/AMWD.Protocols.Modbus.Common/Contracts/ModbusClientBase.cs
+++ b/AMWD.Protocols.Modbus.Common/Contracts/ModbusClientBase.cs
@@ -52,7 +52,7 @@ namespace AMWD.Protocols.Modbus.Common.Contracts
///
/// The default protocol used by the client should be initialized in the constructor.
///
- public abstract IModbusProtocol Protocol { get; set; }
+ public virtual IModbusProtocol Protocol { get; set; }
///
/// Reads multiple s.
diff --git a/AMWD.Protocols.Modbus.Serial/ModbusSerialClient.cs b/AMWD.Protocols.Modbus.Serial/ModbusSerialClient.cs
index 7a095bb..506e3ad 100644
--- a/AMWD.Protocols.Modbus.Serial/ModbusSerialClient.cs
+++ b/AMWD.Protocols.Modbus.Serial/ModbusSerialClient.cs
@@ -43,9 +43,6 @@ namespace AMWD.Protocols.Modbus.Serial
///
public static string[] AvailablePortNames => SerialPort.GetPortNames();
- ///
- public override IModbusProtocol Protocol { get; set; }
-
///
public TimeSpan IdleTimeout
{
diff --git a/AMWD.Protocols.Modbus.Tcp/ModbusTcpClient.cs b/AMWD.Protocols.Modbus.Tcp/ModbusTcpClient.cs
index d4c2725..a73ad6f 100644
--- a/AMWD.Protocols.Modbus.Tcp/ModbusTcpClient.cs
+++ b/AMWD.Protocols.Modbus.Tcp/ModbusTcpClient.cs
@@ -40,9 +40,6 @@ namespace AMWD.Protocols.Modbus.Tcp
Protocol = new TcpProtocol();
}
- ///
- public override IModbusProtocol Protocol { get; set; }
-
///
public TimeSpan IdleTimeout
{
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fd75da4..4f36987 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- Renamed `ModbusSerialServer` to `ModbusRtuServer` so clearify the protocol, that is used.
+- Made `Protocol` property of `ModbusClientBase` non-abstract.
## [v0.2.0] (2024-04-02)