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)); } }