2017-02-24 update 1 emergency ValueHelper Fix.

This commit is contained in:
parallelbgls
2017-02-24 14:48:31 +08:00
parent 3e29a95d83
commit e22e693a0f

View File

@@ -399,7 +399,7 @@ namespace Modbus.Net
var temp = data[pos]; var temp = data[pos];
for (var i = 0; i < 8; i++) for (var i = 0; i < 8; i++)
{ {
t[7 - i] = temp % 2 > 0; t[i] = temp%2 > 0;
temp /= 2; temp /= 2;
} }
pos += 1; pos += 1;
@@ -442,17 +442,7 @@ namespace Modbus.Net
/// <returns></returns> /// <returns></returns>
public virtual bool GetBit(byte[] number, ref int pos, ref int subPos) public virtual bool GetBit(byte[] number, ref int pos, ref int subPos)
{ {
if (subPos < 0 && subPos > 7) throw new IndexOutOfRangeException(); return GetBit(number[pos], ref pos, ref subPos);
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;
} }
/// <summary> /// <summary>
@@ -837,14 +827,14 @@ namespace Modbus.Net
var creation = 0; var creation = 0;
if (setBit) if (setBit)
{ {
for (var i = 0; i <= 7; i++) for (var i = 7; i >= 0; i--)
{ {
creation *= 2; creation *= 2;
if (i == subPos) creation++; if (i == subPos) creation++;
} }
return (byte) (number | creation); return (byte) (number | creation);
} }
for (var i = 0; i <= 7; i++) for (var i = 7; i >= 0; i--)
{ {
creation *= 2; creation *= 2;
if (i != subPos) creation++; if (i != subPos) creation++;
@@ -1014,23 +1004,6 @@ namespace Modbus.Net
return t; 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) private byte[] Reverse(byte[] data)
{ {
Array.Reverse(data); Array.Reverse(data);