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