Add NVS support for relay channel config persistence
- Introduced NVS configuration options in Kconfig. - Implemented NVS initialization and deinitialization in relay_chn_core. - Added functions for storing and retrieving relay channel direction and tilt sensitivity in NVS. - Updated relay_chn_tilt and relay_chn_output to utilize NVS for state management. - Created relay_chn_nvs.c and relay_chn_nvs.h for NVS-related functionalities. Closes #1074.
This commit is contained in:
@@ -11,9 +11,15 @@
|
||||
#include "relay_chn_output.h"
|
||||
#include "relay_chn_run_info.h"
|
||||
#include "relay_chn_ctl.h"
|
||||
|
||||
#if RELAY_CHN_ENABLE_TILTING == 1
|
||||
#include "relay_chn_tilt.h"
|
||||
#endif
|
||||
|
||||
#if RELAY_CHN_ENABLE_NVS == 1
|
||||
#include "relay_chn_nvs.h"
|
||||
#endif
|
||||
|
||||
#include "relay_chn_core.h"
|
||||
|
||||
|
||||
@@ -89,6 +95,11 @@ esp_err_t relay_chn_create(const uint8_t* gpio_map, uint8_t gpio_count)
|
||||
ESP_RETURN_ON_FALSE(gpio_map != NULL, ESP_ERR_INVALID_ARG, TAG, "gpio_map cannot be NULL");
|
||||
|
||||
esp_err_t ret;
|
||||
#if RELAY_CHN_ENABLE_NVS == 1
|
||||
ret = relay_chn_nvs_init();
|
||||
ESP_RETURN_ON_ERROR(ret, TAG, "Failed to initialize NVS for relay channel");
|
||||
#endif
|
||||
|
||||
// Initialize the output
|
||||
ret = relay_chn_output_init(gpio_map, gpio_count);
|
||||
ESP_RETURN_ON_ERROR(ret, TAG, "Failed to initialize relay channel outputs");
|
||||
@@ -137,6 +148,10 @@ void relay_chn_destroy(void)
|
||||
relay_chn_ctl_deinit();
|
||||
relay_chn_output_deinit();
|
||||
|
||||
#if RELAY_CHN_ENABLE_NVS == 1
|
||||
relay_chn_nvs_deinit();
|
||||
#endif
|
||||
|
||||
// Destroy the event loop
|
||||
esp_event_loop_delete(relay_chn_event_loop);
|
||||
relay_chn_event_loop = NULL;
|
||||
|
||||
Reference in New Issue
Block a user