ESP-Miner/main/nvs_config.c

138 lines
2.9 KiB
C
Raw Permalink Normal View History

#include "nvs_config.h"
#include "esp_log.h"
#include "nvs.h"
#include <string.h>
#define NVS_CONFIG_NAMESPACE "main"
static const char * TAG = "nvs_config";
char * nvs_config_get_string(const char * key, const char * default_value)
{
nvs_handle handle;
esp_err_t err;
err = nvs_open(NVS_CONFIG_NAMESPACE, NVS_READONLY, &handle);
if (err != ESP_OK) {
return strdup(default_value);
}
size_t size = 0;
err = nvs_get_str(handle, key, NULL, &size);
if (err != ESP_OK) {
return strdup(default_value);
}
char * out = malloc(size);
err = nvs_get_str(handle, key, out, &size);
if (err != ESP_OK) {
2023-08-27 12:32:20 -04:00
free(out);
return strdup(default_value);
}
nvs_close(handle);
return out;
}
void nvs_config_set_string(const char * key, const char * value)
{
nvs_handle handle;
esp_err_t err;
err = nvs_open(NVS_CONFIG_NAMESPACE, NVS_READWRITE, &handle);
if (err != ESP_OK) {
ESP_LOGW(TAG, "Could not open nvs");
return;
}
err = nvs_set_str(handle, key, value);
if (err != ESP_OK) {
ESP_LOGW(TAG, "Could not write nvs key: %s, value: %s", key, value);
return;
}
nvs_close(handle);
return;
}
uint16_t nvs_config_get_u16(const char * key, const uint16_t default_value)
{
nvs_handle handle;
esp_err_t err;
err = nvs_open(NVS_CONFIG_NAMESPACE, NVS_READONLY, &handle);
if (err != ESP_OK) {
return default_value;
}
uint16_t out;
err = nvs_get_u16(handle, key, &out);
nvs_close(handle);
if (err != ESP_OK) {
return default_value;
}
return out;
}
void nvs_config_set_u16(const char * key, const uint16_t value)
{
nvs_handle handle;
esp_err_t err;
err = nvs_open(NVS_CONFIG_NAMESPACE, NVS_READWRITE, &handle);
if (err != ESP_OK) {
ESP_LOGW(TAG, "Could not open nvs");
return;
}
err = nvs_set_u16(handle, key, value);
if (err != ESP_OK) {
ESP_LOGW(TAG, "Could not write nvs key: %s, value: %u", key, value);
return;
}
nvs_close(handle);
return;
}
uint64_t nvs_config_get_u64(const char * key, const uint64_t default_value)
{
nvs_handle handle;
esp_err_t err;
err = nvs_open(NVS_CONFIG_NAMESPACE, NVS_READONLY, &handle);
if (err != ESP_OK) {
return default_value;
}
uint64_t out;
err = nvs_get_u64(handle, key, &out);
if (err != ESP_OK) {
return default_value;
}
nvs_close(handle);
return out;
}
void nvs_config_set_u64(const char * key, const uint64_t value)
{
nvs_handle handle;
esp_err_t err;
err = nvs_open(NVS_CONFIG_NAMESPACE, NVS_READWRITE, &handle);
if (err != ESP_OK) {
ESP_LOGW(TAG, "Could not open nvs");
return;
}
err = nvs_set_u64(handle, key, value);
if (err != ESP_OK) {
ESP_LOGW(TAG, "Could not write nvs key: %s, value: %llu", key, value);
return;
}
nvs_close(handle);
return;
}