Add .ToString for Batch, helps debugging
This commit is contained in:
parent
49d7237c79
commit
9b997b353f
|
@ -8,7 +8,10 @@ namespace InnovEnergy.Lib.Protocols.Modbus.Reflection;
|
|||
#pragma warning disable CS8509
|
||||
#pragma warning disable CS8524
|
||||
|
||||
internal record Batch<R>(Action<R> Read, Action<R> Write);
|
||||
internal record Batch<R>(Action<R> Read, Action<R> Write, String DebugString)
|
||||
{
|
||||
public override String ToString() => DebugString;
|
||||
}
|
||||
|
||||
public static class Batches
|
||||
{
|
||||
|
@ -60,10 +63,16 @@ public static class Batches
|
|||
var count = (UInt16)(endAddress - startAddress);
|
||||
var kind = members[0].Kind;
|
||||
var isWritable = kind is ModbusKind.HoldingRegister or ModbusKind.Coil;
|
||||
|
||||
return new Batch<R>(Read(), Write());
|
||||
var debugString = $"{kind}: {startAddress}" + (endAddress - 1 == startAddress ? "" : $"-{endAddress - 1}");
|
||||
|
||||
Action<R> Read()
|
||||
|
||||
// var modPoll = $"{kind}: {startAddress}-{endAddress}"; // TODO
|
||||
var read = MakeRead();
|
||||
var write = MakeWrite();
|
||||
|
||||
return new Batch<R>(read, write, debugString);
|
||||
|
||||
Action<R> MakeRead()
|
||||
{
|
||||
Func<MbData> readModbus = kind switch
|
||||
{
|
||||
|
@ -85,7 +94,7 @@ public static class Batches
|
|||
};
|
||||
}
|
||||
|
||||
Action<R> Write()
|
||||
Action<R> MakeWrite()
|
||||
{
|
||||
if (!isWritable)
|
||||
return _ => { }; // nop
|
||||
|
|
Loading…
Reference in New Issue