Skip to content

Commit f290ddd

Browse files
committed
Distribute spinwait to local funciton
1 parent 51bce7d commit f290ddd

File tree

1 file changed

+26
-12
lines changed

1 file changed

+26
-12
lines changed

EasyModbus/ModbusClient.cs

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ public enum RegisterOrder { LowHigh = 0, HighLow = 1 };
7575

7676
NetworkStream stream;
7777

78-
private SpinWait sw_delay = new SpinWait();
7978
/// <summary>
8079
/// Constructor which determines the Master ip-address and the Master Port.
8180
/// </summary>
@@ -943,11 +942,11 @@ public bool[] ReadDiscreteInputs(int startingAddress, int quantity)
943942
DateTime dateTimeSend = DateTime.Now;
944943
byte receivedUnitIdentifier = 0xFF;
945944

946-
945+
SpinWait sw_delay = new SpinWait();
947946
while (receivedUnitIdentifier != this.unitIdentifier & !((DateTime.Now.Ticks - dateTimeSend.Ticks) > TimeSpan.TicksPerMillisecond * this.connectTimeout))
948947
{
949948
while (dataReceived == false & !((DateTime.Now.Ticks - dateTimeSend.Ticks) > TimeSpan.TicksPerMillisecond * this.connectTimeout))
950-
this.sw_delay.SpinOnce();
949+
sw_delay.SpinOnce();
951950

952951
data = new byte[2100];
953952
Array.Copy(readBuffer, 0, data, 6, readBuffer.Length);
@@ -1138,10 +1137,12 @@ public bool[] ReadCoils(int startingAddress, int quantity)
11381137
readBuffer = new byte[256];
11391138
DateTime dateTimeSend = DateTime.Now;
11401139
byte receivedUnitIdentifier = 0xFF;
1140+
1141+
SpinWait sw_delay = new SpinWait();
11411142
while (receivedUnitIdentifier != this.unitIdentifier & !((DateTime.Now.Ticks - dateTimeSend.Ticks) > TimeSpan.TicksPerMillisecond * this.connectTimeout))
11421143
{
11431144
while (dataReceived == false & !((DateTime.Now.Ticks - dateTimeSend.Ticks) > TimeSpan.TicksPerMillisecond * this.connectTimeout))
1144-
this.sw_delay.SpinOnce();
1145+
sw_delay.SpinOnce();
11451146

11461147
data = new byte[2100];
11471148

@@ -1330,10 +1331,12 @@ public int[] ReadHoldingRegisters(int startingAddress, int quantity)
13301331

13311332
DateTime dateTimeSend = DateTime.Now;
13321333
byte receivedUnitIdentifier = 0xFF;
1334+
1335+
SpinWait sw_delay = new SpinWait();
13331336
while (receivedUnitIdentifier != this.unitIdentifier & !((DateTime.Now.Ticks - dateTimeSend.Ticks) > TimeSpan.TicksPerMillisecond * this.connectTimeout))
13341337
{
13351338
while (dataReceived == false & !((DateTime.Now.Ticks - dateTimeSend.Ticks) > TimeSpan.TicksPerMillisecond * this.connectTimeout))
1336-
this.sw_delay.SpinOnce();
1339+
sw_delay.SpinOnce();
13371340

13381341
data = new byte[2100];
13391342
Array.Copy(readBuffer, 0, data, 6, readBuffer.Length);
@@ -1533,11 +1536,12 @@ public int[] ReadInputRegisters(int startingAddress, int quantity)
15331536
readBuffer = new byte[256];
15341537
DateTime dateTimeSend = DateTime.Now;
15351538
byte receivedUnitIdentifier = 0xFF;
1536-
1539+
1540+
SpinWait sw_delay = new SpinWait();
15371541
while (receivedUnitIdentifier != this.unitIdentifier & !((DateTime.Now.Ticks - dateTimeSend.Ticks) > TimeSpan.TicksPerMillisecond * this.connectTimeout))
15381542
{
15391543
while (dataReceived == false & !((DateTime.Now.Ticks - dateTimeSend.Ticks) > TimeSpan.TicksPerMillisecond * this.connectTimeout))
1540-
this.sw_delay.SpinOnce();
1544+
sw_delay.SpinOnce();
15411545

15421546
data = new byte[2100];
15431547
Array.Copy(readBuffer, 0, data, 6, readBuffer.Length);
@@ -1735,10 +1739,12 @@ public void WriteSingleCoil(int startingAddress, bool value)
17351739
readBuffer = new byte[256];
17361740
DateTime dateTimeSend = DateTime.Now;
17371741
byte receivedUnitIdentifier = 0xFF;
1742+
1743+
SpinWait sw_delay = new SpinWait();
17381744
while (receivedUnitIdentifier != this.unitIdentifier & !((DateTime.Now.Ticks - dateTimeSend.Ticks) > TimeSpan.TicksPerMillisecond * this.connectTimeout))
17391745
{
17401746
while (dataReceived == false & !((DateTime.Now.Ticks - dateTimeSend.Ticks) > TimeSpan.TicksPerMillisecond * this.connectTimeout))
1741-
this.sw_delay.SpinOnce();
1747+
sw_delay.SpinOnce();
17421748

17431749
data = new byte[2100];
17441750
Array.Copy(readBuffer, 0, data, 6, readBuffer.Length);
@@ -1915,10 +1921,12 @@ public void WriteSingleRegister(int startingAddress, int value)
19151921
readBuffer = new byte[256];
19161922
DateTime dateTimeSend = DateTime.Now;
19171923
byte receivedUnitIdentifier = 0xFF;
1924+
1925+
SpinWait sw_delay = new SpinWait();
19181926
while (receivedUnitIdentifier != this.unitIdentifier & !((DateTime.Now.Ticks - dateTimeSend.Ticks) > TimeSpan.TicksPerMillisecond * this.connectTimeout))
19191927
{
19201928
while (dataReceived == false & !((DateTime.Now.Ticks - dateTimeSend.Ticks) > TimeSpan.TicksPerMillisecond * this.connectTimeout))
1921-
this.sw_delay.SpinOnce();
1929+
sw_delay.SpinOnce();
19221930

19231931
data = new byte[2100];
19241932
Array.Copy(readBuffer, 0, data, 6, readBuffer.Length);
@@ -2112,10 +2120,12 @@ public void WriteMultipleCoils(int startingAddress, bool[] values)
21122120
readBuffer = new byte[256];
21132121
DateTime dateTimeSend = DateTime.Now;
21142122
byte receivedUnitIdentifier = 0xFF;
2123+
2124+
SpinWait sw_delay = new SpinWait();
21152125
while (receivedUnitIdentifier != this.unitIdentifier & !((DateTime.Now.Ticks - dateTimeSend.Ticks) > TimeSpan.TicksPerMillisecond * this.connectTimeout))
21162126
{
21172127
while (dataReceived == false & !((DateTime.Now.Ticks - dateTimeSend.Ticks) > TimeSpan.TicksPerMillisecond * this.connectTimeout))
2118-
this.sw_delay.SpinOnce();
2128+
sw_delay.SpinOnce();
21192129

21202130
data = new byte[2100];
21212131
Array.Copy(readBuffer, 0, data, 6, readBuffer.Length);
@@ -2298,10 +2308,12 @@ public void WriteMultipleRegisters(int startingAddress, int[] values)
22982308
readBuffer = new byte[256];
22992309
DateTime dateTimeSend = DateTime.Now;
23002310
byte receivedUnitIdentifier = 0xFF;
2311+
2312+
SpinWait sw_delay = new SpinWait();
23012313
while (receivedUnitIdentifier != this.unitIdentifier & !((DateTime.Now.Ticks - dateTimeSend.Ticks) > TimeSpan.TicksPerMillisecond * this.connectTimeout))
23022314
{
23032315
while (dataReceived == false & !((DateTime.Now.Ticks - dateTimeSend.Ticks) > TimeSpan.TicksPerMillisecond * this.connectTimeout))
2304-
this.sw_delay.SpinOnce();
2316+
sw_delay.SpinOnce();
23052317

23062318
data = new byte[2100];
23072319
Array.Copy(readBuffer, 0, data, 6, readBuffer.Length);
@@ -2502,10 +2514,12 @@ public int[] ReadWriteMultipleRegisters(int startingAddressRead, int quantityRea
25022514
readBuffer = new byte[256];
25032515
DateTime dateTimeSend = DateTime.Now;
25042516
byte receivedUnitIdentifier = 0xFF;
2517+
2518+
SpinWait sw_delay = new SpinWait();
25052519
while (receivedUnitIdentifier != this.unitIdentifier & !((DateTime.Now.Ticks - dateTimeSend.Ticks) > TimeSpan.TicksPerMillisecond * this.connectTimeout))
25062520
{
25072521
while (dataReceived == false & !((DateTime.Now.Ticks - dateTimeSend.Ticks) > TimeSpan.TicksPerMillisecond * this.connectTimeout))
2508-
this.sw_delay.SpinOnce();
2522+
sw_delay.SpinOnce();
25092523

25102524
data = new byte[2100];
25112525
Array.Copy(readBuffer, 0, data, 6, readBuffer.Length);

0 commit comments

Comments
 (0)