This commit is contained in:
2026-01-06 12:13:55 +01:00
parent 0dd26fdcde
commit d33bda52d0
6 changed files with 22 additions and 20 deletions

View File

@ -11,6 +11,7 @@
#include "esp_system.h"
#include "nvs_flash.h"
#include "nvs.h"
#include "soc/gpio_num.h"
#include <string.h>
@ -26,6 +27,7 @@ static const char *TAG = "CONFIG";
#define HARDCODED_CONFIG_LED_STRIP_A_COUNT 7U
#define HARDCODED_CONFIG_LED_STRIP_B_COUNT 7U
#define HARDCODED_CONFIG_PWM_PIN 13U
#define HARDCODED_CONFIG_LOCALBTN_PIN GPIO_NUM_0
#endif
// Global state
@ -35,6 +37,7 @@ static config_t current_config = {
.led_count_strip_a = -1,
.led_count_strip_b = -1,
.pwm_pin = -1,
.localBtn_pin = -1,
.magic = CONFIG_MAGIC};
// NVS Functions
@ -61,7 +64,10 @@ static esp_err_t load_config_from_nvs(void)
ESP_LOGI(TAG, "Loaded config from NVS");
ESP_LOGI(TAG, " Strip A: GPIO%d", current_config.led_pin_strip_a);
ESP_LOGI(TAG, " Strip B: GPIO%d", current_config.led_pin_strip_b);
ESP_LOGI(TAG, " Strip A LED count: %d", current_config.led_count_strip_a);
ESP_LOGI(TAG, " Strip B LED count: %d", current_config.led_count_strip_b);
ESP_LOGI(TAG, " PWM Pin: GPIO%d", current_config.pwm_pin);
ESP_LOGI(TAG, " Local btn Pin: GPIO%d", current_config.localBtn_pin);
return ESP_OK;
}
@ -103,6 +109,7 @@ esp_err_t config_reset_config(void)
current_config.led_count_strip_a = -1;
current_config.led_count_strip_b = -1;
current_config.pwm_pin = -1;
current_config.localBtn_pin = -1;
current_config.magic = CONFIG_MAGIC;
return save_config_to_nvs();
@ -115,6 +122,7 @@ void config_get_config(config_t *const cnf)
cnf->led_count_strip_a = current_config.led_count_strip_a;
cnf->led_count_strip_b = current_config.led_count_strip_b;
cnf->pwm_pin = current_config.pwm_pin;
cnf->localBtn_pin = current_config.localBtn_pin;
}
esp_err_t config_update_config(const config_t *config)
@ -127,7 +135,7 @@ esp_err_t config_update_config(const config_t *config)
// Reinitialize if pins changed
bool pins_changed = (current_config.led_pin_strip_a != config->led_pin_strip_a) ||
(current_config.led_pin_strip_b != config->led_pin_strip_b) ||
(current_config.pwm_pin != config->pwm_pin);
(current_config.pwm_pin != config->pwm_pin); // TODO: Count? LocalBtn? Needed?
memcpy(&current_config, config, sizeof(config_t));
esp_err_t err = save_config_to_nvs();
@ -164,6 +172,7 @@ esp_err_t config_init(void)
current_config.led_count_strip_a = HARDCODED_CONFIG_LED_STRIP_A_COUNT;
current_config.led_count_strip_b = HARDCODED_CONFIG_LED_STRIP_B_COUNT;
current_config.pwm_pin = HARDCODED_CONFIG_PWM_PIN;
current_config.localBtn_pin = HARDCODED_CONFIG_LOCALBTN_PIN;
current_config.magic = CONFIG_MAGIC;
save_config_to_nvs();