sggt/App/APP_WU/Src/app_screen_setting.c

889 lines
35 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "app_screen_setting.h"
TABVIEW_DATA tabdata; //设置页面参数初始化
int32_t color_table[7] =
{
COLOR_BLUE_VALUE,
COLOR_DARK_BLUE_VALUE,
COLOR_YELLOW_VALUE,
COLOR_GREEN_VALUE,
COLOR_RED_VALUE,
COLOR_PURPLE_VALUE,
COLOR_BLACK_VALUE
};
//设置菜单数据初始化
void tab_data_init(void)
{
tabdata.item_cursor = ITEM_0; //选项卡的游标(焦点)
tabdata.item_cursor_prv = ITEM_0; //前一刻的选项卡游标
tabdata.item_page = 1; //当前页
tabdata.item_page_prv = 1; //前一页
tabdata.content_cursor = 0; //某一选项卡内部的游标
tabdata.content_cursor_prv = 99; //前一刻的~
tabdata.content_focus = 0; //默认无焦点
tabdata.current_content = CONTENT_EMPTY; //当前指向内容,枚举类型
//EEPROM部分
eeprom_item_data_init();
//ITEMS_0 选项卡0注释项位于EERPOM读取
tabdata.item0_page0_vunit = VOLTAGE_V; //电压单位
tabdata.item0_page1_TCtype = TC_K; //默认为K类型的热电偶
//ITEMS_1部分内容位于EERPOM读取
//ITEMS_2部分内容位于EERPOM读取
tabdata.item2_page0_saveflag = 0;
memset(tabdata.log_time, 0, sizeof(tabdata.log_time));
memset(tabdata.input_log_value, 0, sizeof(tabdata.input_log_value));
memset(tabdata.input_log_unit, 0, sizeof(tabdata.input_log_unit));
memset(tabdata.output_log_value, 0, sizeof(tabdata.output_log_value));
memset(tabdata.output_log_unit, 0, sizeof(tabdata.output_log_unit));
sprintf(tabdata.log_time[0], "00:00:00");
tabdata.input_log_unit[0] = m5data.input_mode_type;
tabdata.output_log_unit[0] = m5data.output_mode_type;
tabdata.item2_page0_resetflag = 0;
//ITEMS_3部分内容位于EERPOM读取
tabdata.item3_page0_lightflag = 0; //照明状态标志0熄灭1开启
LIGHT_OFF;
}
//选项卡EEPROM部分数据初始化
void eeprom_item_data_init(void)
{
if(tabdata.item2_page0_resetflag != 1)
{
//判断eeprom内是否存在数据
if(eeprom_device_check() == 1)
{
eeprom_dataread();
}
else
{
//针对不存在数据的情况在eeprom_device_check()中已经进行了处理
return;
}
}
//读取过程中出现过错误,或者触发复位
if( (system_sts.eeprom_read_error == 1)||(tabdata.item2_page0_resetflag == 1) )
{
tabdata.item0_page0_vup[0] = VOL[0].up; //电压V上限
tabdata.item0_page0_vlow[0] = VOL[0].low; //电压V下限
tabdata.item0_page0_vup[1] = VOL[1].up; //电压mV上限
tabdata.item0_page0_vlow[1] = VOL[1].low; //电压mV下限
tabdata.item0_page0_cup = CUR.up; //电流上限
tabdata.item0_page0_clow = CUR.low; //电流下限
tabdata.item0_page0_rup = RES.up; //电阻上限
tabdata.item0_page1_rlow = RES.low; //电阻下限
tabdata.item0_page1_fup = FRE.up; //频率上限
tabdata.item0_page1_flow = FRE.low; //频率下限
tabdata.item0_page1_TCup[0] = TC[0].up; //TCK上限
tabdata.item0_page1_TClow[0] = TC[0].low; //TCK下限
tabdata.item0_page1_TCup[1] = TC[1].up; //TCS上限
tabdata.item0_page1_TClow[1] = TC[1].low; //TCS下限
tabdata.item0_page1_TCup[2] = TC[2].up; //TCN上限
tabdata.item0_page1_TClow[2] = TC[2].low; //TCN下限
tabdata.item0_page1_TCup[3] = TC[3].up; //TCB上限
tabdata.item0_page1_TClow[3] = TC[3].low; //TCB下限
tabdata.item0_page1_TCup[4] = TC[4].up; //TCE上限
tabdata.item0_page1_TClow[4] = TC[4].low; //TCE下限
tabdata.item0_page1_TCup[5] = TC[5].up; //TCJ上限
tabdata.item0_page1_TClow[5] = TC[5].low; //TCJ下限
tabdata.item0_page1_TCup[6] = TC[6].up; //TCR上限
tabdata.item0_page1_TClow[6] = TC[6].low; //TCR下限
tabdata.item0_page1_TCup[7] = TC[7].up; //TCT上限
tabdata.item0_page1_TClow[7] = TC[7].low; //TCT下限
tabdata.item0_page2_RTDup = RTD.up; //RTD上限
tabdata.item0_page2_RTDlow = RTD.low; //RTD下限
tabdata.item1_page0_sample_interval = 1500; //采样间隔
tabdata.item1_page0_plot_num = 5; //描点数量
tabdata.item1_page0_color_input = COLOR_YELLOW; //输入曲线颜色
tabdata.item1_page0_color_output = COLOR_BLUE; //输出曲线颜色
tabdata.item3_page0_language = MENU_SIMPLYFY_CHINESE; //语言选择
//针对复位的情况追加进行保存
if(tabdata.item2_page0_resetflag == 1)
{
//eeprom_datasave();
eeprom_datasave_changed();
}
}
}
void setting_items_check(ITEMS cursor, ITEMS cursor_prv)
{
tabdata.item_page = 1;
//操作选项卡
switch (cursor) //点亮选项卡刷新当前选项卡内容至第1页
{
case ITEM_0:
{
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_s0, lv_color_hex(COLOR_ITEMS_CHECKED), LV_PART_MAIN|LV_STATE_DEFAULT);
setting_items_page(ITEM_0, 1);
}
break;
case ITEM_1:
{
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_s1, lv_color_hex(COLOR_ITEMS_CHECKED), LV_PART_MAIN|LV_STATE_DEFAULT);
setting_items_page(ITEM_1, 1);
}
break;
case ITEM_2:
{
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_s2, lv_color_hex(COLOR_ITEMS_CHECKED), LV_PART_MAIN|LV_STATE_DEFAULT);
setting_items_page(ITEM_2, 1);
}
break;
case ITEM_3:
{
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_s3, lv_color_hex(COLOR_ITEMS_CHECKED), LV_PART_MAIN|LV_STATE_DEFAULT);
setting_items_page(ITEM_3, 1);
}
break;
default:
break;
}
switch (cursor_prv) //熄灭前一时刻选项卡,并隐藏选项卡内容(已在 setting_items_page 中实现)
{
case ITEM_0:
{
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_s0, lv_color_hex(COLOR_ITEMS_UNCHECKED), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case ITEM_1:
{
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_s1, lv_color_hex(COLOR_ITEMS_UNCHECKED), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case ITEM_2:
{
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_s2, lv_color_hex(COLOR_ITEMS_UNCHECKED), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case ITEM_3:
{
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_s3, lv_color_hex(COLOR_ITEMS_UNCHECKED), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
default:
break;
}
}
//当前选项卡内容翻页隐藏当前页显示目标页page
void setting_items_page(ITEMS ite, uint8_t page)
{
//特殊处理,避免其他选项卡也被染上颜色
if(ite != ITEM_1)
{
set_obj_color(guider_ui.screen_setting_label_21, 7);
set_obj_color(guider_ui.screen_setting_label_31, 7);
}
switch (ite)
{
case ITEM_0:
{
//启用所需组件
if( lv_obj_has_flag(guider_ui.screen_setting_label_00, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_00, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_01, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_01, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_10, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_10, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_11, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_11, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_20, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_20, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_21, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_21, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_30, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_30, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_31, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_31, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_40, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_40, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_41, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_41, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_50, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_50, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_51, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_51, LV_OBJ_FLAG_HIDDEN); };
//显示目标页
switch (page)
{
case 1:
{
switch (tabdata.item3_page0_language)
{
case MENU_SIMPLYFY_CHINESE:
{
lv_label_set_text(guider_ui.screen_setting_label_00, "电压单位");
lv_label_set_text(guider_ui.screen_setting_label_10, "电压上限");
lv_label_set_text(guider_ui.screen_setting_label_20, "电压下限");
lv_label_set_text(guider_ui.screen_setting_label_30, "电流上限");
lv_label_set_text(guider_ui.screen_setting_label_40, "电流下限");
lv_label_set_text(guider_ui.screen_setting_label_50, "电阻上限");
}
break;
case MENU_ENGLISH:
{
lv_label_set_text(guider_ui.screen_setting_label_00, "Voltage unit");
lv_label_set_text(guider_ui.screen_setting_label_10, "Voltage max");
lv_label_set_text(guider_ui.screen_setting_label_20, "Voltage min");
lv_label_set_text(guider_ui.screen_setting_label_30, "Current max");
lv_label_set_text(guider_ui.screen_setting_label_40, "Current min");
lv_label_set_text(guider_ui.screen_setting_label_50, "Res max");
}
break;
default:
break;
}
set_item0_text(VOL_UNIT_SET);
set_item0_text(VOL_UP_SET);
set_item0_text(VOL_LOW_SET);
set_item0_text(CURRENT_UP_SET);
set_item0_text(CURRENT_LOW_SET);
set_item0_text(RES_UP_SET);
}
break;
case 2:
{
switch (tabdata.item3_page0_language)
{
case MENU_SIMPLYFY_CHINESE:
{
lv_label_set_text(guider_ui.screen_setting_label_00, "电阻下限");
lv_label_set_text(guider_ui.screen_setting_label_10, "频率上限");
lv_label_set_text(guider_ui.screen_setting_label_20, "频率下限");
lv_label_set_text(guider_ui.screen_setting_label_30, "热电偶类型");
lv_label_set_text(guider_ui.screen_setting_label_40, "热电偶上限");
lv_label_set_text(guider_ui.screen_setting_label_50, "热电偶下限");
}
break;
case MENU_ENGLISH:
{
lv_label_set_text(guider_ui.screen_setting_label_00, "Res min");
lv_label_set_text(guider_ui.screen_setting_label_10, "Freq max");
lv_label_set_text(guider_ui.screen_setting_label_20, "Freq min");
lv_label_set_text(guider_ui.screen_setting_label_30, "TC type");
lv_label_set_text(guider_ui.screen_setting_label_40, "TC min");
lv_label_set_text(guider_ui.screen_setting_label_50, "TC max");
}
break;
default:
break;
}
set_item0_text(TC_LOW_SET);
set_item0_text(TC_UP_SET);
set_item0_text(TC_TYPE_SET);
set_item0_text(FRE_LOW_SET);
set_item0_text(FRE_UP_SET);
set_item0_text(RES_LOW_SET);
}
break;
case 3:
{
switch (tabdata.item3_page0_language)
{
case MENU_SIMPLYFY_CHINESE:
{
lv_label_set_text(guider_ui.screen_setting_label_00, "热电阻上限");
lv_label_set_text(guider_ui.screen_setting_label_10, "热电阻下限");
}
break;
case MENU_ENGLISH:
{
lv_label_set_text(guider_ui.screen_setting_label_00, "RTD min");
lv_label_set_text(guider_ui.screen_setting_label_10, "RTD max");
}
break;
default:
break;
}
set_item0_text(RTD_UP_SET);
set_item0_text(RTD_LOW_SET);
//隐藏多余组件
lv_obj_add_flag(guider_ui.screen_setting_label_20, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_21, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_30, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_31, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_40, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_41, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_50, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_51, LV_OBJ_FLAG_HIDDEN);
}
break;
default:
break;
}
//更新页码
set_item0_text(PAGE_PV_ITEM_0);
}
break;
case ITEM_1:
{
//启用所需组件
if( lv_obj_has_flag(guider_ui.screen_setting_label_00, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_00, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_01, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_01, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_10, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_10, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_11, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_11, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_20, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_20, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_21, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_21, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_30, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_30, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_31, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_31, LV_OBJ_FLAG_HIDDEN); };
//显示目标页
switch (page)
{
case 1:
{
switch (tabdata.item3_page0_language)
{
case MENU_SIMPLYFY_CHINESE:
{
lv_label_set_text(guider_ui.screen_setting_label_00, "采样间隔");
lv_label_set_text(guider_ui.screen_setting_label_10, "描点数量");
lv_label_set_text(guider_ui.screen_setting_label_20, "颜色-输入");
lv_label_set_text(guider_ui.screen_setting_label_30, "颜色-输出");
}
break;
case MENU_ENGLISH:
{
lv_label_set_text(guider_ui.screen_setting_label_00, "Plot gap");
lv_label_set_text(guider_ui.screen_setting_label_10, "Plot count");
lv_label_set_text(guider_ui.screen_setting_label_20, "Color-input");
lv_label_set_text(guider_ui.screen_setting_label_30, "Color-output");
}
break;
default:
break;
}
set_item1_text(SAMPLE_INTERVAL);
set_item1_text(PLOT_NUM);
set_item1_text(INPUT_COLOR);
set_item1_text(OUTPUT_COLOR);
//隐藏多余组件
lv_obj_add_flag(guider_ui.screen_setting_label_40, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_41, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_50, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_51, LV_OBJ_FLAG_HIDDEN);
}
break;
default:
break;
}
//更新页码
set_item1_text(PAGE_PV_ITEM_1);
}
break;
case ITEM_2:
{
//启用所需组件
if( lv_obj_has_flag(guider_ui.screen_setting_label_00, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_00, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_01, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_01, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_10, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_10, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_11, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_11, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_20, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_20, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_21, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_21, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_30, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_30, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_31, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_31, LV_OBJ_FLAG_HIDDEN); };
//显示目标页
switch (page)
{
case 1:
{
switch (tabdata.item3_page0_language)
{
case MENU_SIMPLYFY_CHINESE:
{
lv_label_set_text(guider_ui.screen_setting_label_00, "参数保存");
lv_label_set_text(guider_ui.screen_setting_label_10, "输入记录");
lv_label_set_text(guider_ui.screen_setting_label_20, "输出记录");
lv_label_set_text(guider_ui.screen_setting_label_30, "参数复位");
}
break;
case MENU_ENGLISH:
{
lv_label_set_text(guider_ui.screen_setting_label_00, "Para save");
lv_label_set_text(guider_ui.screen_setting_label_10, "Input log");
lv_label_set_text(guider_ui.screen_setting_label_20, "Output log");
lv_label_set_text(guider_ui.screen_setting_label_30, "Para reset");
}
break;
default:
break;
}
set_item2_text(DATA_SAVE);
set_item2_text(INPUT_LOG);
set_item2_text(OUTPUT_LOG);
set_item2_text(DATA_RESET);
//隐藏多余组件
lv_obj_add_flag(guider_ui.screen_setting_label_40, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_41, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_50, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_51, LV_OBJ_FLAG_HIDDEN);
}
break;
default:
break;
}
//更新页码
set_item2_text(PAGE_PV_ITEM_2);
}
break;
case ITEM_3:
{
//启用所需组件
if( lv_obj_has_flag(guider_ui.screen_setting_label_00, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_00, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_01, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_01, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_10, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_10, LV_OBJ_FLAG_HIDDEN); };
if( lv_obj_has_flag(guider_ui.screen_setting_label_11, LV_OBJ_FLAG_HIDDEN) ) { lv_obj_clear_flag(guider_ui.screen_setting_label_11, LV_OBJ_FLAG_HIDDEN); };
//显示目标页
switch (page)
{
case 1:
{
switch (tabdata.item3_page0_language)
{
case MENU_SIMPLYFY_CHINESE:
{
lv_label_set_text(guider_ui.screen_setting_label_00, "照明");
lv_label_set_text(guider_ui.screen_setting_label_10, "语言");
}
break;
case MENU_ENGLISH:
{
lv_label_set_text(guider_ui.screen_setting_label_00, "Lighting");
lv_label_set_text(guider_ui.screen_setting_label_10, "Language");
}
break;
default:
break;
}
set_item3_text(LIGHT_STATUS);
set_item3_text(LANGUAGE_SELECT);
//隐藏多余组件
lv_obj_add_flag(guider_ui.screen_setting_label_20, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_21, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_30, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_31, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_40, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_41, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_50, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_flag(guider_ui.screen_setting_label_51, LV_OBJ_FLAG_HIDDEN);
}
break;
default:
break;
}
//更新页码
set_item3_text(PAGE_PV_ITEM_3);
}
break;
default:
break;
}
}
//设置界面选项卡内部内容选中点亮cursor熄灭cursor_prv焦点focus
void setting_contents_check(uint8_t cursor, uint8_t cursor_prv)
{
//根据焦点与否切换点亮时的颜色
uint32_t color = 0;
if(tabdata.content_focus)
{
color = COLOR_CONTENTS_FOCUSED;
}
else
{
color = COLOR_CONTENTS_CHECKED;
}
//点亮cursor
set_contents_color(cursor, color);
//熄灭cursor_prv
color = COLOR_CONTENTS_UNCHECKED;
set_contents_color(cursor_prv, color);
}
//设置界面选项卡内部内容选中之后修改内容修改第ite个选项卡的第con个内容
void setting_contents_modify(ITEMS ite, ITEM_CONTENTS con, int8_t step)
{
//选中某一选项卡后,对选项卡内部的内容进行选择
switch (ite)
{
case ITEM_0:
{
set_item0_value(con, step);
set_item0_text(con);
if(tabdata.item2_page0_saveflag == 2) tabdata.item2_page0_saveflag = 0;
if(tabdata.item2_page0_resetflag == 2) tabdata.item2_page0_resetflag = 0;
}
break;
case ITEM_1:
{
set_item1_value(con, step);
set_item1_text(con);
if(tabdata.item2_page0_saveflag == 2) tabdata.item2_page0_saveflag = 0;
if(tabdata.item2_page0_resetflag == 2) tabdata.item2_page0_resetflag = 0;
}
break;
case ITEM_2:
{
set_item2_value(con, step);
set_item2_text(con);
}
break;
case ITEM_3:
{
set_item3_value(con, step);
set_item3_text(con);
}
break;
default:
break;
}
}
//设置修改项的底色,表示选中和焦点
void set_contents_color(uint8_t cursor, uint32_t color)
{
switch (cursor)
{
case 0:
{
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_01, lv_color_hex(color), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case 1:
{
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_11, lv_color_hex(color), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case 2:
{
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_21, lv_color_hex(color), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case 3:
{
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_31, lv_color_hex(color), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case 4:
{
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_41, lv_color_hex(color), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case 5:
{
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_51, lv_color_hex(color), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
default:
break;
}
}
void scr_setting_recover(void)
{
//当前操作切换至“选项卡选择”,按键配置同步更新
current_operation = SET_ITEM_CHOOSE;
key_config_update(current_operation);
//在这里恢复选项卡0第1页的显示内容
tabdata.item_cursor = ITEM_0;
tabdata.item_cursor_prv = ITEM_NONE;
setting_items_check(tabdata.item_cursor, tabdata.item_cursor_prv);
setting_laguage_switch(tabdata.item3_page0_language);
tabdata.item_page = 1;
setting_items_page(ITEM_0 ,tabdata.item_page);
key = 0;
key_char2struct();
}
void scr_setting_run(void) //详细设置界面
{
//处理保存事件
deal_data_save();
//处理复位事件
deal_data_reset();
}
//执行保存功能
uint8_t save_step = 0;
void deal_data_save(void)
{
if(tabdata.item2_page0_saveflag == 1)
{
if(save_step == 0)
{
save_step = 1;
//执行保存
//eeprom_datasave();
eeprom_datasave_changed();
//关闭所有按键
key_config(KEY_ALL, KEY_STATUS_DISABLE);
}
else
{
save_cnt++;
if(save_cnt > 5)
{
save_cnt = 0;
if(system_sts.eeprom_write_error == 0)
{
//未出错
tabdata.item2_page0_saveflag = 2;
set_item2_text(DATA_SAVE);
}
else
{
//出现过错误
tabdata.item2_page0_saveflag = 0;
set_item2_text(DATA_SAVE);
}
//使能所有按键
key_config(KEY_ALL, KEY_STATUS_ENABLE);
save_step = 0;
}
}
}
}
uint8_t reset_step = 0;
//执行复位功能
void deal_data_reset(void)
{
if(tabdata.item2_page0_resetflag == 1)
{
if(reset_step == 0)
{
reset_step = 1;
//执行复位
eeprom_item_data_init();
tabdata.item3_page0_lightflag = 0; //照明状态标志0熄灭1开启
LIGHT_OFF;
tabdata.item0_page0_vunit = VOLTAGE_V; //电压单位
tabdata.item0_page1_TCtype = TC_K; //默认为K类型的热电偶
//关闭所有按键
key_config(KEY_ALL, KEY_STATUS_DISABLE);
}
else
{
reset_cnt++;
if(reset_cnt > 5)
{
reset_cnt = 0;
tabdata.item2_page0_resetflag = 2;
//更新本页文本
//保存状态更改为“已保存”
tabdata.item2_page0_saveflag = 0;
set_item2_text(DATA_SAVE);
//选项卡与标题
setting_laguage_switch(tabdata.item3_page0_language);
//内容左列
switch (tabdata.item3_page0_language)
{
case MENU_SIMPLYFY_CHINESE:
{
lv_label_set_text(guider_ui.screen_setting_label_00, "参数保存");
lv_label_set_text(guider_ui.screen_setting_label_10, "输入记录");
lv_label_set_text(guider_ui.screen_setting_label_20, "输出记录");
lv_label_set_text(guider_ui.screen_setting_label_30, "参数复位");
}
break;
case MENU_ENGLISH:
{
lv_label_set_text(guider_ui.screen_setting_label_00, "Para save");
lv_label_set_text(guider_ui.screen_setting_label_10, "Input log");
lv_label_set_text(guider_ui.screen_setting_label_20, "Output log");
lv_label_set_text(guider_ui.screen_setting_label_30, "Para reset");
}
break;
default:
break;
}
//内容右列
set_item2_text(DATA_RESET);
set_item2_text(DATA_SAVE);
set_item2_text(INPUT_LOG);
set_item2_text(OUTPUT_LOG);
//使能所有按键
key_config(KEY_ALL, KEY_STATUS_ENABLE);
reset_step = 0;
}
}
}
}
//设置界面语言切换主界面的语言切换在set_working_mode内
//此处用于更改标题和选项卡的语言,内容的语言切换在 set_XXX_text & set_XXX_value内
void setting_laguage_switch(LANGUAGES lan)
{
switch (lan)
{
case MENU_SIMPLYFY_CHINESE:
{
lv_label_set_text(guider_ui.screen_setting_label_title, "详细设置");
lv_label_set_text(guider_ui.screen_setting_label_s0, "量程设置");
lv_label_set_text(guider_ui.screen_setting_label_s1, "曲线设置");
lv_label_set_text(guider_ui.screen_setting_label_s2, "数据存储");
lv_label_set_text(guider_ui.screen_setting_label_s3, "系统设置");
}
break;
case MENU_ENGLISH:
{
lv_label_set_text(guider_ui.screen_setting_label_title, "Detailed Settings");
lv_label_set_text(guider_ui.screen_setting_label_s0, "Range");
lv_label_set_text(guider_ui.screen_setting_label_s1, "Chart");
lv_label_set_text(guider_ui.screen_setting_label_s2, "Storage");
lv_label_set_text(guider_ui.screen_setting_label_s3, "System");
}
break;
default:
break;
}
}
//内容游标 uint8_t -> enum
ITEM_CONTENTS content_cur_char2enum(ITEMS ite, uint8_t cur_uint8)
{
ITEM_CONTENTS result = CONTENT_EMPTY;
uint8_t cur_temp = 0;
cur_temp = cur_uint8 + (tabdata.item_page - 1)*6;
switch (ite)
{
case ITEM_0:
{
result = (ITEM_CONTENTS)cur_temp;
}
break;
case ITEM_1:
{
cur_temp += (uint8_t)SAMPLE_INTERVAL;
result = (ITEM_CONTENTS)cur_temp;
}
break;
case ITEM_2:
{
cur_temp += (uint8_t)DATA_SAVE;
result = (ITEM_CONTENTS)cur_temp;
}
break;
case ITEM_3:
{
cur_temp += (uint8_t)LIGHT_STATUS;
result = (ITEM_CONTENTS)cur_temp;
}
break;
default:
break;
}
return result;
}