#ifndef POD_SETTINGS_H #define POD_SETTINGS_H #include "bosch456.h" #include "esp_err.h" #include #include /** Initialize NVS (idempotent) and log stored settings. Call once early in app_main. */ esp_err_t pod_settings_init(void); /** Persist local accelerometer deadzone (LSB per axis). */ esp_err_t pod_settings_save_accel_deadzone(uint32_t deadzone_lsb); /** Load deadzone from NVS, or BMA456_DEFAULT_ACCEL_DEADZONE if unset. */ uint32_t pod_settings_load_accel_deadzone(void); /** Apply NVS deadzone to BMA456 when the sensor is present. */ void pod_settings_apply_accel_deadzone(void); /** Persist local BMA456 tap detection config. */ esp_err_t pod_settings_save_tap_config(const bma456_tap_config_t *cfg); /** * Load tap config from NVS into *cfg_out. * Returns true when a valid blob was loaded; false → compile-time defaults. */ bool pod_settings_load_tap_config(bma456_tap_config_t *cfg_out); /** Apply NVS tap config to BMA456 when the sensor is present. */ void pod_settings_apply_tap_config(void); /** LiPo under-voltage latch persisted across reboot (software UV protection). */ bool pod_settings_is_uv_latched(void); esp_err_t pod_settings_set_uv_latched(bool latched); esp_err_t pod_settings_clear_uv_latched(void); #endif