This commit is contained in:
Aiden
2026-05-13 15:06:57 +10:00
parent feb78475c0
commit 025bd0511d

View File

@@ -2157,3 +2157,99 @@ Next confirmations:
- If a response differs between a plain/direct command and a primer-pair query,
treat the first host frame as a mode/context selector rather than only a
generic wake-up primer.
## Context Selector Confirmation Tests
Goal: confirm whether the first host frame is only a generic primer, or whether
it selects a response page/context for the next command.
The test method is to hold the second/query command constant and change only
the first frame:
```text
selector/primer -> selected query
```
Strong confirmation:
- Same selected query, different first frame, different RCP response.
- Example pattern: `00 -> B8` returns one block while `B7 -> B8` returns a
different block.
Weak or negative result:
- Same selected query always returns the same block regardless of the first
frame.
- The differing blocks from the paused direct sweep were caused by longer
sequence/timing effects rather than a two-frame selector.
### Test CS1: Known Generic `00` Page
This rechecks the current generic-primer page for the commands that had
different-looking responses in the paused direct sweep.
```powershell
python scripts/serial_primer_candidate_sweep.py --port COM5 --primer-command 0x00 --candidates "0xA0 0xB8 0xBC" --prompt-power-cycle --log captures/rcp-context-selector-00-a0-b8-bc.txt
```
Expected from prior primer sweeps:
| Pair | Expected response |
| --- | --- |
| `00 -> A0` | `07 80 68 40 30 C5` |
| `00 -> B8` | `07 80 EE 40 30 43` |
| `00 -> BC` | `07 80 EF 40 30 42` |
### Test CS2: Suspected Alternate Selectors
These test the pairings implied by the paused direct sweep. Power-cycle before
each prompt.
```powershell
python scripts/serial_primer_candidate_sweep.py --port COM5 --primer-command 0x9F --candidates 0xA0 --prompt-power-cycle --log captures/rcp-context-selector-9f-a0.txt
python scripts/serial_primer_candidate_sweep.py --port COM5 --primer-command 0xB7 --candidates 0xB8 --prompt-power-cycle --log captures/rcp-context-selector-b7-b8.txt
python scripts/serial_primer_candidate_sweep.py --port COM5 --primer-command 0xBB --candidates 0xBC --prompt-power-cycle --log captures/rcp-context-selector-bb-bc.txt
python scripts/serial_primer_candidate_sweep.py --port COM5 --primer-command 0xAF --candidates 0xB0 --prompt-power-cycle --log captures/rcp-context-selector-af-b0.txt
```
Compare against these paused/direct observations:
| Pair under test | Context hypothesis if reproduced |
| --- | --- |
| `9F -> A0` | `A0` may return `07 80 E8 40 30 45` after selector `9F`. |
| `B7 -> B8` | `B8` may return `07 80 6E 40 30 C3` after selector `B7`. |
| `BB -> BC` | `BC` may return `07 80 6F 40 30 C2` after selector `BB`. |
| `AF -> B0` | `B0` may return `07 80 6C 60 30 E1` after selector `AF`. |
### Test CS3: Check for Three-Frame Context
The paused sweep's `A0` response happened after `90` and `9F` had both been
sent in the same powered session. If `9F -> A0` does not reproduce the alternate
`A0` block, try the full three-frame setup:
```powershell
python scripts/serial_direct_response_sweep.py --port COM5 --commands "0x90 0x9F 0xA0" --states 0x00 --values 0x80 --settle 3 --after-each 0.8 --after 3 --log captures/rcp-context-seq-90-9f-a0.txt
```
Power-cycle once before this test and do not power-cycle until the script
exits.
Interpretation:
- If `9F -> A0` reproduces `07 80 E8 40 30 45`, a two-frame selector is likely.
- If only `90 -> 9F -> A0` reproduces it, the context/page setup may require
multiple host frames.
- If neither reproduces it, treat the paused direct `A0` response as a
sequence/timing artifact until another capture confirms it.
### Optional Single-Frame Controls
These check whether the candidate can respond as the first frame after boot.
```powershell
python scripts/serial_direct_response_sweep.py --port COM5 --commands 0xA0 --states 0x00 --values 0x80 --settle 3 --after-each 1.5 --after 2 --log captures/rcp-context-single-a0.txt
python scripts/serial_direct_response_sweep.py --port COM5 --commands 0xB8 --states 0x00 --values 0x80 --settle 3 --after-each 1.5 --after 2 --log captures/rcp-context-single-b8.txt
python scripts/serial_direct_response_sweep.py --port COM5 --commands 0xBC --states 0x00 --values 0x80 --settle 3 --after-each 1.5 --after 2 --log captures/rcp-context-single-bc.txt
```
Power-cycle before each single-frame control.