From 783c456dc922b9d4ff800d0eebea77177075b7fc Mon Sep 17 00:00:00 2001 From: Serge Camille Date: Mon, 17 Aug 2020 22:09:17 +0200 Subject: [PATCH] Copy ReadBytes data in one go. Instead of using a loop, use Array.Copy to --- S7.Net/PlcAsynchronous.cs | 7 ++----- S7.Net/PlcSynchronous.cs | 6 ++---- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/S7.Net/PlcAsynchronous.cs b/S7.Net/PlcAsynchronous.cs index 35265c8..334cbbe 100644 --- a/S7.Net/PlcAsynchronous.cs +++ b/S7.Net/PlcAsynchronous.cs @@ -388,8 +388,6 @@ namespace S7.Net { var stream = GetStreamIfAvailable(); - byte[] bytes = new byte[count]; - // first create the header int packageSize = 31; var package = new System.IO.MemoryStream(packageSize); @@ -403,9 +401,8 @@ namespace S7.Net var s7data = await COTP.TSDU.ReadAsync(stream); AssertReadResponse(s7data, count); - for (int cnt = 0; cnt < count; cnt++) - bytes[cnt] = s7data[cnt + 18]; - + var bytes = new byte[count]; + Array.Copy(s7data, 18, bytes, 0, count); return bytes; } diff --git a/S7.Net/PlcSynchronous.cs b/S7.Net/PlcSynchronous.cs index f73bd6f..34fa143 100644 --- a/S7.Net/PlcSynchronous.cs +++ b/S7.Net/PlcSynchronous.cs @@ -344,7 +344,6 @@ namespace S7.Net private byte[] ReadBytesWithSingleRequest(DataType dataType, int db, int startByteAdr, int count) { var stream = GetStreamIfAvailable(); - byte[] bytes = new byte[count]; try { // first create the header @@ -360,9 +359,8 @@ namespace S7.Net var s7data = COTP.TSDU.Read(stream); AssertReadResponse(s7data, count); - for (int cnt = 0; cnt < count; cnt++) - bytes[cnt] = s7data[cnt + 18]; - + var bytes = new byte[count]; + Array.Copy(s7data, 18, bytes, 0, count); return bytes; } catch (Exception exc)