// // Created by MightyPork on 2018/12/08. // #include #include #include #include #include #include "console/cmd_common.h" #include static int cmd_factory_reset(console_ctx_t *ctx, cmd_signature_t *reg) { static struct { struct arg_str *magic; struct arg_end *end; } cmd_args; if (reg) { cmd_args.magic = arg_str1(NULL, NULL, "", "Passphrase to prevent accidental erase. Must be 'confirm'"); cmd_args.end = arg_end(2); reg->argtable = &cmd_args; reg->command = "factory_reset"; reg->help = "Wipe non-volatile data memory, restoring everything to defaults."; return 0; } if (streq(cmd_args.magic->sval[0], "confirm")) { nvs_flash_erase(); console_printf("Non-volatile memory erased.\r\n" "Restarting to apply changes...\r\n\r\n"); vTaskDelay(pdMS_TO_TICKS(500)); esp_restart(); } else { console_printf("Incorrect passphrase.\r\n"); return 1; } return 0; } void register_cmd_factory_reset(void) { console_cmd_register(cmd_factory_reset, "factory_reset"); }