mirror of
https://github.com/skot/ESP-Miner.git
synced 2025-03-19 14:22:04 +01:00
135 lines
2.9 KiB
C
135 lines
2.9 KiB
C
#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) {
|
|
nvs_close(handle);
|
|
return strdup(default_value);
|
|
}
|
|
|
|
char * out = malloc(size);
|
|
err = nvs_get_str(handle, key, out, &size);
|
|
|
|
if (err != ESP_OK) {
|
|
free(out);
|
|
nvs_close(handle);
|
|
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);
|
|
}
|
|
|
|
nvs_close(handle);
|
|
}
|
|
|
|
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);
|
|
}
|
|
|
|
nvs_close(handle);
|
|
}
|
|
|
|
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) {
|
|
nvs_close(handle);
|
|
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);
|
|
}
|
|
nvs_close(handle);
|
|
}
|