#include "at32f403a_407.h"
#include "io_utils.h"
#include "FreeRTOS.h"
#include "task.h"
#include "settings_api.h"
#include "mux.h"
#include "analog_output.h"
#include <stdio.h>


bool save_mode = false;
static uint16_t counter = 0;

//
void save_mode_init(void)
{
    save_mode = (bool)settings.save_mode;
    save_mode ? mux_led_status(false) : mux_led_status(true);
}

//
void save_mode_set(bool state)
{
    save_mode = state;
    save_mode ? mux_led_status(false) : mux_led_status(true);
}

//
bool save_mode_get(void)
{
    return save_mode;
}

// Должна вызываться раз в секунду
void save_mode_inc_cnt(void)
{
    if (settings.save_mode)
        return;

    bool foo = counter++ > settings.save_delay ? true : false;
    save_mode_set(foo);
}

// Должна вызываться раз в секунду
void save_mode_set_with_counter(void)
{
    if (!settings.save_mode)
        return;
    
    if (counter++ > settings.save_delay) {
        if (!save_mode_get()) {
            save_mode_set(true);
#if (MAO_4)
            ao_save_update(true);
#endif            
        }

    }
}

//
void save_mode_reset_cnt(void)
{
    counter = 0;
    save_mode_set(false);
#if (MAO_4)    
    ao_save_update(false);
#endif    
}
