isolating lamp behaviour
This commit is contained in:
48
scenarios/shutter-008f-evs-clear-control.json
Normal file
48
scenarios/shutter-008f-evs-clear-control.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"name": "shutter-008f-evs-clear-control",
|
||||
"notes": [
|
||||
"Recover to CONNECT OK, force the likely EVS display via selector 0x008F, then clear selector 0x008F.",
|
||||
"CONNECT NOT ACT globally clears the panel, so this scenario uses short observation windows to avoid mistaking timeout cleanup for selector clearing.",
|
||||
"Record the panel within about one second of each write: EVS set, clear, and EVS set again."
|
||||
],
|
||||
"steps": [
|
||||
{
|
||||
"action": "power_cycle",
|
||||
"off_seconds": 1.5
|
||||
},
|
||||
{
|
||||
"action": "wait_ready",
|
||||
"heartbeats": 2,
|
||||
"timeout": 10.0,
|
||||
"require": true
|
||||
},
|
||||
{
|
||||
"action": "drain",
|
||||
"seconds": 0.25
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "selector_zero_connect_ok_seed",
|
||||
"frame": "00 00 00 80 00 DA",
|
||||
"listen": 0.25
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_008f_likely_evs",
|
||||
"frame": "00 01 0F 08 00 5C",
|
||||
"listen": 0.85
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_008f_clear",
|
||||
"frame": "00 01 0F 00 00 54",
|
||||
"listen": 0.85
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_008f_likely_evs_again",
|
||||
"frame": "00 01 0F 08 00 5C",
|
||||
"listen": 0.85
|
||||
}
|
||||
]
|
||||
}
|
||||
36
scenarios/shutter-008f-evs-timeout-control.json
Normal file
36
scenarios/shutter-008f-evs-timeout-control.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"name": "shutter-008f-evs-timeout-control",
|
||||
"notes": [
|
||||
"Recover to CONNECT OK, force likely EVS via selector 0x008F, then deliberately do not clear it.",
|
||||
"This is the negative control for the adjacent-selector methodology: if the panel later blanks or falls to CONNECT NOT ACT, that is timeout cleanup, not proof that 0x008F clear worked.",
|
||||
"Record the time from EVS visibility to blank/CONNECT NOT ACT."
|
||||
],
|
||||
"steps": [
|
||||
{
|
||||
"action": "power_cycle",
|
||||
"off_seconds": 1.5
|
||||
},
|
||||
{
|
||||
"action": "wait_ready",
|
||||
"heartbeats": 2,
|
||||
"timeout": 10.0,
|
||||
"require": true
|
||||
},
|
||||
{
|
||||
"action": "drain",
|
||||
"seconds": 0.25
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "selector_zero_connect_ok_seed",
|
||||
"frame": "00 00 00 80 00 DA",
|
||||
"listen": 0.25
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_008f_likely_evs",
|
||||
"frame": "00 01 0F 08 00 5C",
|
||||
"listen": 4.0
|
||||
}
|
||||
]
|
||||
}
|
||||
236
scenarios/shutter-0093-bit-isolation.json
Normal file
236
scenarios/shutter-0093-bit-isolation.json
Normal file
@@ -0,0 +1,236 @@
|
||||
{
|
||||
"name": "shutter-0093-bit-isolation",
|
||||
"notes": [
|
||||
"Recover to CONNECT OK, then isolate likely selector 0x0093 lamp/display bits with a clear and OK seed before each candidate.",
|
||||
"Record white-balance PRESET, black/flare MANUAL, black/flare AUTO, shutter display, iris AUTO, and LCD state during each candidate window.",
|
||||
"This follows the 0x0093=0x8000 and 0x0093=0xFFFF bench observations that affected lamps beyond the shutter cluster."
|
||||
],
|
||||
"steps": [
|
||||
{
|
||||
"action": "power_cycle",
|
||||
"off_seconds": 1.5
|
||||
},
|
||||
{
|
||||
"action": "wait_ready",
|
||||
"heartbeats": 2,
|
||||
"timeout": 10.0,
|
||||
"require": true
|
||||
},
|
||||
{
|
||||
"action": "drain",
|
||||
"seconds": 0.25
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "selector_zero_connect_ok_seed",
|
||||
"frame": "00 00 00 80 00 DA",
|
||||
"listen": 0.25
|
||||
},
|
||||
{
|
||||
"action": "repeat",
|
||||
"count": 1,
|
||||
"steps": [
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_0093_clear_before_bit12",
|
||||
"frame": "00 01 13 00 00 48",
|
||||
"listen": 0.20
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "selector_zero_ok_before_bit12",
|
||||
"frame": "00 00 00 80 00 DA",
|
||||
"listen": 0.10
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_0093_bit12_rom_gate",
|
||||
"frame": "00 01 13 10 00 58",
|
||||
"listen": 0.85
|
||||
},
|
||||
{
|
||||
"action": "table_sweep",
|
||||
"selectors": [
|
||||
"0x093"
|
||||
],
|
||||
"gap": 0.20,
|
||||
"ack_on": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_0093_clear_before_bit5",
|
||||
"frame": "00 01 13 00 00 48",
|
||||
"listen": 0.20
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "selector_zero_ok_before_bit5",
|
||||
"frame": "00 00 00 80 00 DA",
|
||||
"listen": 0.10
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_0093_bit5_rom_gate",
|
||||
"frame": "00 01 13 00 20 68",
|
||||
"listen": 0.85
|
||||
},
|
||||
{
|
||||
"action": "table_sweep",
|
||||
"selectors": [
|
||||
"0x093"
|
||||
],
|
||||
"gap": 0.20,
|
||||
"ack_on": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_0093_clear_before_bits12_5",
|
||||
"frame": "00 01 13 00 00 48",
|
||||
"listen": 0.20
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "selector_zero_ok_before_bits12_5",
|
||||
"frame": "00 00 00 80 00 DA",
|
||||
"listen": 0.10
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_0093_bits12_5",
|
||||
"frame": "00 01 13 10 20 78",
|
||||
"listen": 0.85
|
||||
},
|
||||
{
|
||||
"action": "table_sweep",
|
||||
"selectors": [
|
||||
"0x093"
|
||||
],
|
||||
"gap": 0.20,
|
||||
"ack_on": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_0093_clear_before_bit15",
|
||||
"frame": "00 01 13 00 00 48",
|
||||
"listen": 0.20
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "selector_zero_ok_before_bit15",
|
||||
"frame": "00 00 00 80 00 DA",
|
||||
"listen": 0.10
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_0093_bit15_seen_wb_preset_blackflare_manual",
|
||||
"frame": "00 01 13 80 00 C8",
|
||||
"listen": 0.85
|
||||
},
|
||||
{
|
||||
"action": "table_sweep",
|
||||
"selectors": [
|
||||
"0x093"
|
||||
],
|
||||
"gap": 0.20,
|
||||
"ack_on": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_0093_clear_before_bits15_5",
|
||||
"frame": "00 01 13 00 00 48",
|
||||
"listen": 0.20
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "selector_zero_ok_before_bits15_5",
|
||||
"frame": "00 00 00 80 00 DA",
|
||||
"listen": 0.10
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_0093_bits15_5",
|
||||
"frame": "00 01 13 80 20 E8",
|
||||
"listen": 0.85
|
||||
},
|
||||
{
|
||||
"action": "table_sweep",
|
||||
"selectors": [
|
||||
"0x093"
|
||||
],
|
||||
"gap": 0.20,
|
||||
"ack_on": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_0093_clear_before_bits15_12",
|
||||
"frame": "00 01 13 00 00 48",
|
||||
"listen": 0.20
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "selector_zero_ok_before_bits15_12",
|
||||
"frame": "00 00 00 80 00 DA",
|
||||
"listen": 0.10
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_0093_bits15_12",
|
||||
"frame": "00 01 13 90 00 D8",
|
||||
"listen": 0.85
|
||||
},
|
||||
{
|
||||
"action": "table_sweep",
|
||||
"selectors": [
|
||||
"0x093"
|
||||
],
|
||||
"gap": 0.20,
|
||||
"ack_on": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_0093_clear_before_bits15_12_5",
|
||||
"frame": "00 01 13 00 00 48",
|
||||
"listen": 0.20
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "selector_zero_ok_before_bits15_12_5",
|
||||
"frame": "00 00 00 80 00 DA",
|
||||
"listen": 0.10
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_0093_bits15_12_5",
|
||||
"frame": "00 01 13 90 20 F8",
|
||||
"listen": 0.85
|
||||
},
|
||||
{
|
||||
"action": "table_sweep",
|
||||
"selectors": [
|
||||
"0x093"
|
||||
],
|
||||
"gap": 0.20,
|
||||
"ack_on": {
|
||||
"enabled": false
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"action": "listen",
|
||||
"seconds": 0.75
|
||||
}
|
||||
]
|
||||
}
|
||||
87
scenarios/shutter-0093-gate-8000.json
Normal file
87
scenarios/shutter-0093-gate-8000.json
Normal file
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"name": "shutter-0093-gate-8000",
|
||||
"notes": [
|
||||
"Recover to CONNECT OK, read the shutter cluster, set primary selector 0x0093 to 0x8000, then read the cluster again.",
|
||||
"ROM trace shows E000[0x0093] gates adjacent shutter/clear-scan value lanes, but the exact bit meaning is not bench-confirmed.",
|
||||
"CONNECT NOT ACT can clear the panel, so a fresh selector-zero OK seed is sent immediately before the 0x0093 write.",
|
||||
"Record visual changes during the short post-write window, then use the second sweep for table evidence."
|
||||
],
|
||||
"steps": [
|
||||
{
|
||||
"action": "power_cycle",
|
||||
"off_seconds": 1.5
|
||||
},
|
||||
{
|
||||
"action": "wait_ready",
|
||||
"heartbeats": 2,
|
||||
"timeout": 10.0,
|
||||
"require": true
|
||||
},
|
||||
{
|
||||
"action": "drain",
|
||||
"seconds": 0.25
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "selector_zero_connect_ok_seed",
|
||||
"frame": "00 00 00 80 00 DA",
|
||||
"listen": 0.25
|
||||
},
|
||||
{
|
||||
"action": "table_sweep",
|
||||
"selectors": [
|
||||
"0x08F",
|
||||
"0x093",
|
||||
"0x0A3",
|
||||
"0x0A4",
|
||||
"0x0A5",
|
||||
"0x0D8",
|
||||
"0x080",
|
||||
"0x0D9",
|
||||
"0x0A6",
|
||||
"0x0DA",
|
||||
"0x081"
|
||||
],
|
||||
"gap": 0.10,
|
||||
"ack_on": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "selector_zero_connect_ok_seed_before_gate",
|
||||
"frame": "00 00 00 80 00 DA",
|
||||
"listen": 0.15
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_0093_gate_high_bit",
|
||||
"frame": "00 01 13 80 00 C8",
|
||||
"listen": 0.85
|
||||
},
|
||||
{
|
||||
"action": "table_sweep",
|
||||
"selectors": [
|
||||
"0x08F",
|
||||
"0x093",
|
||||
"0x0A3",
|
||||
"0x0A4",
|
||||
"0x0A5",
|
||||
"0x0D8",
|
||||
"0x080",
|
||||
"0x0D9",
|
||||
"0x0A6",
|
||||
"0x0DA",
|
||||
"0x081"
|
||||
],
|
||||
"gap": 0.12,
|
||||
"ack_on": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"action": "listen",
|
||||
"seconds": 0.75
|
||||
}
|
||||
]
|
||||
}
|
||||
87
scenarios/shutter-0093-gate-ffff.json
Normal file
87
scenarios/shutter-0093-gate-ffff.json
Normal file
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"name": "shutter-0093-gate-ffff",
|
||||
"notes": [
|
||||
"Recover to CONNECT OK, read the shutter cluster, set primary selector 0x0093 to 0xFFFF, then read the cluster again.",
|
||||
"This enables both ROM-observed gate bits 12 and 5, plus unknown bits, so run after shutter-0093-gate-8000.",
|
||||
"CONNECT NOT ACT can clear the panel, so a fresh selector-zero OK seed is sent immediately before the 0x0093 write.",
|
||||
"Record visual changes during the short post-write window, then use the second sweep for table evidence."
|
||||
],
|
||||
"steps": [
|
||||
{
|
||||
"action": "power_cycle",
|
||||
"off_seconds": 1.5
|
||||
},
|
||||
{
|
||||
"action": "wait_ready",
|
||||
"heartbeats": 2,
|
||||
"timeout": 10.0,
|
||||
"require": true
|
||||
},
|
||||
{
|
||||
"action": "drain",
|
||||
"seconds": 0.25
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "selector_zero_connect_ok_seed",
|
||||
"frame": "00 00 00 80 00 DA",
|
||||
"listen": 0.25
|
||||
},
|
||||
{
|
||||
"action": "table_sweep",
|
||||
"selectors": [
|
||||
"0x08F",
|
||||
"0x093",
|
||||
"0x0A3",
|
||||
"0x0A4",
|
||||
"0x0A5",
|
||||
"0x0D8",
|
||||
"0x080",
|
||||
"0x0D9",
|
||||
"0x0A6",
|
||||
"0x0DA",
|
||||
"0x081"
|
||||
],
|
||||
"gap": 0.10,
|
||||
"ack_on": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "selector_zero_connect_ok_seed_before_gate",
|
||||
"frame": "00 00 00 80 00 DA",
|
||||
"listen": 0.15
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "e000_0093_all_bits",
|
||||
"frame": "00 01 13 FF FF 48",
|
||||
"listen": 0.85
|
||||
},
|
||||
{
|
||||
"action": "table_sweep",
|
||||
"selectors": [
|
||||
"0x08F",
|
||||
"0x093",
|
||||
"0x0A3",
|
||||
"0x0A4",
|
||||
"0x0A5",
|
||||
"0x0D8",
|
||||
"0x080",
|
||||
"0x0D9",
|
||||
"0x0A6",
|
||||
"0x0DA",
|
||||
"0x081"
|
||||
],
|
||||
"gap": 0.12,
|
||||
"ack_on": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"action": "listen",
|
||||
"seconds": 0.75
|
||||
}
|
||||
]
|
||||
}
|
||||
55
scenarios/shutter-adjacent-readback.json
Normal file
55
scenarios/shutter-adjacent-readback.json
Normal file
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "shutter-adjacent-readback",
|
||||
"notes": [
|
||||
"Recover to CONNECT OK, then read the currently known shutter/clear-scan selector cluster.",
|
||||
"This is read-only after the selector-zero CONNECT seed and should be the first adjacent-selector bench run.",
|
||||
"CONNECT NOT ACT can clear the panel during/after the sweep, so treat visual state at the end as timeout-contaminated.",
|
||||
"Use this primarily for table readback rows and non-heartbeat frames, not for proving display clearing."
|
||||
],
|
||||
"steps": [
|
||||
{
|
||||
"action": "power_cycle",
|
||||
"off_seconds": 1.5
|
||||
},
|
||||
{
|
||||
"action": "wait_ready",
|
||||
"heartbeats": 2,
|
||||
"timeout": 10.0,
|
||||
"require": true
|
||||
},
|
||||
{
|
||||
"action": "drain",
|
||||
"seconds": 0.25
|
||||
},
|
||||
{
|
||||
"action": "send",
|
||||
"label": "selector_zero_connect_ok_seed",
|
||||
"frame": "00 00 00 80 00 DA",
|
||||
"listen": 0.25
|
||||
},
|
||||
{
|
||||
"action": "table_sweep",
|
||||
"selectors": [
|
||||
"0x08F",
|
||||
"0x093",
|
||||
"0x0A3",
|
||||
"0x0A4",
|
||||
"0x0A5",
|
||||
"0x0D8",
|
||||
"0x080",
|
||||
"0x0D9",
|
||||
"0x0A6",
|
||||
"0x0DA",
|
||||
"0x081"
|
||||
],
|
||||
"gap": 0.12,
|
||||
"ack_on": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"action": "listen",
|
||||
"seconds": 0.75
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user