Register slaves from recv src_addr instead of protobuf mac bytes, add ESPNOW_UNICAST_TEST for path verification, restore unicast deadzone, and expose unicast-test in goTool. Co-authored-by: Cursor <cursoragent@cursor.com>
51 lines
1.4 KiB
Markdown
51 lines
1.4 KiB
Markdown
# goTool
|
|
|
|
Host-side UART client for the Powerpod **master** ESP.
|
|
|
|
Full system documentation (roles, ESP-NOW, framing, protobuf): [`../main/README.md`](../main/README.md).
|
|
|
|
## Usage
|
|
|
|
```bash
|
|
cd goTool
|
|
go mod tidy
|
|
go run . -port /dev/ttyUSB0 version
|
|
go run . -port /dev/ttyUSB0 clients
|
|
```
|
|
|
|
| Flag | Default | Description |
|
|
|------|---------|-------------|
|
|
| `-port` | (required) | Serial port on master UART (GPIO2/3 adapter) |
|
|
| `-baud` | `921600` | Must match firmware `UART_BAUD_RATE` |
|
|
|
|
### Commands
|
|
|
|
| Command | UART payload | Description |
|
|
|---------|--------------|-------------|
|
|
| `version` | `0x03` | Prints `version` and `git_hash` from firmware |
|
|
| `clients` | `0x04` | Lists slaves registered on the master via ESP-NOW |
|
|
| `unicast-test` | `0x07` | Sends ESP-NOW unicast test to one slave (`-client`, `-seq`) |
|
|
|
|
`clients` requires slaves to have responded to master discover broadcasts first.
|
|
|
|
```bash
|
|
go run . -port /dev/ttyUSB0 unicast-test -client 16 -seq 42
|
|
```
|
|
|
|
On success the slave serial log should show `UNICAST TEST OK from master … seq=42`.
|
|
|
|
Example output:
|
|
|
|
```
|
|
clients (2):
|
|
[0] id=42 mac=aabbccddeeff ver=1 available=true used=false last_ping=250 last_success_ping=250
|
|
```
|
|
|
|
## Regenerate protobuf
|
|
|
|
```bash
|
|
protoc --go_out=./pb --go_opt=paths=source_relative \
|
|
--go_opt=Muart_messages.proto=powerpod/gotool/pb \
|
|
-I ../main/proto ../main/proto/uart_messages.proto
|
|
```
|