From 3b61296b4a04078a9dc1d11aed21a14982fac73a Mon Sep 17 00:00:00 2001 From: parallelbgls Date: Tue, 26 Dec 2017 18:27:15 +0800 Subject: [PATCH] 2017-12-26 update 2 _sendCount plus lock --- Modbus.Net/Modbus.Net.Siemens/SiemensUtility.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Modbus.Net/Modbus.Net.Siemens/SiemensUtility.cs b/Modbus.Net/Modbus.Net.Siemens/SiemensUtility.cs index b6a75a4..e218af2 100644 --- a/Modbus.Net/Modbus.Net.Siemens/SiemensUtility.cs +++ b/Modbus.Net/Modbus.Net.Siemens/SiemensUtility.cs @@ -67,6 +67,7 @@ namespace Modbus.Net.Siemens private readonly ushort _tsapDst; private ushort _sendCount; + private object _counterLock = new object(); private SiemensType _siemensType; @@ -236,7 +237,10 @@ namespace Modbus.Net.Siemens { try { - _sendCount = (ushort)(_sendCount % 65535 + 1); + lock (_counterLock) + { + _sendCount = (ushort)(_sendCount % ushort.MaxValue + 1); + } var readRequestSiemensInputStruct = new ReadRequestSiemensInputStruct(SlaveAddress, MasterAddress, _sendCount, SiemensTypeCode.Byte, startAddress, (ushort) getByteCount, AddressTranslator); var readRequestSiemensOutputStruct = @@ -263,7 +267,10 @@ namespace Modbus.Net.Siemens { try { - _sendCount = (ushort)(_sendCount % 65535 + 1); + lock (_counterLock) + { + _sendCount = (ushort)(_sendCount % ushort.MaxValue + 1); + } var writeRequestSiemensInputStruct = new WriteRequestSiemensInputStruct(SlaveAddress, MasterAddress, _sendCount, startAddress, setContents, AddressTranslator); var writeRequestSiemensOutputStruct =