更新:

1、曲线颜色自定义部分代码精简;
2、采样间隔、描点数量、输出&输入曲线颜色、语言选择加入EEPROM存储;
3、界面切换逻辑调整,降低了卡死的概率;
This commit is contained in:
吴俊潮 2025-04-18 13:12:47 +08:00
parent 956ca7baaa
commit 9b7de39574
17 changed files with 18509 additions and 14595 deletions

View File

@ -16,7 +16,6 @@
//主界面
//{
//主界面编号1信号输入输出示波器显示
#define SCREEN_MAIN 1
@ -53,6 +52,11 @@
//数码管数值增加(正负情况交替时up和down两个键起到的作用会对调因此专门定义参数用于区分数值的增减)
#define NIXIE_DECREASE 0
//数码管闪烁功能使能
#define NIXIE_CUBE_ENABLE 0
//EEPROM状态监控
#define EEPROM_MONITOR_ENABLE 1
//}
//菜单数据初始化

View File

@ -125,7 +125,7 @@ extern int16_t reset_cnt;
//内容焦点后的底色
#define COLOR_CONTENTS_FOCUSED 0X9dffb0
//曲线颜色
//曲线备选颜色
//{
//淡蓝色
#define COLOR_BLUE 0
@ -151,11 +151,11 @@ extern int16_t reset_cnt;
#define COLOR_PURPLE 5
#define COLOR_PURPLE_VALUE 0xFF00D4
//输入图例颜色值
#define COLOR_LEGEND_INPUT COLOR_YELLOW_VALUE
//黑色
#define COLOR_BLACK 7
#define COLOR_BLACK_VALUE 0x000000
//输出图例颜色值
#define COLOR_LEGEND_OUTPUT COLOR_BLUE_VALUE
extern int32_t color_table[7];
//}
//}
@ -163,8 +163,8 @@ extern int16_t reset_cnt;
//设置菜单数据初始化
void tab_data_init(void);
//选项卡 0 数据初始化
void item0_data_init(void);
//选项卡EEPROM部分数据初始化
void eeprom_item_data_init(void);
//按键功能,详细设置菜单界面
void key_functions_setting(void);

View File

@ -97,10 +97,9 @@ typedef struct
//screen_init
uint8_t scr_init_flag; //初始界面标志,是否播放过开机动画
uint8_t bar_anime_step; //进度条动画步骤
uint8_t bar_anime_end_flag; //进度条动画结束标志
//screen_main
uint8_t key_main_enable; //按键功能使能标志
uint8_t runtime_seconds;
uint8_t runtime_minutes;
uint8_t runtime_hours;
@ -116,15 +115,18 @@ typedef struct
SIG_FUNCTIONS_TYPE input_mode_type; //当前输入模式的类型
SIG_FUNCTIONS output_mode; //当前的输出模式
SIG_FUNCTIONS_TYPE output_mode_type; //当前输出模式的类型
#if NIXIE_CUBE_ENABLE
uint8_t twk_flag; //闪烁使能标志
uint8_t twk_flip; //0-1变量用于控制显示内容翻转显示/不显示)
uint8_t twk_cnt; //闪烁计数,计数达到上限后闪烁停止
#endif
uint8_t overflow_flag_up; //向上溢出标志
uint8_t overflow_flag_low; //向下溢出标志
uint8_t sign_flag_in; //输入信号符号位标志0->不显示1->显示负号
uint8_t sign_flag_out; //输出信号符号位标志0->不显示1->显示负号
//screen_setting
uint8_t key_setting_enable; //按键功能使能标志
}MENU_DATA;
@ -225,6 +227,7 @@ extern PHYSICAL_QUANTITY RES; //电阻,Ω
extern PHYSICAL_QUANTITY FRE; //频率KHz
extern PHYSICAL_QUANTITY TC[8]; //热电偶共8种
extern PHYSICAL_QUANTITY RTD; //热电阻
extern uint16_t screen_switch_wait; //屏幕切换的等待时间
//按键值
#define KEY_OUT 76

View File

@ -41,95 +41,110 @@
//my address
//{
//0x7D0 - 0x7E0标记后写入0xAAAA连续16位“1”“0”交替
//0x7D0 - 0x7E0(2000 - 2016)标记后写入0xAAAA连续16位“1”“0”交替
#define DEVICE_CHECK 0x0007D0
#define EE_START_ADDR 0x000000
#define EE_INTERVAL 16
//电压V上限tag0
//电压V上限tag0EE_START_ADDR + 0*EE_INTERVAL
#define VOL_V_UP_ADDR EE_START_ADDR
//电压V下限tag0
//电压V下限tag0EE_START_ADDR + 1*EE_INTERVAL
#define VOL_V_LOW_ADDR (VOL_V_UP_ADDR + EE_INTERVAL)
//电压mV上限tag0
//电压mV上限tag0EE_START_ADDR + 2*EE_INTERVAL
#define VOL_MV_UP_ADDR (VOL_V_LOW_ADDR + EE_INTERVAL)
//电压mV下限tag0
//电压mV下限tag0EE_START_ADDR + 3*EE_INTERVAL
#define VOL_MV_LOW_ADDR (VOL_MV_UP_ADDR + EE_INTERVAL)
//电流上限tag1
//电流上限tag1EE_START_ADDR + 4*EE_INTERVAL
#define CUR_UP_ADDR (VOL_MV_LOW_ADDR + EE_INTERVAL)
//电流下限tag1
//电流下限tag1EE_START_ADDR + 5*EE_INTERVAL
#define CUR_LOW_ADDR (CUR_UP_ADDR + EE_INTERVAL)
//电阻上限tag2
//电阻上限tag2EE_START_ADDR + 6*EE_INTERVAL
#define RES_UP_ADDR (CUR_LOW_ADDR + EE_INTERVAL)
//电阻下限tag2
//电阻下限tag2EE_START_ADDR + 7*EE_INTERVAL
#define RES_LOW_ADDR (RES_UP_ADDR + EE_INTERVAL)
//频率上限tag3
//频率上限tag3EE_START_ADDR + 8*EE_INTERVAL
#define FRE_UP_ADDR (RES_LOW_ADDR + EE_INTERVAL)
//频率下限tag3
//频率下限tag3EE_START_ADDR + 9*EE_INTERVAL
#define FRE_LOW_ADDR (FRE_UP_ADDR + EE_INTERVAL)
//TC_K上限tag4
//TC_K上限tag4EE_START_ADDR + 10*EE_INTERVAL
#define TC_K_UP_ADDR (FRE_LOW_ADDR + EE_INTERVAL)
//TC_K下限tag4
//TC_K下限tag4EE_START_ADDR + 11*EE_INTERVAL
#define TC_K_LOW_ADDR (TC_K_UP_ADDR + EE_INTERVAL)
//TC_S上限tag5
//TC_S上限tag5EE_START_ADDR + 12*EE_INTERVAL
#define TC_S_UP_ADDR (TC_K_LOW_ADDR + EE_INTERVAL)
//TC_S下限tag5
//TC_S下限tag5EE_START_ADDR + 13*EE_INTERVAL
#define TC_S_LOW_ADDR (TC_S_UP_ADDR + EE_INTERVAL)
//TC_N上限tag6
//TC_N上限tag6EE_START_ADDR + 14*EE_INTERVAL
#define TC_N_UP_ADDR (TC_S_LOW_ADDR + EE_INTERVAL)
//TC_N下限tag6
//TC_N下限tag6EE_START_ADDR + 15*EE_INTERVAL
#define TC_N_LOW_ADDR (TC_N_UP_ADDR + EE_INTERVAL)
//TC_B上限tag7
//TC_B上限tag7EE_START_ADDR + 16*EE_INTERVAL
#define TC_B_UP_ADDR (TC_N_LOW_ADDR + EE_INTERVAL)
//TC_B下限tag7
//TC_B下限tag7EE_START_ADDR + 17*EE_INTERVAL
#define TC_B_LOW_ADDR (TC_B_UP_ADDR + EE_INTERVAL)
//TC_E上限tag8
//TC_E上限tag8EE_START_ADDR + 18*EE_INTERVAL
#define TC_E_UP_ADDR (TC_B_LOW_ADDR + EE_INTERVAL)
//TC_E下限tag8
//TC_E下限tag8EE_START_ADDR + 19*EE_INTERVAL
#define TC_E_LOW_ADDR (TC_E_UP_ADDR + EE_INTERVAL)
//TC_J上限tag9
//TC_J上限tag9EE_START_ADDR + 20*EE_INTERVAL
#define TC_J_UP_ADDR (TC_E_LOW_ADDR + EE_INTERVAL)
//TC_J下限tag9
//TC_J下限tag9EE_START_ADDR + 21*EE_INTERVAL
#define TC_J_LOW_ADDR (TC_J_UP_ADDR + EE_INTERVAL)
//TC_R上限tag10
//TC_R上限tag10EE_START_ADDR + 22*EE_INTERVAL
#define TC_R_UP_ADDR (TC_J_LOW_ADDR + EE_INTERVAL)
//TC_R下限tag10
//TC_R下限tag10EE_START_ADDR + 23*EE_INTERVAL
#define TC_R_LOW_ADDR (TC_R_UP_ADDR + EE_INTERVAL)
//TC_T上限tag11
//TC_T上限tag11EE_START_ADDR + 24*EE_INTERVAL
#define TC_T_UP_ADDR (TC_R_LOW_ADDR + EE_INTERVAL)
//TC_T下限tag11
//TC_T下限tag11EE_START_ADDR + 25*EE_INTERVAL
#define TC_T_LOW_ADDR (TC_T_UP_ADDR + EE_INTERVAL)
//RTD上限tag12
//RTD上限tag12EE_START_ADDR + 26*EE_INTERVAL
#define RTD_UP_ADDR (TC_T_LOW_ADDR + EE_INTERVAL)
//RTD下限tag12
//RTD下限tag12EE_START_ADDR + 27*EE_INTERVAL
#define RTD_LOW_ADDR (RTD_UP_ADDR + EE_INTERVAL)
//采样间隔画点时间间隔tag13EE_START_ADDR + 28*EE_INTERVAL
#define SAMPLE_INTERVAL_ADDR (RTD_LOW_ADDR + EE_INTERVAL)
//描点数量tag14EE_START_ADDR + 29*EE_INTERVAL
#define PLOT_COUNT_ADDR (SAMPLE_INTERVAL_ADDR + EE_INTERVAL)
//输入曲线颜色tag15EE_START_ADDR + 30*EE_INTERVAL
#define INPUT_COLOR_ADDR (PLOT_COUNT_ADDR + EE_INTERVAL)
//输出曲线颜色tag16EE_START_ADDR + 31*EE_INTERVAL
#define OUTPUT_COLOR_ADDR (INPUT_COLOR_ADDR + EE_INTERVAL)
//语言选择tag17EE_START_ADDR + 32*EE_INTERVAL
#define LANGUAGE_SELECT_ADDR (OUTPUT_COLOR_ADDR + EE_INTERVAL)
//根据需求后续在此处向后添加
//}

View File

@ -3,6 +3,10 @@
#include "apps_gather.h"
#define LIGHT_ON HAL_GPIO_WritePin(light_GPIO_Port, light_Pin, GPIO_PIN_SET)
#define LIGHT_OFF HAL_GPIO_WritePin(light_GPIO_Port, light_Pin, GPIO_PIN_RESET)
//修改选项卡0的值
void set_item0_value(uint8_t con, int8_t step);

View File

@ -13,8 +13,8 @@
extern int heart_1000ms_flag;
extern int heart_1000ms_cnt;
extern int battery_3000ms_flag;
extern int battery_3000ms_cnt;
extern int battery_2000ms_flag;
extern int battery_2000ms_cnt;
extern int plot_ms_flag;
extern int plot_ms_cnt;
extern int twk_1000ms_flag;

View File

@ -14,21 +14,19 @@ void screen_data_init(void)
//screen_init
m5data.scr_init_flag = 0; //是否进行过初始化(开机动画)
m5data.bar_anime_step = 0; //进度条动画步骤
m5data.bar_anime_end_flag = 0; //进度条动画结束标志
//screen_main
main_data_init();
//screen_setting
tab_data_init();
LIGHT_OFF;
m5data.key_setting_enable = 0; //按键默认不使能
}
//主界面参数初始化
void main_data_init(void)
{
m5data.key_main_enable = 0; //按键默认不使能
m5data.runtime_seconds = 0; //秒
m5data.runtime_minutes = 0; //分钟
m5data.runtime_hours = 0; //小时
@ -38,9 +36,11 @@ void main_data_init(void)
m5data.io_cursor = 3; //当前游标位置,[0000,000]:0~6
m5data.io_cursor_prv = 3; //前一时刻游标位置
#if NIXIE_CUBE_ENABLE
m5data.twk_flag = 0; //0停止闪烁1开始闪烁
m5data.twk_flip = 0; //0显示1不显示
m5data.twk_cnt = 0; //闪烁计数
#endif
m5data.overflow_flag_low = 0; //向上溢出
m5data.overflow_flag_up = 0; //向下溢出
m5data.sign_flag_in = 0; //默认不显示符号
@ -54,10 +54,10 @@ void main_data_init(void)
m5data.o_numbers[i] = 0; //输出值/设定值
}
m5data.input_mode = VOL[0].tag; //输入功能初始为电压模式
m5data.input_mode_type = VOL[0].typ; //电压单位初始为V
m5data.output_mode = VOL[0].tag; //输出功能初始为电压模式
m5data.output_mode_type = VOL[0].typ; //电压单位初始为V
m5data.input_mode = CUR.tag; //输入功能初始为电流模式
m5data.input_mode_type = CUR.typ; //电流单位为mA
m5data.output_mode = CUR.tag; //输出功能初始为电流模式
m5data.output_mode_type = CUR.typ; //电压单位初始为mA
sig_channel_select(m5data.io_mode, m5data.output_mode_type); //默认通道
//绘图数据初始化
@ -81,13 +81,13 @@ void plot_data_init(void)
pltdata.scd_wait_tick = 0; //副轴等待滴答数
//chart组件显示int,实际值
pltdata.yreal_pri_low = VOL[0].low; //实际值的显示下限,主轴
pltdata.yreal_pri_up = VOL[0].up; //实际值的显示上限,主轴
pltdata.yreal_scd_low = VOL[0].low; //实际值的显示下限,副轴
pltdata.yreal_scd_up = VOL[0].up; //实际值的显示上限,副轴
pltdata.yreal_pri_value = VOL[0].pv; //主轴的实时值,即输出/设定值
pltdata.yreal_scd_value = VOL[0].pv; //副轴的实时值,即输入/测量值
pltdata.yreal_scd_value_prv = VOL[0].pv; //前一时刻的输入测量值
pltdata.yreal_pri_low = 0; //实际值的显示下限,主轴
pltdata.yreal_pri_up = 0; //实际值的显示上限,主轴
pltdata.yreal_scd_low = 0; //实际值的显示下限,副轴
pltdata.yreal_scd_up = 0; //实际值的显示上限,副轴
pltdata.yreal_pri_value = 0; //主轴的实时值,即输出/设定值
pltdata.yreal_scd_value = 0; //副轴的实时值,即输入/测量值
pltdata.yreal_scd_value_prv = 0; //前一时刻的输入测量值
}
void menu_reset(void)
@ -211,31 +211,59 @@ void key_functions_main(void)
return;
}
// m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
// m5data.twk_cnt = 0; //每次按下后闪烁计数清零
#if NIXIE_CUBE_ENABLE
m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
m5data.twk_cnt = 0; //每次按下后闪烁计数清零
#endif
keyset_output(1);
}
break;
case KEY_MENU:
{
key = 0;
if( m5data.tick_prv == -1 )
{
//恢复默认工作模式关闭、电压V输出
set_working_mode(SIG_VOLTAGE, VOLTAGE_V);
set_working_mode(SIG_CURRENT, CURRENT_MA);
//加载菜单界面
setup_scr_screen_setting(&guider_ui);
delay_cnt(500);
scr_setting_recover();
delay_cnt(100);
lv_scr_load(guider_ui.screen_setting);
//切换至菜单后,清除主界面对象,释放内存
//按键标志置0等待一段时间后再切换至设置菜单的按键功能
m5data.key_main_enable = 0;
m5data.tick_prv = xTaskGetTickCount(); //记录起始时刻
}else
{
m5data.tick_cur = xTaskGetTickCount(); //记录当前时刻
if(m5data.tick_cur < m5data.tick_prv) //防止溢出当前tick小于前一刻的tick
{
m5data.tick_prv = -1; //溢出后复位并返回
m5data.tick_cur = -1;
return;
}
if( (m5data.tick_cur - m5data.tick_prv) >= screen_switch_wait) //tick间隔达到目标后执行功能
{
//清除主界面对象,释放内存
lv_obj_del(guider_ui.screen_main);
//等待结束,切换成设置菜单的按键功能
m5data.scr_now = SCREEN_SETTING; //当前界面为详细设置菜单
m5data.key_setting_enable = 1;
scr_setting_recover();
key = 0;
m5data.tick_prv = -1;
m5data.tick_cur = -1;
}
}
}
break;
@ -319,8 +347,10 @@ void key_functions_main(void)
return;
}
#if NIXIE_CUBE_ENABLE
// m5data.twk_flag = 1; //上、下、左、右 任意一个键按下后,闪烁开始
// m5data.twk_cnt = 0; //每次按下后闪烁计数清零
#endif
//避免游标移动的瞬间,前一刻的数值处于闪烁熄灭的状态,移动游标前重新显示一次当前数值
set_nixie_cube(IO_OUTPUT, m5data.io_cursor, m5data.o_numbers[m5data.io_cursor]);
@ -359,8 +389,10 @@ void key_functions_main(void)
return;
}
// m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
// m5data.twk_cnt = 0; //每次按下后闪烁计数清零
#if NIXIE_CUBE_ENABLE
m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
m5data.twk_cnt = 0; //每次按下后闪烁计数清零
#endif
//避免游标移动的瞬间,前一刻的数值处于闪烁熄灭的状态,移动游标前重新显示一次当前数值
set_nixie_cube(IO_OUTPUT, m5data.io_cursor, m5data.o_numbers[m5data.io_cursor]);
@ -515,8 +547,10 @@ void key_functions_main(void)
return;
}
// m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
// m5data.twk_cnt = 0; //每次按下后闪烁计数清零
#if NIXIE_CUBE_ENABLE
m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
m5data.twk_cnt = 0; //每次按下后闪烁计数清零
#endif
keyset_output(-1);
}
@ -536,56 +570,97 @@ void key_functions_main(void)
}
}
uint8_t init_step = 0;
void scr_init_run(void)
{
//进度条动画结束后,界面切换至主界面
if( m5data.bar_anime_end_flag != 2 )
switch (init_step)
{
if(m5data.bar_anime_end_flag == 0)
case 0:
{
if( init_set_bar(0, 30, 1500) )
{
m5data.bar_anime_end_flag = 1;
init_step = 1;
}
}
break;
if(m5data.bar_anime_end_flag == 1)
case 1:
{
if( init_set_bar(60, 100, 1500) )
{
m5data.bar_anime_end_flag = 2;
init_step = 2;
}
}
break;
}
else
case 2:
{
// //开机动画结束后,清除初始界面内部组件,保留对象,释放内存
// lv_obj_clean(guider_ui.screen_init);
//加载主界面
setup_scr_screen_main(&guider_ui);
scr_main_recover();
delay_cnt(500);
init_step = 3;
}
break;
case 3:
{
if( m5data.tick_prv == -1 )
{
lv_scr_load(guider_ui.screen_main);
//删除初始界面对象,释放剩余内存
lv_obj_del(guider_ui.screen_init);
m5data.tick_prv = xTaskGetTickCount(); //记录起始时刻
}else
{
m5data.tick_cur = xTaskGetTickCount(); //记录当前时刻
if(m5data.tick_cur < m5data.tick_prv) //防止溢出当前tick小于前一刻的tick
{
m5data.tick_prv = -1; //溢出后复位并返回
m5data.tick_cur = -1;
return;
}
if(m5data.tick_cur - m5data.tick_prv >= screen_switch_wait) //tick间隔达到目标后执行功能
{
init_step = 4;
m5data.tick_prv = -1;
m5data.tick_cur = -1;
}
}
}
break;
case 4:
{
m5data.scr_init_flag = 1; //开机动画结束,只执行一次
m5data.scr_now = SCREEN_MAIN; //开机动画结束后,默认进入主界面
m5data.key_main_enable = 1;
set_working_mode(SIG_VOLTAGE, VOLTAGE_V);
init_step = 0;
}
break;
delay_cnt(5000);
default:
break;
}
}
//进度条设置, start[0, end], end[start,100], interval[ms]结束后返回1
//时间轴:开始 -> 设置起点 -> 等待interval[ms] -> 设置终点 -> 等待interval[ms] -> 结束
uint8_t bar_anime_step = 0;
uint8_t init_set_bar(uint8_t start, uint8_t end, uint16_t interval)
{
switch (m5data.bar_anime_step)
switch (bar_anime_step)
{
case 0:
{
@ -596,7 +671,7 @@ uint8_t init_set_bar(uint8_t start, uint8_t end, uint16_t interval)
{
lv_bar_set_value(guider_ui.screen_init_bar_1, end, LV_ANIM_ON);
m5data.bar_anime_step = 1;
bar_anime_step = 1;
}
else
{
@ -605,7 +680,8 @@ uint8_t init_set_bar(uint8_t start, uint8_t end, uint16_t interval)
m5data.tick_prv = xTaskGetTickCount(); //记录起始时刻
}
}else
}
else
{
m5data.tick_cur = xTaskGetTickCount(); //记录当前时刻
@ -616,14 +692,14 @@ uint8_t init_set_bar(uint8_t start, uint8_t end, uint16_t interval)
return 0;
}
if(m5data.tick_cur - m5data.tick_prv >= interval) //tick间隔达到目标后执行功能
if( (m5data.tick_cur - m5data.tick_prv) >= interval) //tick间隔达到目标后执行功能
{
m5data.tick_prv = -1;
m5data.tick_cur = -1;
lv_bar_set_value(guider_ui.screen_init_bar_1, end, LV_ANIM_ON);
m5data.bar_anime_step = 1;
bar_anime_step = 1;
}
}
}
@ -645,12 +721,12 @@ uint8_t init_set_bar(uint8_t start, uint8_t end, uint16_t interval)
return 0;
}
if(m5data.tick_cur - m5data.tick_prv >= interval) //tick间隔达到目标后执行功能
if( (m5data.tick_cur - m5data.tick_prv) >= interval) //tick间隔达到目标后执行功能
{
m5data.tick_prv = -1;
m5data.tick_cur = -1;
m5data.bar_anime_step = 0;
bar_anime_step = 0;
return 1;
}
@ -683,10 +759,14 @@ void scr_main_run(void)
//当前输入值/测量值显示
input_value_show(); //500ms
#if NIXIE_CUBE_ENABLE
//数值闪烁
//num_twinkle(); //1000ms
num_twinkle(); //1000ms
#endif
}
#if EEPROM_MONITOR_ENABLE
//eeprom状态监控置于运行时间显示内部
uint8_t ee_status_test = 0;
void eep_status_monitor(void)
@ -704,6 +784,7 @@ void eep_status_monitor(void)
delay_cnt(10);
EEPROM_CS_H;
}
#endif
void runtime_show(void)
{
@ -733,16 +814,19 @@ void runtime_show(void)
sprintf(m5data.runtime_show, "%02d:%02d:%02d",m5data.runtime_hours, m5data.runtime_minutes, m5data.runtime_seconds);
lv_span_set_text(guider_ui.screen_main_spangroup_time_span, m5data.runtime_show);
#if EEPROM_MONITOR_ENABLE
eep_status_monitor();
#endif
}
}
void battery_show(void)
{
//每隔3秒读取一次当前电量
if(battery_3000ms_flag)
if(battery_2000ms_flag)
{
battery_3000ms_flag = 0;
battery_2000ms_flag = 0;
read_battery();
@ -1322,7 +1406,7 @@ void scr_main_recover(void)
break;
}
//设置项同步
//曲线设置项同步
lv_chart_set_point_count(guider_ui.screen_main_chart_1, tabdata.item1_page0_plot_num);
for(uint8_t i = 0; i < tabdata.item1_page0_plot_num; i++)
{
@ -1337,116 +1421,20 @@ void scr_main_recover(void)
//颜色更新
void scr_main_color_update(void)
{
switch (tabdata.item1_page0_color_input)
{
case COLOR_BLUE:
{
lv_chart_set_series_color(guider_ui.screen_main_chart_1, guider_ui.screen_main_chart_1_1, lv_color_hex(COLOR_BLUE_VALUE));
lv_obj_set_style_line_color(guider_ui.screen_main_line_legend_IN, lv_color_hex(COLOR_BLUE_VALUE), LV_PART_MAIN|LV_STATE_DEFAULT);
set_obj_color(guider_ui.screen_main_label_area_IN, COLOR_BLUE);
}
break;
//输入
lv_chart_set_series_color(guider_ui.screen_main_chart_1, guider_ui.screen_main_chart_1_1, lv_color_hex( color_table[tabdata.item1_page0_color_input] ));
lv_obj_set_style_line_color(guider_ui.screen_main_line_legend_IN, lv_color_hex( color_table[tabdata.item1_page0_color_input] ), LV_PART_MAIN|LV_STATE_DEFAULT);
set_obj_color(guider_ui.screen_main_label_area_IN, tabdata.item1_page0_color_input);
case COLOR_DARK_BLUE:
{
lv_chart_set_series_color(guider_ui.screen_main_chart_1, guider_ui.screen_main_chart_1_1, lv_color_hex(COLOR_DARK_BLUE_VALUE));
lv_obj_set_style_line_color(guider_ui.screen_main_line_legend_IN, lv_color_hex(COLOR_DARK_BLUE_VALUE), LV_PART_MAIN|LV_STATE_DEFAULT);
set_obj_color(guider_ui.screen_main_label_area_IN, COLOR_DARK_BLUE);
}
break;
case COLOR_YELLOW:
{
lv_chart_set_series_color(guider_ui.screen_main_chart_1, guider_ui.screen_main_chart_1_1, lv_color_hex(COLOR_YELLOW_VALUE));
lv_obj_set_style_line_color(guider_ui.screen_main_line_legend_IN, lv_color_hex(COLOR_YELLOW_VALUE), LV_PART_MAIN|LV_STATE_DEFAULT);
set_obj_color(guider_ui.screen_main_label_area_IN, COLOR_YELLOW);
}
break;
case COLOR_GREEN:
{
lv_chart_set_series_color(guider_ui.screen_main_chart_1, guider_ui.screen_main_chart_1_1, lv_color_hex(COLOR_GREEN_VALUE));
lv_obj_set_style_line_color(guider_ui.screen_main_line_legend_IN, lv_color_hex(COLOR_GREEN_VALUE), LV_PART_MAIN|LV_STATE_DEFAULT);
set_obj_color(guider_ui.screen_main_label_area_IN, COLOR_GREEN);
}
break;
case COLOR_RED:
{
lv_chart_set_series_color(guider_ui.screen_main_chart_1, guider_ui.screen_main_chart_1_1, lv_color_hex(COLOR_RED_VALUE));
lv_obj_set_style_line_color(guider_ui.screen_main_line_legend_IN, lv_color_hex(COLOR_RED_VALUE), LV_PART_MAIN|LV_STATE_DEFAULT);
set_obj_color(guider_ui.screen_main_label_area_IN, COLOR_RED);
}
break;
case COLOR_PURPLE:
{
lv_chart_set_series_color(guider_ui.screen_main_chart_1, guider_ui.screen_main_chart_1_1, lv_color_hex(COLOR_PURPLE_VALUE));
lv_obj_set_style_line_color(guider_ui.screen_main_line_legend_IN, lv_color_hex(COLOR_PURPLE_VALUE), LV_PART_MAIN|LV_STATE_DEFAULT);
set_obj_color(guider_ui.screen_main_label_area_IN, COLOR_PURPLE);
}
break;
default:
break;
}
switch (tabdata.item1_page0_color_output)
{
case COLOR_BLUE:
{
lv_chart_set_series_color(guider_ui.screen_main_chart_1, guider_ui.screen_main_chart_1_0, lv_color_hex(COLOR_BLUE_VALUE));
lv_obj_set_style_line_color(guider_ui.screen_main_line_legend_OUT, lv_color_hex(COLOR_BLUE_VALUE), LV_PART_MAIN|LV_STATE_DEFAULT);
set_obj_color(guider_ui.screen_main_label_area_OUT, COLOR_BLUE);
}
break;
case COLOR_DARK_BLUE:
{
lv_chart_set_series_color(guider_ui.screen_main_chart_1, guider_ui.screen_main_chart_1_0, lv_color_hex(COLOR_DARK_BLUE_VALUE));
lv_obj_set_style_line_color(guider_ui.screen_main_line_legend_OUT, lv_color_hex(COLOR_DARK_BLUE_VALUE), LV_PART_MAIN|LV_STATE_DEFAULT);
set_obj_color(guider_ui.screen_main_label_area_OUT, COLOR_DARK_BLUE);
}
break;
case COLOR_YELLOW:
{
lv_chart_set_series_color(guider_ui.screen_main_chart_1, guider_ui.screen_main_chart_1_0, lv_color_hex(COLOR_YELLOW_VALUE));
lv_obj_set_style_line_color(guider_ui.screen_main_line_legend_OUT, lv_color_hex(COLOR_YELLOW_VALUE), LV_PART_MAIN|LV_STATE_DEFAULT);
set_obj_color(guider_ui.screen_main_label_area_OUT, COLOR_YELLOW);
}
break;
case COLOR_GREEN:
{
lv_chart_set_series_color(guider_ui.screen_main_chart_1, guider_ui.screen_main_chart_1_0, lv_color_hex(COLOR_GREEN_VALUE));
lv_obj_set_style_line_color(guider_ui.screen_main_line_legend_OUT, lv_color_hex(COLOR_GREEN_VALUE), LV_PART_MAIN|LV_STATE_DEFAULT);
set_obj_color(guider_ui.screen_main_label_area_OUT, COLOR_GREEN);
}
break;
case COLOR_RED:
{
lv_chart_set_series_color(guider_ui.screen_main_chart_1, guider_ui.screen_main_chart_1_0, lv_color_hex(COLOR_RED_VALUE));
lv_obj_set_style_line_color(guider_ui.screen_main_line_legend_OUT, lv_color_hex(COLOR_RED_VALUE), LV_PART_MAIN|LV_STATE_DEFAULT);
set_obj_color(guider_ui.screen_main_label_area_OUT, COLOR_RED);
}
break;
case COLOR_PURPLE:
{
lv_chart_set_series_color(guider_ui.screen_main_chart_1, guider_ui.screen_main_chart_1_0, lv_color_hex(COLOR_PURPLE_VALUE));
lv_obj_set_style_line_color(guider_ui.screen_main_line_legend_OUT, lv_color_hex(COLOR_PURPLE_VALUE), LV_PART_MAIN|LV_STATE_DEFAULT);
set_obj_color(guider_ui.screen_main_label_area_OUT, COLOR_PURPLE);
}
break;
default:
break;
}
//输出
lv_chart_set_series_color(guider_ui.screen_main_chart_1, guider_ui.screen_main_chart_1_0, lv_color_hex( color_table[tabdata.item1_page0_color_output] ));
lv_obj_set_style_line_color(guider_ui.screen_main_line_legend_OUT, lv_color_hex( color_table[tabdata.item1_page0_color_output] ), LV_PART_MAIN|LV_STATE_DEFAULT);
set_obj_color(guider_ui.screen_main_label_area_OUT, tabdata.item1_page0_color_output);
}
void num_twinkle(void) //数值闪烁
#if NIXIE_CUBE_ENABLE
//数值闪烁
void num_twinkle(void)
{
if(m5data.twk_flag == 0)
{
@ -1487,6 +1475,7 @@ void num_twinkle(void) //数值闪烁
set_nixie_cube(IO_OUTPUT, m5data.io_cursor, m5data.o_numbers[ m5data.io_cursor ]);
}
}
#endif
//实时曲线绘制
//将实际值线性转换成绘图值
@ -1610,10 +1599,12 @@ void set_working_mode(SIG_FUNCTIONS mode, SIG_FUNCTIONS_TYPE type)
m5data.io_cursor_prv = 3;
set_cursor_position();
#if NIXIE_CUBE_ENABLE
//闪烁参数清零
// m5data.twk_flag = 0; //闪烁中止
// m5data.twk_cnt = 0; //闪烁计数清零
// m5data.twk_flip = 0; //0显示1不显示
m5data.twk_flag = 0; //闪烁中止
m5data.twk_cnt = 0; //闪烁计数清零
m5data.twk_flip = 0; //0显示1不显示
#endif
//}
switch (mode)

View File

@ -1,6 +1,16 @@
#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)
@ -13,34 +23,36 @@ void tab_data_init(void)
tabdata.content_cursor_prv = 99; //前一刻的~
tabdata.content_focus = 0; //默认无焦点
//设置界面的初始默认值
//ITEMS_0 选项卡0
item0_data_init();
//设置界面的初始默认值
//EEPROM部分
eeprom_item_data_init();
//ITEMS_1
tabdata.item1_page0_sample_interval = 1500; //ms
tabdata.item1_page0_plot_num = 5; //曲线上同时显示的点数
tabdata.item1_page0_color_input = COLOR_YELLOW; //输入曲线颜色
tabdata.item1_page0_color_output = COLOR_BLUE; //输出曲线颜色
//ITEMS_0 选项卡0注释项位于EERPOM读取
tabdata.item0_page0_vunit = VOLTAGE_V; //电压单位
tabdata.item0_page1_TCtype = TC_K; //默认为K类型的热电偶
//ITEMS_2
//ITEMS_1注释项位于EERPOM读取
// tabdata.item1_page0_sample_interval = 1500; //ms
// tabdata.item1_page0_plot_num = 5; //曲线上同时显示的点数
// tabdata.item1_page0_color_input = COLOR_YELLOW; //输入曲线颜色
// tabdata.item1_page0_color_output = COLOR_BLUE; //输出曲线颜色
//ITEMS_2注释项位于EERPOM读取
tabdata.item2_page0_saveflag = 0; //[0, 1, 2 ] -> [未保存,保存中,已保存]
tabdata.input_log_temp = 0; //无纸化记录中转存入eeprom
tabdata.output_log_temp = 0; //无纸化记录中转存入eeprom
tabdata.item2_page0_resetflag = 0; //[0, 1, 2 ] -> [未复位,复位中,已复位]
//ITEMS_3
//ITEMS_3注释项位于EERPOM读取
tabdata.item3_page0_lightflag = 0; //照明状态标志0熄灭1开启
tabdata.item3_page0_language = MENU_SIMPLYFY_CHINESE; //语言类型
LIGHT_OFF;
// tabdata.item3_page0_language = MENU_SIMPLYFY_CHINESE; //语言类型
}
//选项卡 0 数据初始化
void item0_data_init(void)
//选项卡EEPROM部分数据初始化
void eeprom_item_data_init(void)
{
tabdata.item0_page0_vunit = VOLTAGE_V; //电压单位
tabdata.item0_page1_TCtype = TC_K; //默认为K类型的热电偶
if(tabdata.item2_page0_resetflag != 1)
{
//判断eeprom内是否存在数据
@ -54,7 +66,6 @@ void item0_data_init(void)
return;
}
}
//eeprom_rd_error_flag = 1;
//读取过程中出现过错误,或者触发复位
if( (eeprom_rd_error_flag == 1)||(tabdata.item2_page0_resetflag == 1) )
@ -87,6 +98,11 @@ void item0_data_init(void)
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)
@ -94,9 +110,6 @@ void item0_data_init(void)
//eeprom_datasave();
eeprom_datasave_changed();
//保存状态更改为“已保存”
tabdata.item2_page0_saveflag = 0;
set_item1_text(DATA_SAVE);
}
}
}
@ -114,33 +127,60 @@ void key_functions_setting(void)
{
case KEY_BACK:
{
key = 0;
//从设置界面返回主界面
if(tabdata.content_cursor == 99)
{
if( m5data.tick_prv == -1 )
{
//下次进入设置页面时从选项卡0开始
tabdata.item_cursor = 0;
//加载主界面
setup_scr_screen_main(&guider_ui);
delay_cnt(500);
//恢复之前显示的数据
scr_main_recover();
delay_cnt(100);
lv_scr_load(guider_ui.screen_main);
//切换至菜单后,清除主界面对象,释放内存
//设置菜单按键使能置零,等待一段时间后切换至主界面的按键功能
m5data.key_setting_enable = 0;
m5data.tick_prv = xTaskGetTickCount(); //记录起始时刻
}else
{
m5data.tick_cur = xTaskGetTickCount(); //记录当前时刻
if(m5data.tick_cur < m5data.tick_prv) //防止溢出当前tick小于前一刻的tick
{
m5data.tick_prv = -1; //溢出后复位并返回
m5data.tick_cur = -1;
return;
}
if( (m5data.tick_cur - m5data.tick_prv) >= screen_switch_wait) //tick间隔达到目标后执行功能
{
//清除设置界面对象,释放内存
lv_obj_del(guider_ui.screen_setting);
//当前界面为主界面
//等待结束,切换至主界面的按键功能
m5data.scr_now = SCREEN_MAIN;
m5data.key_main_enable = 1;
key = 0;
m5data.tick_prv = -1;
m5data.tick_cur = -1;
}
}
}
else
{
key = 0;
//当不存在焦点时,从内容选择返回选项卡选择
if(tabdata.content_focus == 0)
{
@ -616,8 +656,8 @@ void setting_items_page(uint8_t ite, uint8_t page)
//特殊处理,避免其他选项卡也被染上颜色
if(ite != ITEMS_1)
{
set_obj_color(guider_ui.screen_setting_label_21, 99);
set_obj_color(guider_ui.screen_setting_label_31, 99);
set_obj_color(guider_ui.screen_setting_label_21, 7);
set_obj_color(guider_ui.screen_setting_label_31, 7);
}
switch (ite)
@ -951,6 +991,9 @@ void setting_contents_modify(uint8_t ite, uint8_t con, int8_t step)
{
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;
@ -1033,9 +1076,20 @@ void scr_setting_recover(void)
// uint8_t eep_test_flag = 0;
// uint8_t tx = 0, rx = 0;
// uint8_t addr_test[3] = {0};
uint8_t reset_step = 0, save_step = 0;
void scr_setting_run(void) //详细设置界面
{
if(tabdata.item2_page0_saveflag == 1)
{
if(save_step == 0)
{
save_step = 1;
//执行保存
//eeprom_datasave();
eeprom_datasave_changed();
}
else
{
save_cnt++;
if(save_cnt > 5)
@ -1056,10 +1110,27 @@ void scr_setting_run(void) //详细设置界面
set_item2_text(DATA_SAVE);
}
save_step = 0;
}
}
}
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类型的热电偶
}
else
{
reset_cnt++;
if(reset_cnt > 5)
@ -1067,7 +1138,48 @@ void scr_setting_run(void) //详细设置界面
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);
reset_step = 0;
}
}
}

View File

@ -146,6 +146,8 @@ void physical_quantity_init(void)
RTD.pv = 0;
}
//切换屏幕的等待时间ms
uint16_t screen_switch_wait = 300;
void screen_run(void)
{
if(m5data.menu_reset_flag)
@ -166,17 +168,36 @@ void screen_run(void)
switch (m5data.scr_now)
{
case SCREEN_MAIN:
{
if(m5data.key_main_enable)
{
scr_main_run(); //主界面显示
key_functions_main(); //主界面的按键功能
}
else
{
//KEY_MENU按下后进入此处等待screen_switch_waitms直接切换存在卡死风险
key = KEY_MENU;
key_functions_main(); //主界面的按键功能
}
}
break;
case SCREEN_SETTING:
{
if (m5data.key_setting_enable)
{
scr_setting_run(); //设置界面
key_functions_setting(); //设置界面的按键功能
}
else
{
//KEY_BACK按下后进入此处等待screen_switch_waitms直接切换存在卡死风险
key = KEY_BACK;
key_functions_setting(); //主界面的按键功能
}
}
break;
default:

View File

@ -384,6 +384,36 @@ void eeprom_datasave(void)
eeprom_writedata(RTD_LOW_ADDR, temp_h);
eeprom_writedata(RTD_LOW_ADDR + 8, temp_l);
//采样间隔
temp_h = tabdata.item1_page0_sample_interval >> 8;
temp_l = tabdata.item1_page0_sample_interval & 0xFF;
eeprom_writedata(SAMPLE_INTERVAL_ADDR, temp_h);
eeprom_writedata(SAMPLE_INTERVAL_ADDR + 8, temp_l);
//描点数量
temp_h = tabdata.item1_page0_plot_num >> 8;
temp_l = tabdata.item1_page0_plot_num & 0xFF;
eeprom_writedata(PLOT_COUNT_ADDR, temp_h);
eeprom_writedata(PLOT_COUNT_ADDR + 8, temp_l);
//输入曲线颜色
temp_h = tabdata.item1_page0_color_input >> 8;
temp_l = tabdata.item1_page0_color_input & 0xFF;
eeprom_writedata(INPUT_COLOR_ADDR, temp_h);
eeprom_writedata(INPUT_COLOR_ADDR + 8, temp_l);
//输出曲线颜色
temp_h = tabdata.item1_page0_color_output >> 8;
temp_l = tabdata.item1_page0_color_output & 0xFF;
eeprom_writedata(OUTPUT_COLOR_ADDR, temp_h);
eeprom_writedata(OUTPUT_COLOR_ADDR + 8, temp_l);
//语言选择
temp_h = tabdata.item3_page0_language >> 8;
temp_l = tabdata.item3_page0_language & 0xFF;
eeprom_writedata(LANGUAGE_SELECT_ADDR, temp_h);
eeprom_writedata(LANGUAGE_SELECT_ADDR + 8, temp_l);
}
#else
@ -448,6 +478,41 @@ void eeprom_datasave_changed(void)
eeprom_datasave_single(12);
}
if(tab_temp.item1_page0_sample_interval != tabdata.item1_page0_sample_interval)
{
tabdata.item1_page0_sample_interval = tab_temp.item1_page0_sample_interval;
eeprom_datasave_single(13);
}
if(tab_temp.item1_page0_plot_num != tabdata.item1_page0_plot_num)
{
tabdata.item1_page0_plot_num = tab_temp.item1_page0_plot_num;
eeprom_datasave_single(14);
}
if(tab_temp.item1_page0_color_input != tabdata.item1_page0_color_input)
{
tabdata.item1_page0_color_input = tab_temp.item1_page0_color_input;
eeprom_datasave_single(15);
}
if(tab_temp.item1_page0_color_output != tabdata.item1_page0_color_output)
{
tabdata.item1_page0_color_output = tab_temp.item1_page0_color_output;
eeprom_datasave_single(16);
}
if(tab_temp.item3_page0_language != tabdata.item3_page0_language)
{
tabdata.item3_page0_language = tab_temp.item3_page0_language;
eeprom_datasave_single(17);
}
}
#endif
@ -664,6 +729,56 @@ void eeprom_datasave_single(uint8_t tag)
}
break;
case 13:
{
//采样间隔
temp_h = tabdata.item1_page0_sample_interval >> 8;
temp_l = tabdata.item1_page0_sample_interval & 0xFF;
eeprom_writedata(SAMPLE_INTERVAL_ADDR, temp_h);
eeprom_writedata(SAMPLE_INTERVAL_ADDR + 8, temp_l);
}
break;
case 14:
{
//描点数量
temp_h = tabdata.item1_page0_plot_num >> 8;
temp_l = tabdata.item1_page0_plot_num & 0xFF;
eeprom_writedata(PLOT_COUNT_ADDR, temp_h);
eeprom_writedata(PLOT_COUNT_ADDR + 8, temp_l);
}
break;
case 15:
{
//输入曲线颜色
temp_h = tabdata.item1_page0_color_input >> 8;
temp_l = tabdata.item1_page0_color_input & 0xFF;
eeprom_writedata(INPUT_COLOR_ADDR, temp_h);
eeprom_writedata(INPUT_COLOR_ADDR + 8, temp_l);
}
break;
case 16:
{
//输出曲线颜色
temp_h = tabdata.item1_page0_color_output >> 8;
temp_l = tabdata.item1_page0_color_output & 0xFF;
eeprom_writedata(OUTPUT_COLOR_ADDR, temp_h);
eeprom_writedata(OUTPUT_COLOR_ADDR + 8, temp_l);
}
break;
case 17:
{
//语言选择
temp_h = tabdata.item3_page0_language >> 8;
temp_l = tabdata.item3_page0_language & 0xFF;
eeprom_writedata(LANGUAGE_SELECT_ADDR, temp_h);
eeprom_writedata(LANGUAGE_SELECT_ADDR + 8, temp_l);
}
break;
default:
break;
}
@ -802,6 +917,31 @@ void eeprom_dataread(void)
temp_h = eeprom_readdata(RTD_LOW_ADDR);
temp_l = eeprom_readdata(RTD_LOW_ADDR + 8);
tabdata.item0_page2_RTDlow = ( temp_h << 8 ) + temp_l;
//采样间隔
temp_h = eeprom_readdata(SAMPLE_INTERVAL_ADDR);
temp_l = eeprom_readdata(SAMPLE_INTERVAL_ADDR + 8);
tabdata.item1_page0_sample_interval = ( temp_h << 8 ) + temp_l;
//描点数量
temp_h = eeprom_readdata(PLOT_COUNT_ADDR);
temp_l = eeprom_readdata(PLOT_COUNT_ADDR + 8);
tabdata.item1_page0_plot_num = ( temp_h << 8 ) + temp_l;
//输入曲线颜色
temp_h = eeprom_readdata(INPUT_COLOR_ADDR);
temp_l = eeprom_readdata(INPUT_COLOR_ADDR + 8);
tabdata.item1_page0_color_input = ( temp_h << 8 ) + temp_l;
//输出曲线颜色
temp_h = eeprom_readdata(OUTPUT_COLOR_ADDR);
temp_l = eeprom_readdata(OUTPUT_COLOR_ADDR + 8);
tabdata.item1_page0_color_output = ( temp_h << 8 ) + temp_l;
//语言选择
temp_h = eeprom_readdata(LANGUAGE_SELECT_ADDR);
temp_l = eeprom_readdata(LANGUAGE_SELECT_ADDR + 8);
tabdata.item3_page0_language = ( temp_h << 8 ) + temp_l;
}
//判断EEPROM内是否已存在数据

View File

@ -902,50 +902,7 @@ void set_item3_text(uint8_t con)
//修改对象颜色
void set_obj_color(lv_obj_t * obj, uint8_t color)
{
switch (color)
{
case COLOR_BLUE:
{
lv_obj_set_style_text_color(obj, lv_color_hex(COLOR_BLUE_VALUE), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case COLOR_DARK_BLUE:
{
lv_obj_set_style_text_color(obj, lv_color_hex(COLOR_DARK_BLUE_VALUE), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case COLOR_YELLOW:
{
lv_obj_set_style_text_color(obj, lv_color_hex(COLOR_YELLOW_VALUE), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case COLOR_GREEN:
{
lv_obj_set_style_text_color(obj, lv_color_hex(COLOR_GREEN_VALUE), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case COLOR_RED:
{
lv_obj_set_style_text_color(obj, lv_color_hex(COLOR_RED_VALUE), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case COLOR_PURPLE:
{
lv_obj_set_style_text_color(obj, lv_color_hex(COLOR_PURPLE_VALUE), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
default:
{
lv_obj_set_style_text_color(obj, lv_color_hex(0x000000), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
}
lv_obj_set_style_text_color(obj, lv_color_hex(color_table[color]), LV_PART_MAIN|LV_STATE_DEFAULT);
}

View File

@ -294,12 +294,6 @@ void set_item2_value(uint8_t con, int8_t step)
{
tabdata.item2_page0_saveflag = 1;
set_item2_text(DATA_SAVE);
//执行保存
//eeprom_datasave();
eeprom_datasave_changed();
save_cnt = 0;
}
}
@ -311,11 +305,6 @@ void set_item2_value(uint8_t con, int8_t step)
{
tabdata.item2_page0_resetflag = 1;
set_item2_text(DATA_RESET);
//执行复位
item0_data_init();
reset_cnt = 0;
}
}
@ -347,6 +336,9 @@ void set_item3_value(uint8_t con, int8_t step)
{
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);
}

View File

@ -10,8 +10,8 @@
int heart_1000ms_flag = 0;
int heart_1000ms_cnt = 0;
int battery_3000ms_flag = 0;
int battery_3000ms_cnt = 0;
int battery_2000ms_flag = 0;
int battery_2000ms_cnt = 0;
int plot_ms_flag = 0;
int plot_ms_cnt = 0;
int twk_1000ms_flag = 0;
@ -35,11 +35,11 @@ void duty_tim6(void)
heart_1000ms_flag = 1;
}
battery_3000ms_cnt++;
if( battery_3000ms_cnt >= 3000)
battery_2000ms_cnt++;
if( battery_2000ms_cnt >= 2000)
{
battery_3000ms_cnt = 0;
battery_3000ms_flag = 1;
battery_2000ms_cnt = 0;
battery_2000ms_flag = 1;
}
plot_ms_cnt++;

View File

@ -47,9 +47,9 @@ extern "C" {
#define LED_TOG HAL_GPIO_TogglePin(light_GPIO_Port, light_Pin)
#define LIGHT_ON HAL_GPIO_WritePin(light_GPIO_Port, light_Pin, GPIO_PIN_SET)
// #define LIGHT_ON HAL_GPIO_WritePin(light_GPIO_Port, light_Pin, GPIO_PIN_SET)
#define LIGHT_OFF HAL_GPIO_WritePin(light_GPIO_Port, light_Pin, GPIO_PIN_RESET)
// #define LIGHT_OFF HAL_GPIO_WritePin(light_GPIO_Port, light_Pin, GPIO_PIN_RESET)
//#define RS485_RW(RW) HAL_GPIO_WritePin(RS485_RW_GPIO_Port, RS485_RW_Pin, RW)

View File

@ -310,7 +310,7 @@ void start_menu(void const * argument)
for(;;)
{
screen_run();
osDelay(200);
osDelay(500);
menu_stack_watch = uxTaskGetStackHighWaterMark(NULL);
menu_stack_watch = 512 - menu_stack_watch;
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff