2023-02-16 12:57:06 +00:00
|
|
|
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);
|
|
|
|
|
2023-03-07 10:20:32 +00:00
|
|
|
Registers[index - StartRegister ] = (UInt16)(value32 >> 16);
|
2023-02-16 12:57:06 +00:00
|
|
|
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);
|
|
|
|
}
|
|
|
|
}
|