using System; using Modbus.Device; using static System.Console; namespace ProtosXdigitalDemo { internal class InputReader { private readonly ModbusIpMaster _master; public InputReader(ModbusIpMaster master) { _master = master; } public void ReadAll() { WriteLine("Reading all discrete inputs…"); try { bool[] inputs = _master.ReadInputs(0, ChannelCache.DigitalInputCount); Display(inputs); } catch (Exception ex) { WriteLine($"[Error] Reading inputs failed → {ex.Message}"); PromptKey("Press any key to continue…"); } } private void Display(bool[] inputs) { WriteLine("Discrete Inputs:"); for (int i = 0; i < inputs.Length; i++) { string state = inputs[i] ? "On" : "Off"; WriteLine($" Input #{i + 1}: {state}"); } } private void PromptKey(string prompt) { WriteLine(prompt); ReadKey(intercept: true); } } }