Files
Frame-rate-optimization/Common/sysconfig.c

112 lines
3.0 KiB
C
Raw Normal View History

2026-04-09 10:14:20 +08:00
#include "sysconfig.h"
#include "at32a423.h"
#include "bsp_flash.h"
#include "app_get_json.h"
#include "string.h"
flash_para_struct g_flash_para;
json_data_struct g_json_data;
sys_config_struct g_sys_config;
sys_staus_struct g_sys_staus;
const sys_config_struct default_config =
{
.output_mode = 1,
.output_ax = 12,
.output_ay = 12,
.min_trigger_res_value = 3000,
.max_trigger_res_value = 40000,
.div_trigger_res =2700
};
int save_sys_config(sys_config_struct *sys_config)
{
g_flash_para.output_mode = sys_config->output_mode;
g_flash_para.output_ax = sys_config->output_ax;
g_flash_para.output_ay = sys_config->output_ay;
g_flash_para.min_trigger_res_value = sys_config->min_trigger_res_value;
g_flash_para.max_trigger_res_value = sys_config->max_trigger_res_value;
g_flash_para.div_trigger_res = sys_config->div_trigger_res;
return save_config_params(&g_flash_para);
}
void init_sys_config(sys_config_struct *sys_config)
{
//save_sys_config(&default_config);
if(load_config_params(&g_flash_para) != 1)
{
memcpy((uint8_t *)sys_config,(uint8_t *)&default_config,sizeof(sys_config_struct));
save_sys_config(sys_config);
return ;
}
if(g_flash_para.min_trigger_res_value == 0xffff)
{
sys_config->min_trigger_res_value = default_config.min_trigger_res_value;
}
else
{
sys_config->min_trigger_res_value = g_flash_para.min_trigger_res_value;
}
if(g_flash_para.max_trigger_res_value == 0xffff)
{
sys_config->max_trigger_res_value = default_config.max_trigger_res_value;
}
else
{
sys_config->max_trigger_res_value = g_flash_para.max_trigger_res_value;
}
if(g_flash_para.div_trigger_res == 0xffff)
{
sys_config->div_trigger_res = default_config.div_trigger_res;
}
else
{
sys_config->div_trigger_res = g_flash_para.div_trigger_res;
}
if(g_flash_para.output_mode > 1)
{
sys_config->output_mode = default_config.output_mode;
}
else
{
sys_config->output_mode = g_flash_para.output_mode;
}
}
//ץȡjson<6F><6E>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
int cjson_get_sys_config(sys_config_struct *sys_config)
{
int result;
g_json_data.output_mode = sys_config->output_mode;
g_json_data.output_ax = sys_config->output_ax;
g_json_data.output_ay = sys_config->output_ay;
g_json_data.min_trigger_res_value = sys_config->min_trigger_res_value;
g_json_data.max_trigger_res_value = sys_config->max_trigger_res_value;
g_json_data.div_trigger_res = sys_config->div_trigger_res;
result = get_Json_data(&g_json_data);
if(result == 1){
memcpy(sys_config, &g_json_data, sizeof(sys_config_struct));
g_flash_para.output_mode=g_json_data.output_mode;
g_flash_para.output_ax=g_json_data.output_ax;
g_flash_para.output_ay=g_json_data.output_ay;
g_flash_para.min_trigger_res_value=g_json_data.min_trigger_res_value;
g_flash_para.max_trigger_res_value=g_json_data.max_trigger_res_value;
g_flash_para.div_trigger_res=g_json_data.div_trigger_res;
load_config_params(&g_flash_para);
}
return result;
}