diff --git a/AMWD.Protocols.Modbus.Serial/ModbusRtuServer.cs b/AMWD.Protocols.Modbus.Serial/ModbusRtuServer.cs index 5cb3f43..a04859f 100644 --- a/AMWD.Protocols.Modbus.Serial/ModbusRtuServer.cs +++ b/AMWD.Protocols.Modbus.Serial/ModbusRtuServer.cs @@ -14,7 +14,7 @@ using AMWD.Protocols.Modbus.Common.Protocols; namespace AMWD.Protocols.Modbus.Serial { /// - /// A basic implementation of a Modbus serial line server. + /// A basic implementation of a Modbus serial line RTU server. /// [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] public class ModbusRtuServer : IDisposable @@ -208,6 +208,9 @@ namespace AMWD.Protocols.Modbus.Serial _deviceListLock.Dispose(); _devices.Clear(); + + _serialPort.Dispose(); + _stopCts?.Dispose(); } private void Assertions() diff --git a/AMWD.Protocols.Modbus.Serial/README.md b/AMWD.Protocols.Modbus.Serial/README.md index 232e1fd..ab600b4 100644 --- a/AMWD.Protocols.Modbus.Serial/README.md +++ b/AMWD.Protocols.Modbus.Serial/README.md @@ -22,6 +22,19 @@ float voltage = registers.GetSingle(); Console.WriteLine($"The voltage of device #{unitId} between L1 and N is: {voltage:N2}V"); ``` +If you want to use the `ASCII` protocol instead, you can do this on initialization: + +```csharp +// [...] + +using var client = new ModbusSerialClient(serialPort) +{ + Protocol = new AsciiProtocol(); +}; + +// [...] +``` + ## Sources diff --git a/AMWD.Protocols.Modbus.Tcp/ModbusTcpServer.cs b/AMWD.Protocols.Modbus.Tcp/ModbusTcpServer.cs index 4b59329..134412a 100644 --- a/AMWD.Protocols.Modbus.Tcp/ModbusTcpServer.cs +++ b/AMWD.Protocols.Modbus.Tcp/ModbusTcpServer.cs @@ -193,6 +193,8 @@ namespace AMWD.Protocols.Modbus.Tcp _clients.Clear(); _devices.Clear(); + + _stopCts?.Dispose(); } private void Assertions() diff --git a/AMWD.Protocols.Modbus.Tcp/README.md b/AMWD.Protocols.Modbus.Tcp/README.md index 9d2cdec..c459fe3 100644 --- a/AMWD.Protocols.Modbus.Tcp/README.md +++ b/AMWD.Protocols.Modbus.Tcp/README.md @@ -23,6 +23,18 @@ float voltage = registers.GetSingle(); Console.WriteLine($"The voltage of device #{unitId} between L1 and N is: {voltage:N2}V"); ``` +If you want to use the `RTU over TCP` protocol instead, you can do this on initialization: + +```csharp +// [...] + +using var client = new ModbusTcpClient(host, port) +{ + Protocol = new RtuOverTcpProtocol(); +}; + +// [...] +``` ## Sources