fix(twincat): review fixes for sum-read and diagnostics (#645)
Strict width+kind eligibility for sum-batched scalars (others read singly); latch only on ADS 1793/1794, split 1792/1797/1798 without latching; 32 KiB per-command budget and 500-item ceiling; short sum response handled per item. Diagnostics: opt-in diagnosticsEnabled (default off), reuse the probe's ReadState, sample after the host-state transition, JitterMs renamed HeadroomMs, compact per-device line so many devices fit the 16-entry cap, unavailable-symbol latch cleared on reconnect. AdminUI: min/max on sum-read max, diagnostics checkbox. Pure planner extracted and unit-tested. Claude-Session: https://claude.ai/code/session_01Ef2ozxS7QPanGT8uoATbTe
This commit is contained in:
+2
@@ -74,6 +74,7 @@ public sealed class TwinCATDriverPageFormSerializationTests
|
||||
NotificationMaxDelayMs = 100,
|
||||
UseSumRead = true,
|
||||
SumReadMaxItems = 64,
|
||||
DiagnosticsEnabled = true,
|
||||
Probe = new TwinCATProbeOptions
|
||||
{
|
||||
Enabled = true,
|
||||
@@ -92,6 +93,7 @@ public sealed class TwinCATDriverPageFormSerializationTests
|
||||
roundTripped.NotificationMaxDelayMs.ShouldBe(100);
|
||||
roundTripped.UseSumRead.ShouldBeTrue();
|
||||
roundTripped.SumReadMaxItems.ShouldBe(64);
|
||||
roundTripped.DiagnosticsEnabled.ShouldBeTrue();
|
||||
roundTripped.Probe.Enabled.ShouldBeTrue();
|
||||
roundTripped.Probe.Interval.ShouldBe(TimeSpan.FromSeconds(6));
|
||||
roundTripped.Probe.Timeout.ShouldBe(TimeSpan.FromSeconds(2));
|
||||
|
||||
Reference in New Issue
Block a user