sggt/App/APP_WU/Inc/app_screen_setting.h

250 lines
6.2 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.

#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 struct
{
ITEMS item_cursor; //选项卡游标,后续根据实际需求进行宏定义
ITEMS item_cursor_prv; //前一时刻的选项卡游标
uint8_t item_page; //当前页
uint8_t item_page_prv; //前一页
uint8_t content_cursor; //内容右侧一列的游标范围0~56个组件之间跳转
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;
uint8_t bluetooth_enable;
uint8_t modbus_enable;
//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 0x75D4FF
//蓝色
#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);
//按键功能,详细设置菜单界面
void key_functions_setting(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