diff --git a/SCADA/Program/ModbusDriver/ModbusRTUDriver.cs b/SCADA/Program/ModbusDriver/ModbusRTUDriver.cs index be6ca2a..4c856ba 100644 --- a/SCADA/Program/ModbusDriver/ModbusRTUDriver.cs +++ b/SCADA/Program/ModbusDriver/ModbusRTUDriver.cs @@ -328,11 +328,11 @@ namespace ModbusDriver int numBytesRead = 0; lock (_async) { - while (numBytesRead != size) - numBytesRead += _serialPort.Read(frameBytes, numBytesRead, size - numBytesRead); - if (frameBytes[0] == (byte)_id && Utility.CheckSumCRC(frameBytes)) + while (numBytesRead != frameBytes.Length) + numBytesRead += _serialPort.Read(frameBytes, numBytesRead, frameBytes.Length - numBytesRead); + if (frameBytes[0] == _slaveId && Utility.CheckSumCRC(frameBytes)) { - Array.Copy(frameBytes, 3, data, 0, size); + Array.Copy(frameBytes, 3, data, 0, data.Length); return data; } } diff --git a/SCADA/dll/ModbusDriver.dll b/SCADA/dll/ModbusDriver.dll index 4aa5187..0841e63 100644 Binary files a/SCADA/dll/ModbusDriver.dll and b/SCADA/dll/ModbusDriver.dll differ