docs(heidenhain): driver page, README/probe index rows, drivers rule note (#803)

docs/drivers/Heidenhain.md: read-only boundary + allowlist table, transport, config,
credential references, address grammar (fixed catalog, PLC element/byte-count rules,
DATA types incl. FF Boolean), quality table, lifecycle/health/comms loss, probe, tests,
hardware-gated items and deliberate exclusions.

Also: InitializeAsync clears surviving subscription handles (the actor re-subscribes
after every successful init, so a kept handle would double-publish).
This commit is contained in:
Joseph Doherty
2026-11-10 23:23:25 -05:00
parent bba6d81c16
commit 8fb03d6a72
5 changed files with 211 additions and 0 deletions
@@ -104,6 +104,8 @@ public sealed class HeidenhainDriver : IDriver, IReadable, ISubscribable, ITagDi
{
// #630: release prior device state first — a re-init must never leak a session per attempt.
await StopDevicesAsync().ConfigureAwait(false);
// The actor re-subscribes after every successful init; a surviving handle would double-publish.
_subscriptions.Clear();
lock (_lifecycleLock) _state = DriverState.Initializing;
try
{