#include "at32f403a_407.h" 
#include "settings_api.h"
#include "settings_dio_api.h"


//
void settings_dio_set_all_default(void)
{
    // Дискретные/счетные входы
    settings_din_def(&settings);
    
    // Выходы
    settings_do_def(&settings);
    
    // Безопасный режим
    settings.save_mode = 1; 
    
    // Время ожидания опроса (сек.)
    settings.save_delay = 60;
    
    // Время ведения архива по каждому каналу (сек.)
    for (uint8_t i = 0; i < ARCH_CH_NUMBER; i++) {
        settings.period_archive[i] = 3600;
    }
}

// Установить параметры дискретных входов по умолчанию
void settings_din_def(settings_t *settings)
{
    settings->di_mode_bits = 0;
    settings->di_norm_state_bits = 0;
    
    for (int i = 0; i < DI_NUMBER; i++) {
        settings->di_debounce[i] = 50;
    }
}

// Выходы
void settings_do_def(settings_t *settings)
{
    settings->do_mode_bits = 0; // режим работы выхода (обычный выход)
    settings->do_bits = 0;      // последнее сохраненное значение 
    settings->do_save_bits = 0;
    
    for (uint8_t i = 0; i < DO_NUMBER; i++)
    {
        settings->do_pwm[i] = 30;
        settings->do_pwm_save[i] = 30; // значение на выходах в бесопасном режиме работы
        settings->do_pwm_period[i] = 50;
        settings->do_pwm_period_save[i] = 50;
    }
}