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