using System.Collections; namespace InnovEnergy.Lib.Protocols.Modbus.Conversions; public partial class ModbusRegisters : IReadOnlyList { 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 GetEnumerator() => Registers.AsEnumerable().GetEnumerator(); IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); public Int32 Count => Registers.Length; }