#ifndef _APP_SCREEN_SETTING_H #define _APP_SCREEN_SETTING_H #include "apps_gather.h" typedef enum { ITEM_0 = 0, ITEM_1, ITEM_2, ITEM_3, ITEM_NONE }ITEMS; typedef enum { //ITEM_0 VOL_UNIT_SET = 0, VOL_UP_SET, VOL_LOW_SET, CURRENT_UP_SET, CURRENT_LOW_SET, RES_UP_SET, RES_LOW_SET, FRE_UP_SET, FRE_LOW_SET, TC_TYPE_SET, TC_UP_SET, TC_LOW_SET, RTD_UP_SET, RTD_LOW_SET, PAGE_PV_ITEM_0, //ITEM_1 SAMPLE_INTERVAL, PLOT_NUM, INPUT_COLOR, OUTPUT_COLOR, PAGE_PV_ITEM_1, //ITEM_2 INPUT_LOG, OUTPUT_LOG, COMMUNICATION, PROGRAM_OUTPUT, PAGE_PV_ITEM_2, //ITEM_3 LIGHT_STATUS, LANGUAGE_SELECT, DATA_SAVE, DATA_RESET, PAGE_PV_ITEM_3, //general CONTENT_EMPTY }ITEM_CONTENTS; typedef enum { COLOR_BLUE = 0, COLOR_DARK_BLUE, COLOR_YELLOW, COLOR_GREEN, COLOR_RED, COLOR_PURPLE, COLOR_BLACK }COLORS; typedef enum { SIG_SLAVE = 0, SIG_MASTER }SIG_MODBUS_TYPE; typedef struct { ITEMS item_cursor; //选项卡游标,后续根据实际需求进行宏定义 ITEMS item_cursor_prv; //前一时刻的选项卡游标 uint8_t item_page; //当前页 uint8_t item_page_prv; //前一页 uint8_t content_cursor; //内容右侧一列的游标,范围0~5,6个组件之间跳转 uint8_t content_cursor_prv; //前一时刻的内部游标 uint8_t content_focus; //内容焦点 ITEM_CONTENTS current_content; //当前指向内容 //ITEMS_0 SIG_FUNCTIONS_TYPE item0_page0_vunit; int16_t item0_page0_vup[2]; int16_t item0_page0_vlow[2]; uint8_t item0_page0_cup; uint8_t item0_page0_clow; int16_t item0_page0_rup; int16_t item0_page1_rlow; uint8_t item0_page1_fup; uint8_t item0_page1_flow; SIG_FUNCTIONS_TYPE item0_page1_TCtype; int16_t item0_page1_TCup[8]; int16_t item0_page1_TClow[8]; int16_t item0_page2_RTDup; int16_t item0_page2_RTDlow; //ITEMS_1 uint16_t item1_page0_sample_interval; //采样间隔ms uint8_t item1_page0_plot_num; //曲线上显示的点数 COLORS item1_page0_color_input; //输出曲线及其图例的颜色 COLORS item1_page0_color_output; //输出曲线及其图例的颜色 //ITEMS_2 char log_time[60][16]; //输入&输出记录,时间戳 float32 input_log_value[60]; //输入记录,实际值 SIG_FUNCTIONS_TYPE input_log_unit[60]; //输入记录,单位 float32 output_log_value[60]; //输出记录,实际值 SIG_FUNCTIONS_TYPE output_log_unit[60]; //输出记录,单位 uint8_t hart_enable; //HART透传使能 uint8_t bluetooth_enable; //蓝牙透传使能 uint8_t modbus_enable; //MODBUS使能 SIG_MODBUS_TYPE modbus_type; //SIG在modbus中作为主或从 uint8_t modbus_master_send_flag; //发送标志 //ITEMS_3 uint8_t item3_page0_lightflag; //照明状态标志,0熄灭,1开启 LANGUAGES item3_page0_language; //语言类型 uint8_t item3_page0_saveflag; //[0, 1,2 ] -> [未保存,保存中,已保存] uint8_t item3_page0_resetflag; //[0, 1,2 ] -> [未复位,复位中,已复位] }TABVIEW_DATA; extern TABVIEW_DATA tabdata; //设置页面参数初始化 extern int16_t save_cnt; extern int16_t reset_cnt; extern int32_t color_table[7]; //页面数量 #define I0_PAGE_MAX 3 #define I1_PAGE_MAX 1 #define I2_PAGE_MAX 1 #define I3_PAGE_MAX 1 //淡蓝色 #define COLOR_LIGHT_BLUE_VALUE 0xCAEEFF //蓝色 #define COLOR_BLUE_VALUE 0x00B6FF //深蓝色 #define COLOR_DARK_BLUE_VALUE 0x000FFF //黄色 #define COLOR_YELLOW_VALUE 0xEAE200 //橙色 #define COLOR_ORANGE_VALUE 0xFD8E10 //绿色 #define COLOR_GREEN_VALUE 0x00FF4E //红色 #define COLOR_RED_VALUE 0xFF0027 //紫色 #define COLOR_PURPLE_VALUE 0xFF00D4 //黑色 #define COLOR_BLACK_VALUE 0x000000 //白色 #define COLOR_WHITE_VALUE 0xffffff //选项卡未选中时的底色 #define COLOR_ITEMS_UNCHECKED COLOR_WHITE_VALUE //选项卡选中时的底色 #define COLOR_ITEMS_CHECKED COLOR_LIGHT_BLUE_VALUE //内容未选中时的底色 #define COLOR_CONTENTS_UNCHECKED COLOR_WHITE_VALUE //内容选中时的底色 #define COLOR_CONTENTS_CHECKED COLOR_LIGHT_BLUE_VALUE //内容焦点后的底色 #define COLOR_CONTENTS_FOCUSED COLOR_GREEN_VALUE //设置菜单数据初始化 void tab_data_init(void); //选项卡EEPROM部分数据初始化 void eeprom_item_data_init(void); //设置界面选项卡选中:点亮cursor;熄灭cursor_prv void setting_items_check(ITEMS cursor, ITEMS cursor_prv); //当前选项卡内容翻页:显示选项卡 ite 的第 page 页, void setting_items_page(ITEMS ite, uint8_t page); //设置界面选项卡内部内容选中:点亮cursor;熄灭cursor_prv;焦点focus void setting_contents_check(uint8_t cursor, uint8_t cursor_prv); //设置界面选项卡内部内容选中之后,根据键值key_val和步长step修改内容,修改第ite个选项卡的第con个内容 void setting_contents_modify(ITEMS ite, ITEM_CONTENTS con, int8_t step); //设置修改项的底色,表示选中和焦点 void set_contents_color(uint8_t cursor, uint32_t color); //恢复设置界面的各项参数显示,用于界面切换(主界面->设置界面) void scr_setting_recover(void); //详细设置界面 void scr_setting_run(void); //执行保存功能 void deal_data_save(void); //执行复位功能 void deal_data_reset(void); //修改选项卡0的文本 void set_item0_text(ITEM_CONTENTS con); //修改选项卡1的文本 void set_item1_text(ITEM_CONTENTS con); //修改选项卡2的文本 void set_item2_text(ITEM_CONTENTS con); //修改选项卡3的文本 void set_item3_text(ITEM_CONTENTS con); //修改对象颜色 void set_obj_color(lv_obj_t * obj, uint8_t color); //修改选项卡0的值 void set_item0_value(ITEM_CONTENTS con, int8_t step); //修改选项卡1的值 void set_item1_value(ITEM_CONTENTS con, int8_t step); //修改选项卡2的值 void set_item2_value(ITEM_CONTENTS con, int8_t step); //修改选项卡3的值 void set_item3_value(ITEM_CONTENTS con, int8_t step); //内容游标 uint8_t -> enum ITEM_CONTENTS content_cur_char2enum(ITEMS ite, uint8_t cur_uint8); //刷新标题和选项卡文本 void title_item_refresh(void); #endif