Add runtime BMA456 tap config with NVS persistence and goTool UI.

Expose multitap parameters over UART/ESP-NOW (like deadzone), store per node in NVS, and allow get/set from CLI, REST, and the dashboard without poll-overwrite while editing.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
simon
2026-09-26 13:07:13 +02:00
co-authored by Cursor
parent f006f8b912
commit d7441cb85f
32 changed files with 1859 additions and 150 deletions
+42
View File
@@ -209,6 +209,46 @@ With `all_clients` + `slaves_only`: push to ESP-NOW slaves only (master BMA456 u
{"deadzone": 128, "client_id": 0, "success": true, "slaves_updated": 2}
```
### Tap config (BMA456 multitap)
```http
GET /api/tap-config?client_id=0
POST /api/tap-config
Content-Type: application/json
{
"write": true,
"client_id": 0,
"tap_sens_thres": 5,
"max_gest_dur": 100,
"tap_shock_dur": 6,
"quite_time_after_gest": 60,
"wait_for_timeout": 0,
"axis_sel": 2,
"enable_single": true,
"enable_double": true,
"enable_triple": true
}
```
Same `client_id` / `all_clients` / `slaves_only` semantics as deadzone. Values are applied to the sensor and persisted in NVS on each target node.
```json
{
"client_id": 0,
"success": true,
"slaves_updated": 0,
"tap_sens_thres": 5,
"max_gest_dur": 100,
"tap_shock_dur": 6,
"quite_time_after_gest": 60,
"wait_for_timeout": 0,
"axis_sel": 2,
"enable_single": true,
"enable_double": true,
"enable_triple": true
}
```
### Unicast test
```http
@@ -361,6 +401,8 @@ Same as external API:
| Nur Master deadzone | `POST /api/deadzone` `client_id: 0` or CLI `deadzone -set -client 0` |
| Einzelner Slave | `client_id: <id>` |
| Alle Slaves deadzone | `all_clients` + `slaves_only` on POST |
| Master tap config | `GET` / `POST /api/tap-config` `client_id: 0` or CLI `tap-config` |
| Tap-Cfg alle Slaves | `POST /api/tap-config` with `all_clients` + `slaves_only` |
| 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` |