Innovenergy_trunk/csharp/lib/Protocols/Modbus/Conversions/ModbusRegisters.Bit.cs

29 lines
815 B
C#

using System.Collections;
namespace InnovEnergy.Lib.Protocols.Modbus.Conversions;
public partial class ModbusRegisters
{
public Boolean GetBit(UInt16 index, UInt16 bitIndex)
{
var offset = index - StartRegister;
var byteArray = BitConverter.GetBytes(Registers[offset]).Reverse().ToArray();
var bitArray = new BitArray(byteArray);
return bitArray.Get(bitIndex);
}
public void SetBit(UInt16 index, UInt16 bitIndex, Boolean value)
{
var offset = index - StartRegister;
var byteArray = BitConverter.GetBytes(Registers[offset]).Reverse().ToArray();
var bitArray = new BitArray(byteArray);
bitArray.Set(bitIndex, value);
bitArray.CopyTo(byteArray, 0);
SetUInt16(index, BitConverter.ToUInt16(byteArray));
}
}