22 lines
708 B
C#
22 lines
708 B
C#
|
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);
|
||
|
}
|
||
|
}
|