Add selectable ESP-NOW send path for accel/tap input.
Expose best_effort/fast/wait/reliable via UART, dashboard, and CLI so loss vs latency can be compared under real multi-pod load. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -400,6 +400,37 @@ go run . -port /dev/ttyUSB0 log-level -set -level 3
|
||||
|
||||
Dashboard: Master card → dropdown **ESP Log-Level** with **Lesen** / **Setzen**.
|
||||
|
||||
### Input send mode (slave accel/tap ESP-NOW TX path)
|
||||
|
||||
Debug A/B for how slaves transmit `ACCEL_SAMPLE` / `TAP_EVENT`. Default on slaves is `best_effort` (0). Master remembers the last mode for GET; write pushes via ESP-NOW.
|
||||
|
||||
```http
|
||||
GET /api/input-send-mode
|
||||
PUT /api/input-send-mode
|
||||
Content-Type: application/json
|
||||
{"mode": 2, "all_clients": true}
|
||||
```
|
||||
|
||||
| `mode` | Path |
|
||||
|--------|------|
|
||||
| 0 | `best_effort` (fire-and-forget, quiet) |
|
||||
| 1 | `fast` (fire-and-forget, logs failures) |
|
||||
| 2 | `wait` (send-done + retries) |
|
||||
| 3 | `reliable` (OTA-style retries; can stall high-rate accel) |
|
||||
|
||||
```json
|
||||
{"success": true, "mode": 2, "mode_name": "wait", "slaves_updated": 2}
|
||||
```
|
||||
|
||||
**CLI:**
|
||||
|
||||
```bash
|
||||
go run . -port /dev/ttyUSB0 input-send-mode
|
||||
go run . -port /dev/ttyUSB0 input-send-mode -set -mode 2 -all
|
||||
```
|
||||
|
||||
Dashboard: ESP-NOW Slaves toolbar → **Input-Send** dropdown + **Setzen** / **Lesen**.
|
||||
|
||||
### OTA (master host upload, UART or BLE)
|
||||
|
||||
```http
|
||||
@@ -455,5 +486,6 @@ Same as external API:
|
||||
| Unicast test | `POST /api/unicast-test` |
|
||||
| Echo ping | `POST /api/echo-ping` (per-slave latency; UI shows Host ms + ESP ms) |
|
||||
| Master log level | `GET` / `POST /api/log-level` or CLI `log-level` |
|
||||
| Input-Send mode | `GET` / `PUT /api/input-send-mode` or CLI `input-send-mode` |
|
||||
| Tap notify S/D/T | `PUT /api/clients/{id}/tap-notify` |
|
||||
| Tap receive (UI) | Live stream + tap notify; see WebSocket doc for external API |
|
||||
|
||||
Reference in New Issue
Block a user