diff --git a/Modbus.Net/Modbus.Net/ValueHelper.cs b/Modbus.Net/Modbus.Net/ValueHelper.cs
index c708a28..50da935 100644
--- a/Modbus.Net/Modbus.Net/ValueHelper.cs
+++ b/Modbus.Net/Modbus.Net/ValueHelper.cs
@@ -399,7 +399,7 @@ namespace Modbus.Net
var temp = data[pos];
for (var i = 0; i < 8; i++)
{
- t[7 - i] = temp % 2 > 0;
+ t[i] = temp%2 > 0;
temp /= 2;
}
pos += 1;
@@ -442,17 +442,7 @@ namespace Modbus.Net
///
public virtual bool GetBit(byte[] number, ref int pos, ref int subPos)
{
- if (subPos < 0 && subPos > 7) throw new IndexOutOfRangeException();
- var tspos = subPos;
- var tpos = pos;
- var bit = GetBit(number[pos], ref tpos, ref tspos);
- subPos += 1;
- if (subPos > 7)
- {
- pos++;
- subPos = 0;
- }
- return bit;
+ return GetBit(number[pos], ref pos, ref subPos);
}
///
@@ -837,14 +827,14 @@ namespace Modbus.Net
var creation = 0;
if (setBit)
{
- for (var i = 0; i <= 7; i++)
+ for (var i = 7; i >= 0; i--)
{
creation *= 2;
if (i == subPos) creation++;
}
return (byte) (number | creation);
}
- for (var i = 0; i <= 7; i++)
+ for (var i = 7; i >= 0; i--)
{
creation *= 2;
if (i != subPos) creation++;
@@ -1014,23 +1004,6 @@ namespace Modbus.Net
return t;
}
- public override bool GetBit(byte[] number, ref int pos, ref int subPos)
- {
- return GetBit(number[pos], ref pos, ref subPos);
- }
-
- public override bool[] GetBits(byte[] data, ref int pos)
- {
- var t = base.GetBits(data, ref pos);
- Array.Reverse(t);
- return t;
- }
-
- public override bool SetBit(byte[] number, int pos, int subPos, bool setBit)
- {
- return base.SetBit(number, pos, 7 - subPos, setBit);
- }
-
private byte[] Reverse(byte[] data)
{
Array.Reverse(data);