eikhner

config_defaults.h

Sep 16th, 2025 (edited)
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.11 KB | None | 0 0
  1. /**
  2.  * @file    config_defaults.h
  3.  * @brief   Фабричные (ROM) дефолтные значения конфигурации и хелперы.
  4.  * @date    2025-09-15
  5.  */
  6.  
  7. #ifndef CONFIG_DEFAULTS_H_
  8. #define CONFIG_DEFAULTS_H_
  9.  
  10. #include <stdint.h>
  11. #include <stdbool.h>
  12. #include "config_store.h"   /* ConfigPayload, CFG_* */
  13.  
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17.  
  18. /**
  19.  * @brief  Скопировать «фабричные» дефолты для указанной версии payload.
  20.  * @param  version     Версия формата (обычно = CFG_VERSION в проекте).
  21.  * @param  out_payload Куда положить дефолтные значения.
  22.  * @return true, если версия поддержана и out заполнен.
  23.  *
  24.  * @note   Если версия неизвестна — функция вернёт false (можно обработать отдельно).
  25.  */
  26. bool config_defaults_get(uint8_t version, ConfigPayload *out_payload);
  27.  
  28. /**
  29.  * @brief  Нормализовать/проверить конфигурацию (границы, взаимосвязи).
  30.  * @param  io_payload  Конфигурация для проверки/починки in-place.
  31.  * @return void
  32.  *
  33.  * @note   Держи все «правила» в одном месте: min/max порогов, порядок t1<=t2<=... и т.п.
  34.  */
  35. void config_sanitize(ConfigPayload *io_payload);
  36.  
  37. /**
  38.  * @brief  Сброс к фабричным настройкам: положить дефолты и сохранить в EEPROM.
  39.  * @param  version  Версия формата.
  40.  * @return true, если запись прошла успешно (или EEPROM недоступна, но дефолты в RAM готовы).
  41.  *
  42.  * @note   Если EEPROM недоступна (init/is_ready=false), просто возвращаем false —
  43.  *         но вызвавший код всё равно может продолжить работу с дефолтами в RAM.
  44.  */
  45. bool config_factory_reset(uint8_t version);
  46.  
  47. #ifdef __cplusplus
  48. }
  49. #endif
  50.  
  51. #endif /* CONFIG_DEFAULTS_H_ */
  52.  
Advertisement
Add Comment
Please, Sign In to add comment