updates
This commit is contained in:
@@ -48,9 +48,26 @@ Optionally add periodic state refresh traffic:
|
||||
.\.venv\Scripts\python.exe scripts\ccu_emulator.py --refresh-active --refresh-interval 0.600 --duration 30
|
||||
```
|
||||
|
||||
Enable the bench-proven IRIS/M.BLACK LINK closed-loop module:
|
||||
|
||||
```powershell
|
||||
.\.venv\Scripts\python.exe scripts\ccu_emulator.py --iris-mblack-link --duration 60 --log captures\ccu-iris-mblack-link.txt
|
||||
```
|
||||
|
||||
When the RCP reports selector `0x0013` as `0x4000` or `0x0000`, this module sends:
|
||||
|
||||
```text
|
||||
05 00 13 00 00 4C ; ACK selector 0x0013
|
||||
00 00 13 40 00 09 ; mirror active, or 00 00 13 00 00 49 for clear
|
||||
```
|
||||
|
||||
That matches the bench-proven IRIS/M.BLACK LINK state machine: the RCP reports local intent, the CCU acknowledges the selector, then the CCU mirrors the accepted state back so the next physical press toggles the other way.
|
||||
|
||||
## Layout
|
||||
|
||||
- `frames.py`: checksums, built-in frames, and simple host-frame builders.
|
||||
- `iris_mblack_link.py`: selector `0x0013` ACK-and-mirror state-machine module.
|
||||
- `modules.py`: small protocol-module interface for feature-specific CCU behavior.
|
||||
- `policy.py`: decides whether an RCP frame should be ACKed.
|
||||
- `refresh.py`: optional periodic state-refresh scheduling.
|
||||
- `serial_link.py`: serial read/write plus checksum-resync frame detection.
|
||||
|
||||
Reference in New Issue
Block a user