Browse Source

Merge ef7943c3c0 into adc631f315

pull/2720/merge
NickDunklee 19 hours ago
committed by GitHub
parent
commit
b27d7106c2
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 44
      examples/companion_radio/MyMesh.cpp

44
examples/companion_radio/MyMesh.cpp

@ -2021,9 +2021,17 @@ void MyMesh::enterCLIRescue() {
_cli_rescue = true;
cli_command[0] = 0;
Serial.println("========= CLI Rescue =========");
Serial.println("Commands: set pin <n>, rebuild, erase, reboot, ls, cat, rm");
#ifdef WIFI_SSID
Serial.println("WiFi: wifi_ssid <ssid>, wifi_pwd <pwd>, wifi_commit, wifi_clear");
#endif
}
void MyMesh::checkCLIRescueCmd() {
#ifdef WIFI_SSID
static char staged_ssid[33] = {0};
static char staged_pwd[65] = {0};
#endif
int len = strlen(cli_command);
while (Serial.available() && len < sizeof(cli_command)-1) {
char c = Serial.read();
@ -2185,6 +2193,42 @@ void MyMesh::checkCLIRescueCmd() {
}
#ifdef WIFI_SSID
} else if (memcmp(cli_command, "wifi_ssid ", 10) == 0) {
strncpy(staged_ssid, &cli_command[10], sizeof(staged_ssid) - 1);
staged_ssid[sizeof(staged_ssid) - 1] = 0;
Serial.printf(" > SSID staged: \"%s\" (not saved yet, use wifi_commit)\n", staged_ssid);
} else if (memcmp(cli_command, "wifi_pwd ", 9) == 0) {
strncpy(staged_pwd, &cli_command[9], sizeof(staged_pwd) - 1);
staged_pwd[sizeof(staged_pwd) - 1] = 0;
Serial.println(" > Password staged (not saved yet, use wifi_commit)");
} else if (strcmp(cli_command, "wifi_commit") == 0) {
if (staged_ssid[0] == 0 || staged_pwd[0] == 0) {
Serial.println(" Error: stage both wifi_ssid and wifi_pwd before committing");
} else {
File f = _store->getPrimaryFS()->open("/wifi_config", "w", true);
if (f) {
f.print(staged_ssid); f.print('\n');
f.print(staged_pwd); f.print('\n');
f.close();
Serial.printf(" > Saved SSID \"%s\" to flash, rebooting...\n", staged_ssid);
board.reboot();
} else {
Serial.println(" Error: failed to write /wifi_config");
}
}
} else if (strcmp(cli_command, "wifi_clear") == 0) {
_store->getPrimaryFS()->remove("/wifi_config");
Serial.println(" > /wifi_config removed, using compiled-in defaults on next boot, rebooting...");
board.reboot();
} else if (strcmp(cli_command, "wifi_show") == 0) {
Serial.printf(" Staged SSID: \"%s\"\n", staged_ssid[0] ? staged_ssid : "(none)");
Serial.printf(" Staged PWD: %s\n", staged_pwd[0] ? "(set)" : "(none)");
bool has_config = _store->getPrimaryFS()->exists("/wifi_config");
Serial.printf(" /wifi_config on flash: %s\n", has_config ? "yes" : "no (using compiled-in defaults)");
#endif
} else if (strcmp(cli_command, "reboot") == 0) {
board.reboot(); // doesn't return
} else {

Loading…
Cancel
Save