using System;
namespace AMWD.Protocols.Modbus.Common
{
///
/// Represents a holding register.
///
public class HoldingRegister : ModbusObject
{
///
public override ModbusObjectType Type => ModbusObjectType.HoldingRegister;
///
/// Gets or sets the value of the holding register.
///
public ushort Value
{
get
{
byte[] blob = [HighByte, LowByte];
blob.SwapBigEndian();
return BitConverter.ToUInt16(blob, 0);
}
set
{
byte[] blob = BitConverter.GetBytes(value);
blob.SwapBigEndian();
HighByte = blob[0];
LowByte = blob[1];
}
}
///
public override string ToString()
=> $"Holding Register #{Address} | {Value} | HI: {HighByte:X2}, LO: {LowByte:X2}";
}
}