using InnovEnergy.Lib.Utils; namespace InnovEnergy.Lib.Protocols.Modbus.Conversions; public partial class ModbusRegisters { public void SetSingle(UInt16 index, Single value) { var bytearray = BitConverter.GetBytes(value).Reverse().ToArray(); var value32 = BitConverter.ToUInt32(bytearray); Registers[index - StartRegister ] = (UInt16)(value32 >> 16); Registers[index - StartRegister + 1] = (UInt16)(value32 & 0xFFFF); } public Single GetSingle(UInt16 index) { var i = index - StartRegister; var byteArray = BitConverter.GetBytes(Registers[i] << 16 | Registers[i + 1]).ToArray(); return BitConverter.ToSingle(byteArray); } }