diff --git a/S7.Net/Types/Class.cs b/S7.Net/Types/Class.cs index 0dd78fa..225f3f8 100644 --- a/S7.Net/Types/Class.cs +++ b/S7.Net/Types/Class.cs @@ -153,11 +153,9 @@ namespace S7.Net.Types numBytes = Math.Ceiling(numBytes); if ((numBytes / 2 - Math.Floor(numBytes / 2.0)) > 0) numBytes++; - // hier auswerten - uint sourceUInt = DWord.FromBytes(bytes[(int)numBytes + 3], - bytes[(int)numBytes + 2], - bytes[(int)numBytes + 1], - bytes[(int)numBytes + 0]); + var wordBuffer = new byte[4]; + Array.Copy(bytes, (int)numBytes, wordBuffer, 0, wordBuffer.Length); + uint sourceUInt = DWord.FromByteArray(wordBuffer); value = sourceUInt.ConvertToInt(); numBytes += 4; break; @@ -165,12 +163,9 @@ namespace S7.Net.Types numBytes = Math.Ceiling(numBytes); if ((numBytes / 2 - Math.Floor(numBytes / 2.0)) > 0) numBytes++; - // hier auswerten - value = DWord.FromBytes( - bytes[(int)numBytes], - bytes[(int)numBytes + 1], - bytes[(int)numBytes + 2], - bytes[(int)numBytes + 3]); + var wordBuffer2 = new byte[4]; + Array.Copy(bytes, (int)numBytes, wordBuffer2, 0, wordBuffer2.Length); + value = DWord.FromByteArray(wordBuffer2); numBytes += 4; break; case "Single":