Nvs: separate config management
This commit is contained in:
parent
2e61d53cd2
commit
a7f30853ec
|
@ -0,0 +1,125 @@
|
|||
#include <m-string.h>
|
||||
#include "nvs.h"
|
||||
#include "nvs-config.h"
|
||||
|
||||
#define WIFI_MODE_KEY "wifi_mode"
|
||||
#define WIFI_AP_SSID_KEY "wifi_ap_ssid"
|
||||
#define WIFI_AP_PASS_KEY "wifi_ap_pass"
|
||||
#define WIFI_STA_SSID_KEY "wifi_sta_ssid"
|
||||
#define WIFI_STA_PASS_KEY "wifi_sta_pass"
|
||||
|
||||
#define ESP_WIFI_DEFAULT_SSID "blackmagic"
|
||||
#define ESP_WIFI_DEFAULT_PASS "iamwitcher"
|
||||
|
||||
esp_err_t nvs_config_set_wifi_mode(WiFiMode value) {
|
||||
mstring_t* mode = mstring_alloc();
|
||||
|
||||
switch(value) {
|
||||
case WiFiModeAP:
|
||||
mstring_set(mode, CFG_WIFI_MODE_AP);
|
||||
break;
|
||||
case WiFiModeSTA:
|
||||
mstring_set(mode, CFG_WIFI_MODE_STA);
|
||||
break;
|
||||
}
|
||||
|
||||
esp_err_t err = nvs_save_string(WIFI_MODE_KEY, mode);
|
||||
|
||||
mstring_free(mode);
|
||||
return err;
|
||||
}
|
||||
|
||||
esp_err_t nvs_config_set_ap_ssid(const mstring_t* ssid) {
|
||||
esp_err_t err = ESP_FAIL;
|
||||
|
||||
if(mstring_size(ssid) > 0 && mstring_size(ssid) <= 32) {
|
||||
err = nvs_save_string(WIFI_AP_SSID_KEY, ssid);
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
esp_err_t nvs_config_set_ap_pass(const mstring_t* pass) {
|
||||
esp_err_t err = ESP_FAIL;
|
||||
|
||||
if(mstring_size(pass) == 0 || (mstring_size(pass) >= 8 && mstring_size(pass) <= 64)) {
|
||||
err = nvs_save_string(WIFI_AP_PASS_KEY, pass);
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
esp_err_t nvs_config_set_sta_ssid(const mstring_t* ssid) {
|
||||
esp_err_t err = ESP_FAIL;
|
||||
|
||||
if(mstring_size(ssid) > 0 && mstring_size(ssid) <= 32) {
|
||||
err = nvs_save_string(WIFI_STA_SSID_KEY, ssid);
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
esp_err_t nvs_config_set_sta_pass(const mstring_t* pass) {
|
||||
esp_err_t err = ESP_FAIL;
|
||||
|
||||
if(mstring_size(pass) == 0 || (mstring_size(pass) >= 8 && mstring_size(pass) <= 64)) {
|
||||
err = nvs_save_string(WIFI_STA_PASS_KEY, pass);
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
esp_err_t nvs_config_get_wifi_mode(WiFiMode* value) {
|
||||
mstring_t* mode = mstring_alloc();
|
||||
esp_err_t err = nvs_load_string(WIFI_MODE_KEY, mode);
|
||||
|
||||
if(err == ESP_OK && mstring_cmp_cstr(mode, CFG_WIFI_MODE_STA) == 0) {
|
||||
*value = WiFiModeSTA;
|
||||
} else {
|
||||
// AP mode by default
|
||||
*value = WiFiModeAP;
|
||||
}
|
||||
|
||||
mstring_free(mode);
|
||||
return err;
|
||||
}
|
||||
|
||||
esp_err_t nvs_config_get_ap_ssid(mstring_t* ssid) {
|
||||
esp_err_t err = nvs_load_string(WIFI_AP_SSID_KEY, ssid);
|
||||
|
||||
if(err != ESP_OK) {
|
||||
mstring_set(ssid, ESP_WIFI_DEFAULT_SSID);
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
esp_err_t nvs_config_get_ap_pass(mstring_t* pass) {
|
||||
esp_err_t err = nvs_load_string(WIFI_AP_PASS_KEY, pass);
|
||||
|
||||
if(err != ESP_OK) {
|
||||
mstring_set(pass, ESP_WIFI_DEFAULT_PASS);
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
esp_err_t nvs_config_get_sta_ssid(mstring_t* ssid) {
|
||||
esp_err_t err = nvs_load_string(WIFI_STA_SSID_KEY, ssid);
|
||||
|
||||
if(err != ESP_OK) {
|
||||
mstring_set(ssid, ESP_WIFI_DEFAULT_SSID);
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
esp_err_t nvs_config_get_sta_pass(mstring_t* pass) {
|
||||
esp_err_t err = nvs_load_string(WIFI_STA_PASS_KEY, pass);
|
||||
|
||||
if(err != ESP_OK) {
|
||||
mstring_set(pass, ESP_WIFI_DEFAULT_PASS);
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
/**
|
||||
* @file nvs-config.h
|
||||
* @author Sergey Gavrilov (who.just.the.doctor@gmail.com)
|
||||
* @version 1.0
|
||||
* @date 2021-12-03
|
||||
*
|
||||
* Configuration helper
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <m-string.h>
|
||||
#include <esp_err.h>
|
||||
|
||||
#define CFG_WIFI_MODE_AP "AP"
|
||||
#define CFG_WIFI_MODE_STA "STA"
|
||||
|
||||
typedef enum {
|
||||
WiFiModeAP, // host of a WiFi network
|
||||
WiFiModeSTA, // connected to existing WiFi AP
|
||||
} WiFiMode;
|
||||
|
||||
esp_err_t nvs_config_set_wifi_mode(WiFiMode value);
|
||||
esp_err_t nvs_config_set_ap_ssid(const mstring_t* ssid);
|
||||
esp_err_t nvs_config_set_ap_pass(const mstring_t* pass);
|
||||
esp_err_t nvs_config_set_sta_ssid(const mstring_t* ssid);
|
||||
esp_err_t nvs_config_set_sta_pass(const mstring_t* pass);
|
||||
|
||||
esp_err_t nvs_config_get_wifi_mode(WiFiMode* value);
|
||||
esp_err_t nvs_config_get_ap_ssid(mstring_t* ssid);
|
||||
esp_err_t nvs_config_get_ap_pass(mstring_t* pass);
|
||||
esp_err_t nvs_config_get_sta_ssid(mstring_t* ssid);
|
||||
esp_err_t nvs_config_get_sta_pass(mstring_t* pass);
|
Loading…
Reference in New Issue