diff --git a/csharp/Lib/Protocols/Modbus/Channels/SerialPortChannel.cs b/csharp/Lib/Protocols/Modbus/Channels/SerialPortChannel.cs index ed2b28e6b..3e98db65c 100644 --- a/csharp/Lib/Protocols/Modbus/Channels/SerialPortChannel.cs +++ b/csharp/Lib/Protocols/Modbus/Channels/SerialPortChannel.cs @@ -36,7 +36,23 @@ public class SerialPortChannel : ConnectionChannel return serialPort; }; } - + + // 👇 NEW: this is where we actually flush the serial buffers + protected override void ClearBuffers(SerialPort serialPort) + { + try + { + serialPort.DiscardInBuffer(); + serialPort.DiscardOutBuffer(); + Console.WriteLine(" Buffer in and out discarded."); + } + catch + { + Console.WriteLine(" couldn't clear the Buffer ."); + // ignore if port is closed / disposed + } + } + protected override SerialPort Open() => _Open(); protected override void Close(SerialPort serialPort) => serialPort.Dispose();