Skip to content

Commit 11e4855

Browse files
dspl1236claude
andcommitted
dcl: cross-validate the response layout on a second PCM
Spyderdoc's unit went on the bench -- a genuinely different PCM, part number 99164217822 against the first unit's 7P5035884AB, with different software (1A 93 = 02011221 vs 01100920). EVERY measured response length matched between the two units: 1A 91 = 11, 1A 93 = 8, 1A 95 = 8, 21 00 = 1, 21 06 = 6, 21 0A = 21, 21 12 = 3, 21 16 = 11, 21 1B = 6, 21 29 = 33, 21 FE = 2. So the layout derived from one config file predicts a different unit running different software, which is a stronger claim than anything the single-unit measurements could support. 21 1B is settled as far as it can be. Its width is fixed at 6 on both units even though type 18 is nominally variable, and the payload is a per-unit identifier: 20 32 1a 25 5a 69 on the first unit, 20 32 1d 1e 5a 64 on the second, with bytes 0, 1 and 4 identical across both. The length is still not declared in any file we hold -- searched diagnosis.cfg, PCM3Reload, ifs1, ifs2, the persistence backup and all 37 GB of the drive image, none of which carry it -- so response_length() still abstains by default and MEASURED_LENGTH now rests on two units rather than one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent da0c5c4 commit 11e4855

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

pcmexplorer/dcl.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -690,9 +690,17 @@ def _table_length(body):
690690
#: and neither ifs1 nor ifs2 carries an IO-subsystem declaration file. The
691691
#: length is supplied by the IO subsystem at run time.
692692
#:
693-
#: Worth noting: this one's value was byte-identical across two bench runs
694-
#: (``20 32 1a 25 5a 69``) where ``21 12`` and ``21 FE`` both changed, so it is
695-
#: a static identifier rather than live data.
693+
#: Confirmed on a **second, different** PCM (part number ``99164217822`` against
694+
#: the first unit's ``7P5035884AB``): ``21 1B`` answered six bytes there too,
695+
#: with a different value -- ``20 32 1d 1e 5a 64`` against ``20 32 1a 25 5a 69``.
696+
#: So the width is fixed at 6 for signal 20193 even though type 18 is nominally
697+
#: variable, and the payload is a per-unit identifier. Bytes 0, 1 and 4 are
698+
#: identical across both units.
699+
#:
700+
#: That second unit also cross-validates the derived rule: every measured length
701+
#: matched between the two (1A91=11, 1A93=8, 1A95=8, 21 1B=6, 21 12=3,
702+
#: 21 FE=2, 21 06=6, 21 0A=21, 21 29=33, 21 16=11, 21 00=1), so response layout
703+
#: is stable across hardware variants and software versions.
696704
MEASURED_LENGTH = {0x211B: 6}
697705

698706

0 commit comments

Comments
 (0)