23 lines
576 B
C#
23 lines
576 B
C#
|
using InnovEnergy.Lib.Utils;
|
||
|
|
||
|
namespace InnovEnergy.Lib.Protocols.Modbus.Conversions;
|
||
|
|
||
|
public partial class ModbusRegisters
|
||
|
{
|
||
|
|
||
|
// TODO: SetBytes
|
||
|
|
||
|
public Byte[] GetBytes(UInt16 index, UInt16 nBytes)
|
||
|
{
|
||
|
var nRegisters = (UInt16)Math.Ceiling(nBytes / 2.0);
|
||
|
|
||
|
return Enumerable
|
||
|
.Range(StartRegister + index, nRegisters)
|
||
|
.Select(i => (UInt16)i)
|
||
|
.Select(GetUInt16)
|
||
|
.SelectMany(r => BitConverter.GetBytes(r).Reverse()) // Big Endian
|
||
|
.Take(nBytes)
|
||
|
.ToArray(nBytes);
|
||
|
}
|
||
|
|
||
|
}
|