feat(bridge): add wifi/serial bridge runtime and UI
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -20,6 +20,8 @@ All ESP-NOW datagrams and Pi↔bridge WebSocket frames use **binary only** (no J
|
||||
| `0x02` | `GROUPS` | Controller → driver |
|
||||
| `0x03` | `CMD` | Controller → driver |
|
||||
| `0x04` | `GROUP_CMD` | Controller → broadcast |
|
||||
| `0x05` | `PING_REQ` | Controller → broadcast |
|
||||
| `0x06` | `PING_RSP` | Driver → controller (unicast) |
|
||||
| `0x10` | `BRIDGE_CH` | Controller → broadcast |
|
||||
|
||||
### ANNOUNCE (`0x01`)
|
||||
@@ -57,6 +59,24 @@ Bytes 2… are a **v2 binary envelope** (see `src/util/binary_envelope.py`): 5-b
|
||||
|
||||
Drivers apply the nested envelope only if `group_id` is in their stored group list.
|
||||
|
||||
### PING_REQ (`0x05`)
|
||||
|
||||
Controller discovery ping (broadcast). Drivers reply with **PING_RSP** after a random delay (50–500 ms) to reduce ESP-NOW collisions.
|
||||
|
||||
| Field | Type |
|
||||
|-------|------|
|
||||
| ping_id | u32 LE |
|
||||
|
||||
### PING_RSP (`0x06`)
|
||||
|
||||
Unicast to the bridge/controller peer that sent the request (ESP-NOW source MAC of the received **PING_REQ**).
|
||||
|
||||
| Field | Type |
|
||||
|-------|------|
|
||||
| ping_id | u32 LE |
|
||||
| name_len | u8 |
|
||||
| name | UTF-8 |
|
||||
|
||||
### BRIDGE_CH (`0x10`)
|
||||
|
||||
| Field | Type |
|
||||
|
||||
Reference in New Issue
Block a user