47 lines
1.2 KiB
C#
47 lines
1.2 KiB
C#
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);
|
|
}
|
|
}
|
|
} |