/**
 * \file config.c
 * \brief Модуль управления настройками устройства
 * \date 17 авг. 2015 г.
 * \author: Админ
 */

#include <avr/io.h>
#include <avr/eeprom.h>
#include "main_config.h"
#include "config.h"
#include <avr_helper.h>

config_t config;

static
EEMEM config_t ee_cfg = {
	.is_clear = 0,
	.debug_on = DEFAULT_DEBUG,
	.boudrate = DEFAULT_BOUDRATE,
	.delay_termo = DEFAULT_DELAY,
	.adc_bandgap_adj=0,
	.delay_wakeup=DEFAULT_DELAY_WAKEUP
};

/** Загрузка настроек
 *
 * @param cfg место хранения настроек
 */
uint8_t load_config(config_t *cfg){
	eeprom_read_block((void*)cfg, &ee_cfg, sizeof(config_t));
	if(cfg->is_clear){
		cfg->is_clear = 0;
		cfg->boudrate = DEFAULT_BOUDRATE;
		cfg->debug_on = DEFAULT_DEBUG;
		cfg->delay_termo = DEFAULT_DELAY;
		cfg->adc_bandgap_adj = 0;
		cfg->delay_wakeup=DEFAULT_DELAY_WAKEUP;
		save_config(cfg);
		return 0;
	}
return 1;
}

/** Сохранение настроек
 *
 * @param cfg место хранения настроек
 */
void save_config(config_t *cfg){
	eeprom_update_block((void*)cfg, &ee_cfg, sizeof(config_t));
}

