From a59dbd4f0715928a20f2a891df194c327ccdace3 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Fri, 13 Nov 2026 07:46:56 -0500 Subject: [PATCH] docs(heidenhain): driver accepted, #829/#853 closed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The ignitionoee CR capture (6d2aec40: 7 h read-only sample of 34 production controls on the Java LSV2 driver) and the 2026-11-11 iTNC 530 run did not change the driver's code: ProgramState 0 = cutting (11,865 of 11,869 motion pairs), 7 = idle; TNC 426/430 BadNotSupported; overrides BadUserAccessDenied under INSPECT; capabilities Unknown until first poll; alarm classes 1/7/8 seen, class 5 not. Owner accepted the driver on that basis; remaining limits stay documented in Heidenhain.md §Hardware-gated. --- .claude/rules/drivers.md | 6 ++++-- docs/drivers/Heidenhain.md | 11 ++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.claude/rules/drivers.md b/.claude/rules/drivers.md index 13b84b786..24094d6b7 100644 --- a/.claude/rules/drivers.md +++ b/.claude/rules/drivers.md @@ -351,8 +351,10 @@ panel with the NAT/IPv6-zone/loose-match caveats) / CLI `--validate-host-name`. `secret:heidenhain/…` / `env:OTOPCUA_HEIDENHAIN_…`, enforced at parse, resolve, save path, probe and deploy (an unscoped ref let Test Connect exfiltrate any node secret in cleartext A_LG); a bad optional DNC/DATA credential is `BadConfigurationError` on that role's reads only - (`HeidenhainCredentialPersisted`). Hardware-unproven: the in-process simulator + Java golden vectors are the evidence; - `Category=LiveIntegration` (`HEIDENHAIN_LSV2_HOST`) is the commissioning gate. `docs/drivers/Heidenhain.md`. + (`HeidenhainCredentialPersisted`). **Accepted 2026-11-13 (#829/#853 closed):** the hardware evidence did not change the + code. That evidence is the 2026-11-11 iTNC 530 run plus the ignitionoee CR 7 h capture of 34 production controls on the + Java driver (`6d2aec40`). `Category=LiveIntegration` (`HEIDENHAIN_LSV2_HOST`) stays the re-commissioning test; + the remaining limits are in `docs/drivers/Heidenhain.md` §Hardware-gated. Control family (`HeidenhainControlFamilies.Classify`, pyLSV2's prefix rule) → `Controller/Family` leaf; DATA is iTNC 530-only (non-iTNC/Unknown ⇒ `Unsupported`, no DATA login sent); every other feature is reply-driven, never pre-gated per family. Only iTNC 530 is hardware-proven (§Control families). diff --git a/docs/drivers/Heidenhain.md b/docs/drivers/Heidenhain.md index f2ee8c190..fb3560a92 100644 --- a/docs/drivers/Heidenhain.md +++ b/docs/drivers/Heidenhain.md @@ -481,7 +481,16 @@ session to the first device: INSPECT login + `R_VR`. A bare TCP listener does no ## Hardware-gated — not yet proven -No real control was available for this port. Still open: +**Accepted 2026-11-13 (#829, #853 closed).** The owner accepted the driver because the hardware evidence did not +change its code. That evidence is the 2026-11-11 iTNC 530 run (`evidence/heidenhain-live-2026-11-11.md`) plus the +ignitionoee CR capture of 2026-11-13 (`6d2aec40`, `docs/recipes/evidence/heidenhain-runstate-sample-2026-11-13/`): a +7 h read-only sample of 34 production controls on the Java LSV2 driver this one was ported from. It showed +`ProgramState` 0 coinciding with axis motion in 11,865 of 11,869 sample pairs and 7 = idle. TNC 426/430 (NC 280476) +answered `BadNotSupported` for status, program, axes and alarms. Overrides were `BadUserAccessDenied` under INSPECT, +capabilities read `Unknown` until their first poll, and comms loss recovered on reconnect. Alarm classes 1/7/8 were +seen; class 5 was not. The items below remain known limits, not acceptance blockers. + +No real control was available for this port at first. Still open: - **.NET commissioning evidence** on a real control (the LiveIntegration gate) — browse/types/arrays through a real OPC UA client, OPC write refusal, network interruption + recovery quality, bounded traffic under load.