Add .ToString for Batch, helps debugging

This commit is contained in:
ig 2023-06-20 09:51:13 +02:00
parent 49d7237c79
commit 9b997b353f
1 changed files with 14 additions and 5 deletions

View File

@ -8,7 +8,10 @@ namespace InnovEnergy.Lib.Protocols.Modbus.Reflection;
#pragma warning disable CS8509 #pragma warning disable CS8509
#pragma warning disable CS8524 #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 public static class Batches
{ {
@ -60,10 +63,16 @@ public static class Batches
var count = (UInt16)(endAddress - startAddress); var count = (UInt16)(endAddress - startAddress);
var kind = members[0].Kind; var kind = members[0].Kind;
var isWritable = kind is ModbusKind.HoldingRegister or ModbusKind.Coil; var isWritable = kind is ModbusKind.HoldingRegister or ModbusKind.Coil;
var debugString = $"{kind}: {startAddress}" + (endAddress - 1 == startAddress ? "" : $"-{endAddress - 1}");
return new Batch<R>(Read(), Write());
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 Func<MbData> readModbus = kind switch
{ {
@ -85,7 +94,7 @@ public static class Batches
}; };
} }
Action<R> Write() Action<R> MakeWrite()
{ {
if (!isWritable) if (!isWritable)
return _ => { }; // nop return _ => { }; // nop