Innovenergy_trunk/csharp/lib/Protocols/Modbus/Conversions/ModbusRegisters.cs

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