using NModbus; namespace ModbusSimulationProtocol.Data; public class SlaveDataStore : ISlaveDataStore { private readonly IPointSource _coilDiscretes; private readonly IPointSource _coilInputs; private readonly IPointSource _holdingRegisters; private readonly IPointSource _inputRegisters; public SlaveDataStore( int coilDiscreteCount, int coilInputCount, int holdingRegisterCount, int inputRegisterCount) { _coilDiscretes = new PointSource(coilDiscreteCount, writeable: true); _coilInputs = new PointSource(coilInputCount, writeable: false); _holdingRegisters = new PointSource(holdingRegisterCount, writeable: true); _inputRegisters = new PointSource(inputRegisterCount, writeable: false); } /// /// Read and Write /// public IPointSource CoilDiscretes => _coilDiscretes; /// /// Read Only /// public IPointSource CoilInputs => _coilInputs; /// /// Read and Write /// public IPointSource HoldingRegisters => _holdingRegisters; /// /// Read Only /// public IPointSource InputRegisters => _inputRegisters; }