Add uart_cmd helpers to deduplicate UART command handlers.
Centralize protobuf decode, response init/send, registration, and common nanopb encode callbacks; refactor existing cmd_* modules to use them. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+3
-2
@@ -275,6 +275,7 @@ Target: ESP32-S3. Close serial monitor on the UART adapter port before running `
|
||||
| `uart.c/h` | Framed UART RX/TX |
|
||||
| `uart_proto.c/h` | Encode/send `UartMessage` |
|
||||
| `cmd_handler.c/h` | Command queue and dispatch |
|
||||
| `uart_cmd.c/h` | Shared UART decode/send helpers for handlers |
|
||||
| `cmd_version.c/h` | VERSION handler |
|
||||
| `cmd_client_info.c/h` | CLIENT_INFO handler |
|
||||
| `client_registry.c/h` | Registered slave table |
|
||||
@@ -288,8 +289,8 @@ Target: ESP32-S3. Close serial monitor on the UART adapter port before running `
|
||||
## Adding a new UART command
|
||||
|
||||
1. Add or extend messages in `uart_messages.proto` and regenerate nanopb.
|
||||
2. Create `cmd_*.c` with a handler; register with `msg_register_handler(MessageType_…, handler)`.
|
||||
3. Reply via `uart_send_uart_message()` where needed.
|
||||
2. Create `cmd_*.c` with a handler; register with `uart_cmd_register(MessageType_…, handler)`.
|
||||
3. Decode with `uart_cmd_decode()` / `UART_CMD_REQ()`; reply with `uart_cmd_init_response()` + `uart_cmd_send()`.
|
||||
4. Extend `goTool` or another host client to send the matching frame.
|
||||
|
||||
For ESP-NOW-driven PC updates later: map slave state to `ClientInfo` and send `CLIENT_INFO` over UART from the master.
|
||||
|
||||
Reference in New Issue
Block a user