SlaveDataStore.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using NModbus;
  2. namespace ModbusSimulationProtocol.Data;
  3. public class SlaveDataStore : ISlaveDataStore
  4. {
  5. private readonly IPointSource<bool> _coilDiscretes;
  6. private readonly IPointSource<bool> _coilInputs;
  7. private readonly IPointSource<ushort> _holdingRegisters;
  8. private readonly IPointSource<ushort> _inputRegisters;
  9. public SlaveDataStore()
  10. {
  11. _coilDiscretes = new PointSource<bool>("CoilDiscretes");
  12. _coilInputs = new PointSource<bool>("CoilInputs");
  13. _holdingRegisters = new PointSource<ushort>("HoldingRegisters");
  14. _inputRegisters = new PointSource<ushort>("InputRegisters");
  15. }
  16. /// <summary>
  17. /// Read-Write
  18. /// </summary>
  19. public IPointSource<bool> CoilDiscretes => _coilDiscretes;
  20. /// <summary>
  21. /// Read-Only
  22. /// </summary>
  23. public IPointSource<bool> CoilInputs => _coilInputs;
  24. /// <summary>
  25. /// Read-Write
  26. /// </summary>
  27. public IPointSource<ushort> HoldingRegisters => _holdingRegisters;
  28. /// <summary>
  29. /// Read-Only
  30. /// </summary>
  31. public IPointSource<ushort> InputRegisters => _inputRegisters;
  32. }