29 lines
820 B
C#
29 lines
820 B
C#
using System.Collections;
|
|
|
|
namespace InnovEnergy.Lib.Protocols.Modbus.Conversions;
|
|
|
|
public partial class ModbusRegisters : IReadOnlyList<UInt16>
|
|
{
|
|
public UInt16 StartRegister { get; }
|
|
private UInt16[] Registers { get; }
|
|
|
|
public ModbusRegisters(UInt16 startRegister, Int32 nRegisters)
|
|
{
|
|
StartRegister = startRegister;
|
|
Registers = new UInt16[nRegisters];
|
|
}
|
|
|
|
public ModbusRegisters(UInt16 startRegister, UInt16[] registers)
|
|
{
|
|
StartRegister = startRegister;
|
|
Registers = registers;
|
|
}
|
|
|
|
public UInt16 this[Int32 i] => GetUInt16((UInt16)i);
|
|
|
|
|
|
public IEnumerator<UInt16> GetEnumerator() => Registers.AsEnumerable().GetEnumerator();
|
|
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
|
|
|
|
public Int32 Count => Registers.Length;
|
|
} |