sggt/App/APP_WU/Src/scr_setting_item_value.c

490 lines
17 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 "scr_setting_item_value.h"
//该部分代码用于修改选项卡内部,右侧一列的值
//修改选项卡0的值
void set_item0_value(uint8_t con, int8_t step)
{
uint8_t enum_temp = 0;
switch (con)
{
case VOL_UNIT_SET:
{
if( tabdata.item0_page0_vunit == VOLTAGE_V )
{
tabdata.item0_page0_vunit = VOLTAGE_MV;
}
else
{
tabdata.item0_page0_vunit = VOLTAGE_V;
}
//修改单位后,更新上下限
set_item0_text(VOL_UP_SET);
set_item0_text(VOL_LOW_SET);
}
break;
case VOL_UP_SET:
{
if( tabdata.item0_page0_vunit == VOLTAGE_V )
{
tabdata.item0_page0_vup[0] = tabdata.item0_page0_vup[0] + step;
//上下限幅
if(tabdata.item0_page0_vup[0] > VOL[0].up) tabdata.item0_page0_vup[0] = VOL[0].up;
if(tabdata.item0_page0_vup[0] < VOL[0].low) tabdata.item0_page0_vup[0] = VOL[0].low;
//防止自相矛盾
if(tabdata.item0_page0_vup[0] < tabdata.item0_page0_vlow[0]) tabdata.item0_page0_vup[0] = tabdata.item0_page0_vlow[0];
}
else
{
tabdata.item0_page0_vup[1] = tabdata.item0_page0_vup[1] + step;
//上下限幅
if(tabdata.item0_page0_vup[1] > VOL[1].up) tabdata.item0_page0_vup[1] = VOL[1].up;
if(tabdata.item0_page0_vup[1] < VOL[1].low) tabdata.item0_page0_vup[1] = VOL[1].low;
//防止自相矛盾
if(tabdata.item0_page0_vup[1] < tabdata.item0_page0_vlow[1]) tabdata.item0_page0_vup[1] = tabdata.item0_page0_vlow[1];
}
}
break;
case VOL_LOW_SET:
{
if( tabdata.item0_page0_vunit == VOLTAGE_V )
{
tabdata.item0_page0_vlow[0] = tabdata.item0_page0_vlow[0] + step;
//上下限幅
if(tabdata.item0_page0_vlow[0] > VOL[0].up) tabdata.item0_page0_vlow[0] = VOL[0].up;
if(tabdata.item0_page0_vlow[0] < VOL[0].low) tabdata.item0_page0_vlow[0] = VOL[0].low;
//防止自相矛盾
if(tabdata.item0_page0_vlow[0] > tabdata.item0_page0_vup[0]) tabdata.item0_page0_vlow[0] = tabdata.item0_page0_vup[0];
}
else
{
tabdata.item0_page0_vlow[1] = tabdata.item0_page0_vlow[1] + step;
//上下限幅
if(tabdata.item0_page0_vlow[1] > VOL[1].up) tabdata.item0_page0_vlow[1] = VOL[1].up;
if(tabdata.item0_page0_vlow[1] < VOL[1].low) tabdata.item0_page0_vlow[1] = VOL[1].low;
//防止自相矛盾
if(tabdata.item0_page0_vlow[1] > tabdata.item0_page0_vup[1]) tabdata.item0_page0_vlow[1] = tabdata.item0_page0_vup[1];
}
}
break;
case CURRENT_UP_SET:
{
tabdata.item0_page0_cup = tabdata.item0_page0_cup + step;
//上下限幅
if(tabdata.item0_page0_cup > CUR.up) tabdata.item0_page0_cup = CUR.up;
if(tabdata.item0_page0_cup < CUR.low) tabdata.item0_page0_cup = CUR.low;
//防止自相矛盾
if(tabdata.item0_page0_cup < tabdata.item0_page0_clow) tabdata.item0_page0_cup = tabdata.item0_page0_clow;
}
break;
case CURRENT_LOW_SET:
{
tabdata.item0_page0_clow = tabdata.item0_page0_clow + step;
//上下限幅
if(tabdata.item0_page0_clow > CUR.up) tabdata.item0_page0_clow = CUR.up;
if(tabdata.item0_page0_clow < CUR.low) tabdata.item0_page0_clow = CUR.low;
//防止自相矛盾
if(tabdata.item0_page0_clow > tabdata.item0_page0_cup) tabdata.item0_page0_clow = tabdata.item0_page0_cup;
}
break;
case RES_UP_SET:
{
tabdata.item0_page0_rup = tabdata.item0_page0_rup + step;
//上下限幅
if(tabdata.item0_page0_rup > RES.up) tabdata.item0_page0_rup = RES.up;
if(tabdata.item0_page0_rup < RES.low) tabdata.item0_page0_rup = RES.low;
//防止自相矛盾
if(tabdata.item0_page0_rup < tabdata.item0_page1_rlow) tabdata.item0_page0_rup = tabdata.item0_page1_rlow;
}
break;
case RES_LOW_SET:
{
tabdata.item0_page1_rlow = tabdata.item0_page1_rlow + step;
//上下限幅
if(tabdata.item0_page1_rlow > RES.up) tabdata.item0_page1_rlow = RES.up;
if(tabdata.item0_page1_rlow < RES.low) tabdata.item0_page1_rlow = RES.low;
//防止自相矛盾
if(tabdata.item0_page1_rlow > tabdata.item0_page0_rup) tabdata.item0_page1_rlow = tabdata.item0_page0_rup;
}
break;
case FRE_UP_SET:
{
tabdata.item0_page1_fup = tabdata.item0_page1_fup + step;
//上下限幅
if(tabdata.item0_page1_fup > FRE.up) tabdata.item0_page1_fup = FRE.up;
if(tabdata.item0_page1_fup < FRE.low) tabdata.item0_page1_fup = FRE.low;
//防止自相矛盾
if(tabdata.item0_page1_fup < tabdata.item0_page1_flow) tabdata.item0_page1_fup = tabdata.item0_page1_flow;
}
break;
case FRE_LOW_SET:
{
tabdata.item0_page1_flow = tabdata.item0_page1_flow + step;
//上下限幅
if(tabdata.item0_page1_flow > FRE.up) tabdata.item0_page1_flow = FRE.up;
if(tabdata.item0_page1_flow < FRE.low) tabdata.item0_page1_flow = FRE.low;
//防止自相矛盾
if(tabdata.item0_page1_flow > tabdata.item0_page1_fup) tabdata.item0_page1_flow = tabdata.item0_page1_fup;
}
break;
case TC_TYPE_SET:
{
enum_temp = (uint8_t)tabdata.item0_page1_TCtype;
enum_temp = enum_temp + step;
if(enum_temp > 12) enum_temp = 5;
if(enum_temp < 5) enum_temp = 12;
tabdata.item0_page1_TCtype = (SIG_FUNCTIONS_TYPE)enum_temp;
//修改单位后,更新上下限
set_item0_text(TC_UP_SET);
set_item0_text(TC_LOW_SET);
}
break;
case TC_UP_SET:
{
enum_temp = (uint8_t)tabdata.item0_page1_TCtype;
enum_temp -= 5;
tabdata.item0_page1_TCup[enum_temp]= tabdata.item0_page1_TCup[enum_temp] + step;
//上下限幅
if(tabdata.item0_page1_TCup[enum_temp] > TC[enum_temp].up) tabdata.item0_page1_TCup[enum_temp] = TC[enum_temp].up;
if(tabdata.item0_page1_TCup[enum_temp] < TC[enum_temp].low) tabdata.item0_page1_TCup[enum_temp] = TC[enum_temp].low;
//防止自相矛盾
if(tabdata.item0_page1_TCup[enum_temp] < tabdata.item0_page1_TClow[enum_temp]) tabdata.item0_page1_TCup[enum_temp] = tabdata.item0_page1_TClow[enum_temp];
}
break;
case TC_LOW_SET:
{
enum_temp = (uint8_t)tabdata.item0_page1_TCtype;
enum_temp -= 5;
tabdata.item0_page1_TClow[enum_temp]= tabdata.item0_page1_TClow[enum_temp] + step;
//上下限幅
if(tabdata.item0_page1_TClow[enum_temp] > TC[enum_temp].up) tabdata.item0_page1_TClow[enum_temp] = TC[enum_temp].up;
if(tabdata.item0_page1_TClow[enum_temp] < TC[enum_temp].low) tabdata.item0_page1_TClow[enum_temp] = TC[enum_temp].low;
//防止自相矛盾
if(tabdata.item0_page1_TClow[enum_temp] > tabdata.item0_page1_TCup[enum_temp]) tabdata.item0_page1_TClow[enum_temp] = tabdata.item0_page1_TCup[enum_temp];
}
break;
case RTD_UP_SET:
{
tabdata.item0_page2_RTDup = tabdata.item0_page2_RTDup + step;
//上下限幅
if(tabdata.item0_page2_RTDup > RTD.up) tabdata.item0_page2_RTDup = RTD.up;
if(tabdata.item0_page2_RTDup < RTD.low) tabdata.item0_page2_RTDup = RTD.low;
//防止自相矛盾
if(tabdata.item0_page2_RTDup < tabdata.item0_page2_RTDlow) tabdata.item0_page2_RTDup = tabdata.item0_page2_RTDlow;
}
break;
case RTD_LOW_SET:
{
tabdata.item0_page2_RTDlow = tabdata.item0_page2_RTDlow + step;
//上下限幅
if(tabdata.item0_page2_RTDlow > RTD.up) tabdata.item0_page2_RTDlow = RTD.up;
if(tabdata.item0_page2_RTDlow < RTD.low) tabdata.item0_page2_RTDlow = RTD.low;
//防止自相矛盾
if(tabdata.item0_page2_RTDlow > tabdata.item0_page2_RTDup) tabdata.item0_page2_RTDlow = tabdata.item0_page2_RTDup;
}
break;
default:
break;
}
}
//修改选项卡1的值
int16_t save_cnt = 0;
int16_t reset_cnt = 0;
void set_item1_value(uint8_t con, int8_t step)
{
switch (con)
{
case SAMPLE_INTERVAL:
{
tabdata.item1_page0_sample_interval += step * 100;
if( tabdata.item1_page0_sample_interval > 60000 ) tabdata.item1_page0_sample_interval = 60000;
if( tabdata.item1_page0_sample_interval < 100 ) tabdata.item1_page0_sample_interval = 100;
}
break;
case PLOT_NUM:
{
tabdata.item1_page0_plot_num += step;
if( tabdata.item1_page0_plot_num > 20 ) tabdata.item1_page0_plot_num = 20;
if( tabdata.item1_page0_plot_num < 3 ) tabdata.item1_page0_plot_num = 3;
}
break;
case INPUT_COLOR:
{
tabdata.item1_page0_color_input += step;
if( tabdata.item1_page0_color_input > 5 ) tabdata.item1_page0_color_input = 0;
if( tabdata.item1_page0_color_input < 0 ) tabdata.item1_page0_color_input = 5;
}
break;
case OUTPUT_COLOR:
{
tabdata.item1_page0_color_output += step;
if( tabdata.item1_page0_color_output > 5 ) tabdata.item1_page0_color_output = 0;
if( tabdata.item1_page0_color_output < 0 ) tabdata.item1_page0_color_output = 5;
}
break;
default:
break;
}
}
//修改选项卡2的值
void set_item2_value(uint8_t con, int8_t step)
{
switch (con)
{
case DATA_SAVE:
{
if(tabdata.item2_page0_saveflag == 0)
{
tabdata.item2_page0_saveflag = 1;
save_cnt = 0;
}
}
break;
case DATA_RESET:
{
if(tabdata.item2_page0_resetflag == 0)
{
tabdata.item2_page0_resetflag = 1;
reset_cnt = 0;
}
}
break;
}
}
//修改选项卡3的值
void set_item3_value(uint8_t con, int8_t step)
{
switch (con)
{
case LIGHT_STATUS:
{
if(tabdata.item3_page0_lightflag)
{
tabdata.item3_page0_lightflag = 0;
LIGHT_OFF;
}
else
{
tabdata.item3_page0_lightflag = 1;
LIGHT_ON;
}
}
break;
case LANGUAGE_SELECT:
{
tabdata.item3_page0_language = (tabdata.item3_page0_language > 0)?(0):(tabdata.item3_page0_language + 1);
if(tabdata.item2_page0_saveflag == 2) tabdata.item2_page0_saveflag = 0;
if(tabdata.item2_page0_resetflag == 2) tabdata.item2_page0_resetflag = 0;
//修改语言选项后,随即更改标题、选项卡、当前页面的语言
setting_laguage_switch(tabdata.item3_page0_language);
}
break;
default:
break;
}
}
//查看输入输出记录io -> 输入/输出page -> 指定页码
void show_IO_log(uint8_t io, uint8_t page)
{
if( (page > 10) || (page < 1) )
{
return;
}
//启用所需组件
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); };
uint8_t cur = 0;
cur = (page - 1)*6;
char str[16];
if(tabdata.log_time[cur][2] == 0)
{
lv_label_set_text(guider_ui.screen_setting_label_00, "---");
}
else
{
lv_label_set_text(guider_ui.screen_setting_label_00, tabdata.log_time[cur]);
}
if(tabdata.log_time[cur + 1][2] == 0)
{
lv_label_set_text(guider_ui.screen_setting_label_10, "---");
}
else
{
lv_label_set_text(guider_ui.screen_setting_label_10, tabdata.log_time[cur + 1]);
}
if(tabdata.log_time[cur + 2][2] == 0)
{
lv_label_set_text(guider_ui.screen_setting_label_20, "---");
}
else
{
lv_label_set_text(guider_ui.screen_setting_label_20, tabdata.log_time[cur + 2]);
}
if(tabdata.log_time[cur + 3][2] == 0)
{
lv_label_set_text(guider_ui.screen_setting_label_30, "---");
}
else
{
lv_label_set_text(guider_ui.screen_setting_label_30, tabdata.log_time[cur + 3]);
}
if(tabdata.log_time[cur + 4][2] == 0)
{
lv_label_set_text(guider_ui.screen_setting_label_40, "---");
}
else
{
lv_label_set_text(guider_ui.screen_setting_label_40, tabdata.log_time[cur + 4]);
}
if(tabdata.log_time[cur + 5][2] == 0)
{
lv_label_set_text(guider_ui.screen_setting_label_50, "---");
}
else
{
lv_label_set_text(guider_ui.screen_setting_label_50, tabdata.log_time[cur + 5]);
}
switch (io)
{
case IO_INPUT:
{
sprintf(str, "%.3f", tabdata.input_log_value[cur]);
lv_label_set_text(guider_ui.screen_setting_label_01, str);
sprintf(str, "%.3f", tabdata.input_log_value[cur + 1]);
lv_label_set_text(guider_ui.screen_setting_label_11, str);
sprintf(str, "%.3f", tabdata.input_log_value[cur + 2]);
lv_label_set_text(guider_ui.screen_setting_label_21, str);
sprintf(str, "%.3f", tabdata.input_log_value[cur + 3]);
lv_label_set_text(guider_ui.screen_setting_label_31, str);
sprintf(str, "%.3f", tabdata.input_log_value[cur + 4]);
lv_label_set_text(guider_ui.screen_setting_label_41, str);
sprintf(str, "%.3f", tabdata.input_log_value[cur + 5]);
lv_label_set_text(guider_ui.screen_setting_label_51, str);
sprintf(str,"< %d/%d >", page, 10);
lv_label_set_text(guider_ui.screen_setting_label_page, str);
}
break;
case IO_OUTPUT:
{
sprintf(str, "%.3f", tabdata.output_log_value[cur]);
lv_label_set_text(guider_ui.screen_setting_label_01, str);
sprintf(str, "%.3f", tabdata.output_log_value[cur + 1]);
lv_label_set_text(guider_ui.screen_setting_label_11, str);
sprintf(str, "%.3f", tabdata.output_log_value[cur + 2]);
lv_label_set_text(guider_ui.screen_setting_label_21, str);
sprintf(str, "%.3f", tabdata.output_log_value[cur + 3]);
lv_label_set_text(guider_ui.screen_setting_label_31, str);
sprintf(str, "%.3f", tabdata.output_log_value[cur + 4]);
lv_label_set_text(guider_ui.screen_setting_label_41, str);
sprintf(str, "%.3f", tabdata.output_log_value[cur + 5]);
lv_label_set_text(guider_ui.screen_setting_label_51, str);
sprintf(str,"< %d/%d >", page, 10);
lv_label_set_text(guider_ui.screen_setting_label_page, str);
}
break;
default:
break;
}
}