feat: Add PING, LOG, RSSI RESET commands
PING returns OK PONG for connectivity testing. LOG sets global esp_log_level at runtime (NONE/ERROR/WARN/INFO/DEBUG/VERBOSE). RSSI RESET clears min/max RSSI tracking counters. Compact HELP text to fit 1400-byte reply buffer.
This commit is contained in:
@@ -2157,38 +2157,58 @@ static int cmd_handle(const char *cmd, char *reply, size_t reply_size)
|
||||
return strlen(reply);
|
||||
}
|
||||
|
||||
/* PING — echo reply for connectivity tests */
|
||||
if (strcmp(cmd, "PING") == 0) {
|
||||
snprintf(reply, reply_size, "OK PONG");
|
||||
return strlen(reply);
|
||||
}
|
||||
|
||||
/* LOG <NONE|ERROR|WARN|INFO|DEBUG|VERBOSE> */
|
||||
if (strncmp(cmd, "LOG ", 4) == 0) {
|
||||
const char *arg = cmd + 4;
|
||||
esp_log_level_t level;
|
||||
if (strcmp(arg, "NONE") == 0) level = ESP_LOG_NONE;
|
||||
else if (strcmp(arg, "ERROR") == 0) level = ESP_LOG_ERROR;
|
||||
else if (strcmp(arg, "WARN") == 0) level = ESP_LOG_WARN;
|
||||
else if (strcmp(arg, "INFO") == 0) level = ESP_LOG_INFO;
|
||||
else if (strcmp(arg, "DEBUG") == 0) level = ESP_LOG_DEBUG;
|
||||
else if (strcmp(arg, "VERBOSE") == 0) level = ESP_LOG_VERBOSE;
|
||||
else {
|
||||
snprintf(reply, reply_size, "ERR LOG NONE|ERROR|WARN|INFO|DEBUG|VERBOSE");
|
||||
return strlen(reply);
|
||||
}
|
||||
esp_log_level_set("*", level);
|
||||
snprintf(reply, reply_size, "OK LOG %s", arg);
|
||||
return strlen(reply);
|
||||
}
|
||||
if (strcmp(cmd, "LOG") == 0) {
|
||||
snprintf(reply, reply_size, "OK LOG (use LOG <NONE|ERROR|WARN|INFO|DEBUG|VERBOSE>)");
|
||||
return strlen(reply);
|
||||
}
|
||||
|
||||
/* RSSI RESET — reset min/max counters */
|
||||
if (strcmp(cmd, "RSSI RESET") == 0) {
|
||||
s_rssi_min = 0;
|
||||
s_rssi_max = -128;
|
||||
snprintf(reply, reply_size, "OK RSSI min/max reset");
|
||||
return strlen(reply);
|
||||
}
|
||||
|
||||
/* HELP */
|
||||
if (strcmp(cmd, "HELP") == 0) {
|
||||
int pos = 0;
|
||||
pos += snprintf(reply + pos, reply_size - pos,
|
||||
"OK HELP\n"
|
||||
"STATUS — sensor status\n"
|
||||
"CONFIG — dump all NVS settings\n"
|
||||
"RATE <10-100> — set CSI ping rate (Hz)\n"
|
||||
"POWER <2-20> — set TX power (dBm)\n"
|
||||
"TARGET <ip> [port] — set data destination\n"
|
||||
"HOSTNAME [name] — get/set hostname\n"
|
||||
"CSI [ON|OFF] — toggle CSI collection\n"
|
||||
"CSIMODE [RAW|COMPACT|HYBRID N] — CSI output mode\n"
|
||||
"ADAPTIVE [ON|OFF] — adaptive sampling\n"
|
||||
"THRESHOLD <0-1> — motion threshold\n"
|
||||
"BLE [ON|OFF] — BLE scanning\n"
|
||||
"SCANRATE <5-300> — BLE scan interval (s)\n"
|
||||
"PROBERATE <1-300> — probe dedup cooldown (s)\n"
|
||||
"CALIBRATE [STATUS|CLEAR|N] — baseline calibration\n"
|
||||
"PRESENCE [ON|OFF|THRESHOLD] — presence detection\n"
|
||||
"CHANSCAN [ON|OFF|NOW|INTERVAL] — channel scanning\n"
|
||||
"LED [QUIET|AUTO] — LED mode\n"
|
||||
"POWERSAVE [ON|OFF] — WiFi modem sleep\n"
|
||||
"AUTH [secret|OFF] — HMAC authentication\n"
|
||||
"FLOODTHRESH <n> [win] — deauth flood threshold\n"
|
||||
"OTA <url> — firmware update\n"
|
||||
"POWERTEST [dwell] — power profiling\n"
|
||||
"PROFILE — heap/stack/CPU stats\n"
|
||||
"IDENTIFY — LED solid 5s\n"
|
||||
"REBOOT — restart sensor\n"
|
||||
"FACTORY — erase config, reboot\n"
|
||||
"HELP — this message");
|
||||
"STATUS CONFIG PROFILE PING HELP\n"
|
||||
"RATE <10-100> POWER <2-20> TARGET <ip> [port]\n"
|
||||
"HOSTNAME [name] CSI [ON|OFF] CSIMODE [RAW|COMPACT|HYBRID N]\n"
|
||||
"ADAPTIVE [ON|OFF] THRESHOLD <0-1>\n"
|
||||
"BLE [ON|OFF] SCANRATE <5-300> PROBERATE <1-300>\n"
|
||||
"CALIBRATE [STATUS|CLEAR|N] PRESENCE [ON|OFF|THRESHOLD]\n"
|
||||
"CHANSCAN [ON|OFF|NOW|INTERVAL] LED [QUIET|AUTO]\n"
|
||||
"POWERSAVE [ON|OFF] AUTH [secret|OFF] FLOODTHRESH <n> [win]\n"
|
||||
"LOG <NONE|ERROR|WARN|INFO|DEBUG|VERBOSE> RSSI RESET\n"
|
||||
"OTA <url> POWERTEST [dwell] IDENTIFY REBOOT FACTORY");
|
||||
return pos;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user