CLI: factory reset
This commit is contained in:
parent
3a89455938
commit
23fb0b3862
|
@ -1,14 +1,16 @@
|
|||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include "cli.h"
|
||||
#include "nvs.h"
|
||||
#include "helpers.h"
|
||||
#include "cli-args.h"
|
||||
#include "cli-commands.h"
|
||||
#include "helpers.h"
|
||||
|
||||
void cli_help(Cli* cli, mstring_t* args);
|
||||
void cli_gpio_set(Cli* cli, mstring_t* args);
|
||||
void cli_gpio_get(Cli* cli, mstring_t* args);
|
||||
void cli_device_info(Cli* cli, mstring_t* args);
|
||||
void cli_factory_reset(Cli* cli, mstring_t* args);
|
||||
void cli_wifi_scan(Cli* cli, mstring_t* args);
|
||||
|
||||
const CliItem cli_items[] = {
|
||||
|
@ -40,6 +42,10 @@ const CliItem cli_items[] = {
|
|||
.name = "device_info",
|
||||
.callback = cli_device_info,
|
||||
},
|
||||
{
|
||||
.name = "factory_reset",
|
||||
.callback = cli_factory_reset,
|
||||
},
|
||||
};
|
||||
|
||||
size_t cli_items_count = COUNT_OF(cli_items);
|
||||
|
@ -52,4 +58,11 @@ void cli_help(Cli* cli, mstring_t* args) {
|
|||
cli_write_eol(cli);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void cli_factory_reset(Cli* cli, mstring_t* args) {
|
||||
cli_write_str(cli, "Erasing NVS");
|
||||
cli_write_eol(cli);
|
||||
nvs_erase();
|
||||
cli_write_str(cli, "OK");
|
||||
}
|
32
main/nvs.c
32
main/nvs.c
|
@ -6,17 +6,39 @@
|
|||
#define NVS_STORE "nvs_storage"
|
||||
|
||||
void nvs_init(void) {
|
||||
ESP_LOGI(TAG, "init");
|
||||
esp_err_t ret = nvs_flash_init();
|
||||
ESP_LOGI(TAG, "init " NVS_DEFAULT_PART_NAME);
|
||||
esp_err_t ret = nvs_flash_init_partition(NVS_DEFAULT_PART_NAME);
|
||||
if(ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
||||
ESP_LOGI(TAG, "erasing");
|
||||
ESP_ERROR_CHECK(nvs_flash_erase());
|
||||
ret = nvs_flash_init();
|
||||
ESP_LOGI(TAG, "erasing " NVS_DEFAULT_PART_NAME);
|
||||
ESP_ERROR_CHECK(nvs_flash_erase_partition(NVS_DEFAULT_PART_NAME));
|
||||
ret = nvs_flash_init_partition(NVS_DEFAULT_PART_NAME);
|
||||
}
|
||||
ESP_ERROR_CHECK(ret);
|
||||
|
||||
ESP_LOGI(TAG, "init " NVS_STORE);
|
||||
ret = nvs_flash_init_partition(NVS_STORE);
|
||||
if(ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
||||
ESP_LOGI(TAG, "erasing " NVS_STORE);
|
||||
ESP_ERROR_CHECK(nvs_flash_erase_partition(NVS_STORE));
|
||||
ret = nvs_flash_init_partition(NVS_STORE);
|
||||
}
|
||||
ESP_ERROR_CHECK(ret);
|
||||
|
||||
ESP_LOGI(TAG, "init done");
|
||||
}
|
||||
|
||||
void nvs_erase(void) {
|
||||
ESP_LOGI(TAG, "erasing " NVS_DEFAULT_PART_NAME);
|
||||
ESP_ERROR_CHECK(nvs_flash_erase());
|
||||
ESP_ERROR_CHECK(nvs_flash_init());
|
||||
|
||||
ESP_LOGI(TAG, "erasing " NVS_STORE);
|
||||
ESP_ERROR_CHECK(nvs_flash_erase_partition(NVS_STORE));
|
||||
ESP_ERROR_CHECK(nvs_flash_init_partition(NVS_STORE));
|
||||
|
||||
ESP_LOGI(TAG, "erasing done");
|
||||
}
|
||||
|
||||
esp_err_t nvs_save_string(const char* key, const mstring_t* value) {
|
||||
nvs_handle_t nvs_handle;
|
||||
esp_err_t err;
|
||||
|
|
|
@ -1,7 +1,16 @@
|
|||
/**
|
||||
* @file nvs.h
|
||||
* @author Sergey Gavrilov (who.just.the.doctor@gmail.com)
|
||||
* @version 1.0
|
||||
* @date 2021-12-03
|
||||
*
|
||||
* NVS management
|
||||
*/
|
||||
#pragma once
|
||||
#include <m-string.h>
|
||||
#include <esp_err.h>
|
||||
|
||||
void nvs_init(void);
|
||||
void nvs_erase(void);
|
||||
esp_err_t nvs_save_string(const char* key, const mstring_t* value);
|
||||
esp_err_t nvs_load_string(const char* key, mstring_t* value);
|
Loading…
Reference in New Issue