mbproxy/docs: retire superseded design/plan docs and dissolve DL260/

The standalone design.md, kpi.md, operations.md, and the docs/plan/
phase tree were point-in-time planning artefacts now superseded by the
topic-organized docs/ tree (Architecture/, Features/, Operations/,
Reference/, Testing/). The DL260/ folder mixed a device-reference doc, a
test fixture, a sample test, and a screenshot; its contents now live in
their natural homes (dl205.md + mbtcp_settings.JPG under docs/Reference/,
dl205.json next to its launcher in tests/sim/, sample test dropped).

All cross-references in the surviving docs, README, CLAUDE.md, the config
template, and source comments are repointed to the new locations.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Joseph Doherty
2026-05-15 07:37:18 -04:00
parent 0a603f94d0
commit 7466a46aa7
48 changed files with 67 additions and 3518 deletions
@@ -148,7 +148,7 @@ public sealed class BcdTagMapBuilderTests
/// <summary>
/// Same-address entries appearing in BOTH Global AND Add are the documented
/// width-override pattern (design.md "Hybrid tag resolution"). They must NOT
/// width-override pattern (docs/Features/BcdRewriting.md "Hybrid tag resolution"). They must NOT
/// be flagged as duplicates; Add wins.
/// </summary>
[Fact]
@@ -404,7 +404,7 @@ public sealed class BcdPduPipelineTests
/// <summary>
/// DL205/DL260 caps FC03/FC04 reads at qty=128 (above Modbus spec's 125; documented
/// in DL260/dl205.md). The proxy must NOT truncate the qty field — a request with
/// in docs/Reference/dl205.md). The proxy must NOT truncate the qty field — a request with
/// qty &gt; 128 at non-BCD addresses must pass through unchanged so the PLC's own
/// validator returns exception 03 to the client. This is the transparent-pass-through
/// contract for FCs and addresses the rewriter doesn't own.
@@ -172,7 +172,7 @@ public sealed class MultiplexerE2ETests
int proxyPort = PickFreePort();
// Configure three BCD addresses each width 16 for FC06 writes. The sim profile's
// writable HR range is [200..209] (see DL260/dl205.json's "write" list); reads
// writable HR range is [200..209] (see tests/sim/dl205.json's "write" list); reads
// outside that range succeed but writes return exception 02. We use 200/202/204.
var config = new Dictionary<string, string?>
{
@@ -207,7 +207,7 @@ public sealed class ReadCoalescingE2ETests
await Task.Delay(300, TestContext.Current.CancellationToken);
// Five different seeded addresses, sequential reads — none can coalesce.
// Selected from DL260/dl205.json's seeded ranges (200..209, 1024, 1040..1042).
// Selected from tests/sim/dl205.json's seeded ranges (200..209, 1024, 1040..1042).
ushort[] addrs = [200, 201, 202, 203, 204];
using (var client = new TcpClient())
{
@@ -6,7 +6,7 @@ namespace Mbproxy.Tests.Sim;
/// <summary>
/// End-to-end smoke tests that verify the pymodbus DL205 simulator is reachable and
/// serves the expected seeded register values from <c>DL260/dl205.json</c>.
/// serves the expected seeded register values from <c>tests/sim/dl205.json</c>.
/// </summary>
/// <remarks>
/// All three tests call <see cref="Assert.Skip"/> when