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