2017-12-26 update 2 _sendCount plus lock

This commit is contained in:
parallelbgls
2017-12-26 18:27:15 +08:00
parent d32f54e220
commit 3b61296b4a

View File

@@ -67,6 +67,7 @@ namespace Modbus.Net.Siemens
private readonly ushort _tsapDst; private readonly ushort _tsapDst;
private ushort _sendCount; private ushort _sendCount;
private object _counterLock = new object();
private SiemensType _siemensType; private SiemensType _siemensType;
@@ -236,7 +237,10 @@ namespace Modbus.Net.Siemens
{ {
try try
{ {
_sendCount = (ushort)(_sendCount % 65535 + 1); lock (_counterLock)
{
_sendCount = (ushort)(_sendCount % ushort.MaxValue + 1);
}
var readRequestSiemensInputStruct = new ReadRequestSiemensInputStruct(SlaveAddress, MasterAddress, var readRequestSiemensInputStruct = new ReadRequestSiemensInputStruct(SlaveAddress, MasterAddress,
_sendCount, SiemensTypeCode.Byte, startAddress, (ushort) getByteCount, AddressTranslator); _sendCount, SiemensTypeCode.Byte, startAddress, (ushort) getByteCount, AddressTranslator);
var readRequestSiemensOutputStruct = var readRequestSiemensOutputStruct =
@@ -263,7 +267,10 @@ namespace Modbus.Net.Siemens
{ {
try try
{ {
_sendCount = (ushort)(_sendCount % 65535 + 1); lock (_counterLock)
{
_sendCount = (ushort)(_sendCount % ushort.MaxValue + 1);
}
var writeRequestSiemensInputStruct = new WriteRequestSiemensInputStruct(SlaveAddress, MasterAddress, var writeRequestSiemensInputStruct = new WriteRequestSiemensInputStruct(SlaveAddress, MasterAddress,
_sendCount, startAddress, setContents, AddressTranslator); _sendCount, startAddress, setContents, AddressTranslator);
var writeRequestSiemensOutputStruct = var writeRequestSiemensOutputStruct =