Рефакторинг флагов и добавление флага для автоматической или ручного сохранения настроек

This commit is contained in:
2026-02-28 17:23:19 +03:00
parent c4bcabdac9
commit 2e869315b8
2 changed files with 19 additions and 14 deletions

View File

@@ -105,25 +105,28 @@ void Settings_WriteSettings(SettingsTypeDef *settings)
#ifdef SETTINGS_USE_SETTINGS_FROM_BUFFER
// Сравниваем текущие настройки с буфером
for(int i = 0; i < settings->setarr_count; i++)
if(settings->f.settings_autosave) // если автосейв - проверяем и сохраняем сами
{
if(memcmp(settings->setarr[i].mem_ptr,
settings->setarr[i].real_ptr,
settings->setarr[i].length) != 0)
// Сравниваем текущие настройки с буфером
for(int i = 0; i < settings->setarr_count; i++)
{
settings->f.settings_need_to_update = 1;
break;
if(memcmp(settings->setarr[i].mem_ptr,
settings->setarr[i].real_ptr,
settings->setarr[i].length) != 0)
{
settings->f.settings_request_to_save = 1;
break;
}
}
}
#endif
// if(settings->f.settings_need_to_update)
// if(settings->f.settings_request_to_save)
// {
//// if(GPIO_Read_Switch(&MZKT_DISCIN.err_24V))
//// {
//// printf_memspi_err("Power Err, cancel writing");
//// settings->f.settings_need_to_update = 0;
//// settings->f.settings_request_to_save = 0;
//// update_start = 0;
//// return;
//// }
@@ -138,11 +141,12 @@ void Settings_WriteSettings(SettingsTypeDef *settings)
// update_start = 0;
// }
settings->f.settings_is_updated = 0;
if(settings->f.settings_need_to_update)
if(settings->f.settings_request_to_save)
{
// Сбрасываем флаг обновления
settings->f.settings_need_to_update = 0;
settings->f.settings_request_to_save = 0;
update_start = 0;
#ifdef SETTINGS_USE_SETTINGS_FROM_BUFFER
@@ -153,7 +157,7 @@ void Settings_WriteSettings(SettingsTypeDef *settings)
settings->setarr[i].real_ptr,
settings->setarr[i].length);
}
#endif
#endif
// Записываем настройки в память
WriteSettingsToMem(settings);