更新:
1、曲线颜色自定义部分代码精简; 2、采样间隔、描点数量、输出&输入曲线颜色、语言选择加入EEPROM存储; 3、界面切换逻辑调整,降低了卡死的概率;
This commit is contained in:
parent
956ca7baaa
commit
9b7de39574
|
@ -16,7 +16,6 @@
|
||||||
|
|
||||||
//主界面
|
//主界面
|
||||||
//{
|
//{
|
||||||
|
|
||||||
//主界面编号1,信号输入输出,示波器显示
|
//主界面编号1,信号输入输出,示波器显示
|
||||||
#define SCREEN_MAIN 1
|
#define SCREEN_MAIN 1
|
||||||
|
|
||||||
|
@ -53,6 +52,11 @@
|
||||||
//数码管数值增加(正负情况交替时,up和down两个键起到的作用会对调,因此专门定义参数用于区分数值的增减)
|
//数码管数值增加(正负情况交替时,up和down两个键起到的作用会对调,因此专门定义参数用于区分数值的增减)
|
||||||
#define NIXIE_DECREASE 0
|
#define NIXIE_DECREASE 0
|
||||||
|
|
||||||
|
//数码管闪烁功能使能
|
||||||
|
#define NIXIE_CUBE_ENABLE 0
|
||||||
|
|
||||||
|
//EEPROM状态监控
|
||||||
|
#define EEPROM_MONITOR_ENABLE 1
|
||||||
//}
|
//}
|
||||||
|
|
||||||
//菜单数据初始化
|
//菜单数据初始化
|
||||||
|
|
|
@ -125,7 +125,7 @@ extern int16_t reset_cnt;
|
||||||
//内容焦点后的底色
|
//内容焦点后的底色
|
||||||
#define COLOR_CONTENTS_FOCUSED 0X9dffb0
|
#define COLOR_CONTENTS_FOCUSED 0X9dffb0
|
||||||
|
|
||||||
//曲线颜色
|
//曲线备选颜色
|
||||||
//{
|
//{
|
||||||
//淡蓝色
|
//淡蓝色
|
||||||
#define COLOR_BLUE 0
|
#define COLOR_BLUE 0
|
||||||
|
@ -151,11 +151,11 @@ extern int16_t reset_cnt;
|
||||||
#define COLOR_PURPLE 5
|
#define COLOR_PURPLE 5
|
||||||
#define COLOR_PURPLE_VALUE 0xFF00D4
|
#define COLOR_PURPLE_VALUE 0xFF00D4
|
||||||
|
|
||||||
//输入图例颜色值
|
//黑色
|
||||||
#define COLOR_LEGEND_INPUT COLOR_YELLOW_VALUE
|
#define COLOR_BLACK 7
|
||||||
|
#define COLOR_BLACK_VALUE 0x000000
|
||||||
|
|
||||||
//输出图例颜色值
|
extern int32_t color_table[7];
|
||||||
#define COLOR_LEGEND_OUTPUT COLOR_BLUE_VALUE
|
|
||||||
//}
|
//}
|
||||||
|
|
||||||
//}
|
//}
|
||||||
|
@ -163,8 +163,8 @@ extern int16_t reset_cnt;
|
||||||
//设置菜单数据初始化
|
//设置菜单数据初始化
|
||||||
void tab_data_init(void);
|
void tab_data_init(void);
|
||||||
|
|
||||||
//选项卡 0 数据初始化
|
//选项卡EEPROM部分数据初始化
|
||||||
void item0_data_init(void);
|
void eeprom_item_data_init(void);
|
||||||
|
|
||||||
//按键功能,详细设置菜单界面
|
//按键功能,详细设置菜单界面
|
||||||
void key_functions_setting(void);
|
void key_functions_setting(void);
|
||||||
|
|
|
@ -97,10 +97,9 @@ typedef struct
|
||||||
|
|
||||||
//screen_init
|
//screen_init
|
||||||
uint8_t scr_init_flag; //初始界面标志,是否播放过开机动画
|
uint8_t scr_init_flag; //初始界面标志,是否播放过开机动画
|
||||||
uint8_t bar_anime_step; //进度条动画步骤
|
|
||||||
uint8_t bar_anime_end_flag; //进度条动画结束标志
|
|
||||||
|
|
||||||
//screen_main
|
//screen_main
|
||||||
|
uint8_t key_main_enable; //按键功能使能标志
|
||||||
uint8_t runtime_seconds;
|
uint8_t runtime_seconds;
|
||||||
uint8_t runtime_minutes;
|
uint8_t runtime_minutes;
|
||||||
uint8_t runtime_hours;
|
uint8_t runtime_hours;
|
||||||
|
@ -116,15 +115,18 @@ typedef struct
|
||||||
SIG_FUNCTIONS_TYPE input_mode_type; //当前输入模式的类型
|
SIG_FUNCTIONS_TYPE input_mode_type; //当前输入模式的类型
|
||||||
SIG_FUNCTIONS output_mode; //当前的输出模式
|
SIG_FUNCTIONS output_mode; //当前的输出模式
|
||||||
SIG_FUNCTIONS_TYPE output_mode_type; //当前输出模式的类型
|
SIG_FUNCTIONS_TYPE output_mode_type; //当前输出模式的类型
|
||||||
|
#if NIXIE_CUBE_ENABLE
|
||||||
uint8_t twk_flag; //闪烁使能标志
|
uint8_t twk_flag; //闪烁使能标志
|
||||||
uint8_t twk_flip; //0-1变量,用于控制显示内容翻转(显示/不显示)
|
uint8_t twk_flip; //0-1变量,用于控制显示内容翻转(显示/不显示)
|
||||||
uint8_t twk_cnt; //闪烁计数,计数达到上限后闪烁停止
|
uint8_t twk_cnt; //闪烁计数,计数达到上限后闪烁停止
|
||||||
|
#endif
|
||||||
uint8_t overflow_flag_up; //向上溢出标志
|
uint8_t overflow_flag_up; //向上溢出标志
|
||||||
uint8_t overflow_flag_low; //向下溢出标志
|
uint8_t overflow_flag_low; //向下溢出标志
|
||||||
uint8_t sign_flag_in; //输入信号符号位标志,0->不显示,1->显示负号
|
uint8_t sign_flag_in; //输入信号符号位标志,0->不显示,1->显示负号
|
||||||
uint8_t sign_flag_out; //输出信号符号位标志,0->不显示,1->显示负号
|
uint8_t sign_flag_out; //输出信号符号位标志,0->不显示,1->显示负号
|
||||||
|
|
||||||
//screen_setting
|
//screen_setting
|
||||||
|
uint8_t key_setting_enable; //按键功能使能标志
|
||||||
|
|
||||||
}MENU_DATA;
|
}MENU_DATA;
|
||||||
|
|
||||||
|
@ -225,6 +227,7 @@ extern PHYSICAL_QUANTITY RES; //电阻,Ω
|
||||||
extern PHYSICAL_QUANTITY FRE; //频率,KHz
|
extern PHYSICAL_QUANTITY FRE; //频率,KHz
|
||||||
extern PHYSICAL_QUANTITY TC[8]; //热电偶,共8种
|
extern PHYSICAL_QUANTITY TC[8]; //热电偶,共8种
|
||||||
extern PHYSICAL_QUANTITY RTD; //热电阻
|
extern PHYSICAL_QUANTITY RTD; //热电阻
|
||||||
|
extern uint16_t screen_switch_wait; //屏幕切换的等待时间
|
||||||
|
|
||||||
//按键值
|
//按键值
|
||||||
#define KEY_OUT 76
|
#define KEY_OUT 76
|
||||||
|
|
|
@ -41,95 +41,110 @@
|
||||||
|
|
||||||
//my address
|
//my address
|
||||||
//{
|
//{
|
||||||
//0x7D0 - 0x7E0,标记后写入0xAAAA(连续16位“1”“0”交替)
|
//0x7D0 - 0x7E0(2000 - 2016),标记后写入0xAAAA(连续16位“1”“0”交替)
|
||||||
#define DEVICE_CHECK 0x0007D0
|
#define DEVICE_CHECK 0x0007D0
|
||||||
#define EE_START_ADDR 0x000000
|
#define EE_START_ADDR 0x000000
|
||||||
#define EE_INTERVAL 16
|
#define EE_INTERVAL 16
|
||||||
|
|
||||||
//电压V上限,tag:0
|
//电压V上限,tag:0,EE_START_ADDR + 0*EE_INTERVAL
|
||||||
#define VOL_V_UP_ADDR EE_START_ADDR
|
#define VOL_V_UP_ADDR EE_START_ADDR
|
||||||
|
|
||||||
//电压V下限,tag:0
|
//电压V下限,tag:0,EE_START_ADDR + 1*EE_INTERVAL
|
||||||
#define VOL_V_LOW_ADDR (VOL_V_UP_ADDR + EE_INTERVAL)
|
#define VOL_V_LOW_ADDR (VOL_V_UP_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//电压mV上限,tag:0
|
//电压mV上限,tag:0,EE_START_ADDR + 2*EE_INTERVAL
|
||||||
#define VOL_MV_UP_ADDR (VOL_V_LOW_ADDR + EE_INTERVAL)
|
#define VOL_MV_UP_ADDR (VOL_V_LOW_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//电压mV下限,tag:0
|
//电压mV下限,tag:0,EE_START_ADDR + 3*EE_INTERVAL
|
||||||
#define VOL_MV_LOW_ADDR (VOL_MV_UP_ADDR + EE_INTERVAL)
|
#define VOL_MV_LOW_ADDR (VOL_MV_UP_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//电流上限,tag:1
|
//电流上限,tag:1,EE_START_ADDR + 4*EE_INTERVAL
|
||||||
#define CUR_UP_ADDR (VOL_MV_LOW_ADDR + EE_INTERVAL)
|
#define CUR_UP_ADDR (VOL_MV_LOW_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//电流下限,tag:1
|
//电流下限,tag:1,EE_START_ADDR + 5*EE_INTERVAL
|
||||||
#define CUR_LOW_ADDR (CUR_UP_ADDR + EE_INTERVAL)
|
#define CUR_LOW_ADDR (CUR_UP_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//电阻上限,tag:2
|
//电阻上限,tag:2,EE_START_ADDR + 6*EE_INTERVAL
|
||||||
#define RES_UP_ADDR (CUR_LOW_ADDR + EE_INTERVAL)
|
#define RES_UP_ADDR (CUR_LOW_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//电阻下限,tag:2
|
//电阻下限,tag:2,EE_START_ADDR + 7*EE_INTERVAL
|
||||||
#define RES_LOW_ADDR (RES_UP_ADDR + EE_INTERVAL)
|
#define RES_LOW_ADDR (RES_UP_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//频率上限,tag:3
|
//频率上限,tag:3,EE_START_ADDR + 8*EE_INTERVAL
|
||||||
#define FRE_UP_ADDR (RES_LOW_ADDR + EE_INTERVAL)
|
#define FRE_UP_ADDR (RES_LOW_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//频率下限,tag:3
|
//频率下限,tag:3,EE_START_ADDR + 9*EE_INTERVAL
|
||||||
#define FRE_LOW_ADDR (FRE_UP_ADDR + EE_INTERVAL)
|
#define FRE_LOW_ADDR (FRE_UP_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//TC_K上限,tag:4
|
//TC_K上限,tag:4,EE_START_ADDR + 10*EE_INTERVAL
|
||||||
#define TC_K_UP_ADDR (FRE_LOW_ADDR + EE_INTERVAL)
|
#define TC_K_UP_ADDR (FRE_LOW_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//TC_K下限,tag:4
|
//TC_K下限,tag:4,EE_START_ADDR + 11*EE_INTERVAL
|
||||||
#define TC_K_LOW_ADDR (TC_K_UP_ADDR + EE_INTERVAL)
|
#define TC_K_LOW_ADDR (TC_K_UP_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//TC_S上限,tag:5
|
//TC_S上限,tag:5,EE_START_ADDR + 12*EE_INTERVAL
|
||||||
#define TC_S_UP_ADDR (TC_K_LOW_ADDR + EE_INTERVAL)
|
#define TC_S_UP_ADDR (TC_K_LOW_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//TC_S下限,tag:5
|
//TC_S下限,tag:5,EE_START_ADDR + 13*EE_INTERVAL
|
||||||
#define TC_S_LOW_ADDR (TC_S_UP_ADDR + EE_INTERVAL)
|
#define TC_S_LOW_ADDR (TC_S_UP_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//TC_N上限,tag:6
|
//TC_N上限,tag:6,EE_START_ADDR + 14*EE_INTERVAL
|
||||||
#define TC_N_UP_ADDR (TC_S_LOW_ADDR + EE_INTERVAL)
|
#define TC_N_UP_ADDR (TC_S_LOW_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//TC_N下限,tag:6
|
//TC_N下限,tag:6,EE_START_ADDR + 15*EE_INTERVAL
|
||||||
#define TC_N_LOW_ADDR (TC_N_UP_ADDR + EE_INTERVAL)
|
#define TC_N_LOW_ADDR (TC_N_UP_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//TC_B上限,tag:7
|
//TC_B上限,tag:7,EE_START_ADDR + 16*EE_INTERVAL
|
||||||
#define TC_B_UP_ADDR (TC_N_LOW_ADDR + EE_INTERVAL)
|
#define TC_B_UP_ADDR (TC_N_LOW_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//TC_B下限,tag:7
|
//TC_B下限,tag:7,EE_START_ADDR + 17*EE_INTERVAL
|
||||||
#define TC_B_LOW_ADDR (TC_B_UP_ADDR + EE_INTERVAL)
|
#define TC_B_LOW_ADDR (TC_B_UP_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//TC_E上限,tag:8
|
//TC_E上限,tag:8,EE_START_ADDR + 18*EE_INTERVAL
|
||||||
#define TC_E_UP_ADDR (TC_B_LOW_ADDR + EE_INTERVAL)
|
#define TC_E_UP_ADDR (TC_B_LOW_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//TC_E下限,tag:8
|
//TC_E下限,tag:8,EE_START_ADDR + 19*EE_INTERVAL
|
||||||
#define TC_E_LOW_ADDR (TC_E_UP_ADDR + EE_INTERVAL)
|
#define TC_E_LOW_ADDR (TC_E_UP_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//TC_J上限,tag:9
|
//TC_J上限,tag:9,EE_START_ADDR + 20*EE_INTERVAL
|
||||||
#define TC_J_UP_ADDR (TC_E_LOW_ADDR + EE_INTERVAL)
|
#define TC_J_UP_ADDR (TC_E_LOW_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//TC_J下限,tag:9
|
//TC_J下限,tag:9,EE_START_ADDR + 21*EE_INTERVAL
|
||||||
#define TC_J_LOW_ADDR (TC_J_UP_ADDR + EE_INTERVAL)
|
#define TC_J_LOW_ADDR (TC_J_UP_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//TC_R上限,tag:10
|
//TC_R上限,tag:10,EE_START_ADDR + 22*EE_INTERVAL
|
||||||
#define TC_R_UP_ADDR (TC_J_LOW_ADDR + EE_INTERVAL)
|
#define TC_R_UP_ADDR (TC_J_LOW_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//TC_R下限,tag:10
|
//TC_R下限,tag:10,EE_START_ADDR + 23*EE_INTERVAL
|
||||||
#define TC_R_LOW_ADDR (TC_R_UP_ADDR + EE_INTERVAL)
|
#define TC_R_LOW_ADDR (TC_R_UP_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//TC_T上限,tag:11
|
//TC_T上限,tag:11,EE_START_ADDR + 24*EE_INTERVAL
|
||||||
#define TC_T_UP_ADDR (TC_R_LOW_ADDR + EE_INTERVAL)
|
#define TC_T_UP_ADDR (TC_R_LOW_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//TC_T下限,tag:11
|
//TC_T下限,tag:11,EE_START_ADDR + 25*EE_INTERVAL
|
||||||
#define TC_T_LOW_ADDR (TC_T_UP_ADDR + EE_INTERVAL)
|
#define TC_T_LOW_ADDR (TC_T_UP_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//RTD上限,tag:12
|
//RTD上限,tag:12,EE_START_ADDR + 26*EE_INTERVAL
|
||||||
#define RTD_UP_ADDR (TC_T_LOW_ADDR + EE_INTERVAL)
|
#define RTD_UP_ADDR (TC_T_LOW_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//RTD下限,tag:12
|
//RTD下限,tag:12,EE_START_ADDR + 27*EE_INTERVAL
|
||||||
#define RTD_LOW_ADDR (RTD_UP_ADDR + EE_INTERVAL)
|
#define RTD_LOW_ADDR (RTD_UP_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
|
//采样间隔(画点时间间隔),tag:13,EE_START_ADDR + 28*EE_INTERVAL
|
||||||
|
#define SAMPLE_INTERVAL_ADDR (RTD_LOW_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
|
//描点数量,tag:14,EE_START_ADDR + 29*EE_INTERVAL
|
||||||
|
#define PLOT_COUNT_ADDR (SAMPLE_INTERVAL_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
|
//输入曲线颜色,tag:15,EE_START_ADDR + 30*EE_INTERVAL
|
||||||
|
#define INPUT_COLOR_ADDR (PLOT_COUNT_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
|
//输出曲线颜色,tag:16,EE_START_ADDR + 31*EE_INTERVAL
|
||||||
|
#define OUTPUT_COLOR_ADDR (INPUT_COLOR_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
|
//语言选择,tag:17,EE_START_ADDR + 32*EE_INTERVAL
|
||||||
|
#define LANGUAGE_SELECT_ADDR (OUTPUT_COLOR_ADDR + EE_INTERVAL)
|
||||||
|
|
||||||
//根据需求后续在此处向后添加
|
//根据需求后续在此处向后添加
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,10 @@
|
||||||
|
|
||||||
#include "apps_gather.h"
|
#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的值
|
//修改选项卡0的值
|
||||||
void set_item0_value(uint8_t con, int8_t step);
|
void set_item0_value(uint8_t con, int8_t step);
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,8 @@
|
||||||
|
|
||||||
extern int heart_1000ms_flag;
|
extern int heart_1000ms_flag;
|
||||||
extern int heart_1000ms_cnt;
|
extern int heart_1000ms_cnt;
|
||||||
extern int battery_3000ms_flag;
|
extern int battery_2000ms_flag;
|
||||||
extern int battery_3000ms_cnt;
|
extern int battery_2000ms_cnt;
|
||||||
extern int plot_ms_flag;
|
extern int plot_ms_flag;
|
||||||
extern int plot_ms_cnt;
|
extern int plot_ms_cnt;
|
||||||
extern int twk_1000ms_flag;
|
extern int twk_1000ms_flag;
|
||||||
|
|
|
@ -14,21 +14,19 @@ void screen_data_init(void)
|
||||||
|
|
||||||
//screen_init
|
//screen_init
|
||||||
m5data.scr_init_flag = 0; //是否进行过初始化(开机动画)
|
m5data.scr_init_flag = 0; //是否进行过初始化(开机动画)
|
||||||
m5data.bar_anime_step = 0; //进度条动画步骤
|
|
||||||
m5data.bar_anime_end_flag = 0; //进度条动画结束标志
|
|
||||||
|
|
||||||
//screen_main
|
//screen_main
|
||||||
main_data_init();
|
main_data_init();
|
||||||
|
|
||||||
//screen_setting
|
//screen_setting
|
||||||
tab_data_init();
|
tab_data_init();
|
||||||
LIGHT_OFF;
|
m5data.key_setting_enable = 0; //按键默认不使能
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//主界面参数初始化
|
//主界面参数初始化
|
||||||
void main_data_init(void)
|
void main_data_init(void)
|
||||||
{
|
{
|
||||||
|
m5data.key_main_enable = 0; //按键默认不使能
|
||||||
m5data.runtime_seconds = 0; //秒
|
m5data.runtime_seconds = 0; //秒
|
||||||
m5data.runtime_minutes = 0; //分钟
|
m5data.runtime_minutes = 0; //分钟
|
||||||
m5data.runtime_hours = 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 = 3; //当前游标位置,[0000,000]:0~6
|
||||||
m5data.io_cursor_prv = 3; //前一时刻游标位置
|
m5data.io_cursor_prv = 3; //前一时刻游标位置
|
||||||
|
#if NIXIE_CUBE_ENABLE
|
||||||
m5data.twk_flag = 0; //0停止闪烁,1开始闪烁
|
m5data.twk_flag = 0; //0停止闪烁,1开始闪烁
|
||||||
m5data.twk_flip = 0; //0显示,1不显示
|
m5data.twk_flip = 0; //0显示,1不显示
|
||||||
m5data.twk_cnt = 0; //闪烁计数
|
m5data.twk_cnt = 0; //闪烁计数
|
||||||
|
#endif
|
||||||
m5data.overflow_flag_low = 0; //向上溢出
|
m5data.overflow_flag_low = 0; //向上溢出
|
||||||
m5data.overflow_flag_up = 0; //向下溢出
|
m5data.overflow_flag_up = 0; //向下溢出
|
||||||
m5data.sign_flag_in = 0; //默认不显示符号
|
m5data.sign_flag_in = 0; //默认不显示符号
|
||||||
|
@ -54,10 +54,10 @@ void main_data_init(void)
|
||||||
m5data.o_numbers[i] = 0; //输出值/设定值
|
m5data.o_numbers[i] = 0; //输出值/设定值
|
||||||
}
|
}
|
||||||
|
|
||||||
m5data.input_mode = VOL[0].tag; //输入功能初始为电压模式
|
m5data.input_mode = CUR.tag; //输入功能初始为电流模式
|
||||||
m5data.input_mode_type = VOL[0].typ; //电压单位初始为V
|
m5data.input_mode_type = CUR.typ; //电流单位为mA
|
||||||
m5data.output_mode = VOL[0].tag; //输出功能初始为电压模式
|
m5data.output_mode = CUR.tag; //输出功能初始为电流模式
|
||||||
m5data.output_mode_type = VOL[0].typ; //电压单位初始为V
|
m5data.output_mode_type = CUR.typ; //电压单位初始为mA
|
||||||
sig_channel_select(m5data.io_mode, m5data.output_mode_type); //默认通道
|
sig_channel_select(m5data.io_mode, m5data.output_mode_type); //默认通道
|
||||||
|
|
||||||
//绘图数据初始化
|
//绘图数据初始化
|
||||||
|
@ -81,13 +81,13 @@ void plot_data_init(void)
|
||||||
pltdata.scd_wait_tick = 0; //副轴等待滴答数
|
pltdata.scd_wait_tick = 0; //副轴等待滴答数
|
||||||
|
|
||||||
//chart组件显示(int),实际值
|
//chart组件显示(int),实际值
|
||||||
pltdata.yreal_pri_low = VOL[0].low; //实际值的显示下限,主轴
|
pltdata.yreal_pri_low = 0; //实际值的显示下限,主轴
|
||||||
pltdata.yreal_pri_up = VOL[0].up; //实际值的显示上限,主轴
|
pltdata.yreal_pri_up = 0; //实际值的显示上限,主轴
|
||||||
pltdata.yreal_scd_low = VOL[0].low; //实际值的显示下限,副轴
|
pltdata.yreal_scd_low = 0; //实际值的显示下限,副轴
|
||||||
pltdata.yreal_scd_up = VOL[0].up; //实际值的显示上限,副轴
|
pltdata.yreal_scd_up = 0; //实际值的显示上限,副轴
|
||||||
pltdata.yreal_pri_value = VOL[0].pv; //主轴的实时值,即输出/设定值
|
pltdata.yreal_pri_value = 0; //主轴的实时值,即输出/设定值
|
||||||
pltdata.yreal_scd_value = VOL[0].pv; //副轴的实时值,即输入/测量值
|
pltdata.yreal_scd_value = 0; //副轴的实时值,即输入/测量值
|
||||||
pltdata.yreal_scd_value_prv = VOL[0].pv; //前一时刻的输入测量值
|
pltdata.yreal_scd_value_prv = 0; //前一时刻的输入测量值
|
||||||
}
|
}
|
||||||
|
|
||||||
void menu_reset(void)
|
void menu_reset(void)
|
||||||
|
@ -211,31 +211,59 @@ void key_functions_main(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
|
#if NIXIE_CUBE_ENABLE
|
||||||
// m5data.twk_cnt = 0; //每次按下后闪烁计数清零
|
m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
|
||||||
|
m5data.twk_cnt = 0; //每次按下后闪烁计数清零
|
||||||
|
#endif
|
||||||
keyset_output(1);
|
keyset_output(1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case KEY_MENU:
|
case KEY_MENU:
|
||||||
{
|
{
|
||||||
key = 0;
|
if( m5data.tick_prv == -1 )
|
||||||
|
{
|
||||||
//恢复默认工作模式:关闭、电压V输出
|
//恢复默认工作模式:关闭、电压V输出
|
||||||
set_working_mode(SIG_VOLTAGE, VOLTAGE_V);
|
set_working_mode(SIG_CURRENT, CURRENT_MA);
|
||||||
|
|
||||||
//加载菜单界面
|
//加载菜单界面
|
||||||
setup_scr_screen_setting(&guider_ui);
|
setup_scr_screen_setting(&guider_ui);
|
||||||
delay_cnt(500);
|
scr_setting_recover();
|
||||||
|
|
||||||
|
delay_cnt(100);
|
||||||
|
|
||||||
lv_scr_load(guider_ui.screen_setting);
|
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);
|
lv_obj_del(guider_ui.screen_main);
|
||||||
|
|
||||||
|
//等待结束,切换成设置菜单的按键功能
|
||||||
m5data.scr_now = SCREEN_SETTING; //当前界面为详细设置菜单
|
m5data.scr_now = SCREEN_SETTING; //当前界面为详细设置菜单
|
||||||
|
m5data.key_setting_enable = 1;
|
||||||
|
|
||||||
scr_setting_recover();
|
key = 0;
|
||||||
|
|
||||||
|
m5data.tick_prv = -1;
|
||||||
|
m5data.tick_cur = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -319,8 +347,10 @@ void key_functions_main(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if NIXIE_CUBE_ENABLE
|
||||||
// m5data.twk_flag = 1; //上、下、左、右 任意一个键按下后,闪烁开始
|
// m5data.twk_flag = 1; //上、下、左、右 任意一个键按下后,闪烁开始
|
||||||
// m5data.twk_cnt = 0; //每次按下后闪烁计数清零
|
// m5data.twk_cnt = 0; //每次按下后闪烁计数清零
|
||||||
|
#endif
|
||||||
|
|
||||||
//避免游标移动的瞬间,前一刻的数值处于闪烁熄灭的状态,移动游标前重新显示一次当前数值
|
//避免游标移动的瞬间,前一刻的数值处于闪烁熄灭的状态,移动游标前重新显示一次当前数值
|
||||||
set_nixie_cube(IO_OUTPUT, m5data.io_cursor, m5data.o_numbers[m5data.io_cursor]);
|
set_nixie_cube(IO_OUTPUT, m5data.io_cursor, m5data.o_numbers[m5data.io_cursor]);
|
||||||
|
@ -359,8 +389,10 @@ void key_functions_main(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
|
#if NIXIE_CUBE_ENABLE
|
||||||
// m5data.twk_cnt = 0; //每次按下后闪烁计数清零
|
m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
|
||||||
|
m5data.twk_cnt = 0; //每次按下后闪烁计数清零
|
||||||
|
#endif
|
||||||
|
|
||||||
//避免游标移动的瞬间,前一刻的数值处于闪烁熄灭的状态,移动游标前重新显示一次当前数值
|
//避免游标移动的瞬间,前一刻的数值处于闪烁熄灭的状态,移动游标前重新显示一次当前数值
|
||||||
set_nixie_cube(IO_OUTPUT, m5data.io_cursor, m5data.o_numbers[m5data.io_cursor]);
|
set_nixie_cube(IO_OUTPUT, m5data.io_cursor, m5data.o_numbers[m5data.io_cursor]);
|
||||||
|
@ -515,8 +547,10 @@ void key_functions_main(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
|
#if NIXIE_CUBE_ENABLE
|
||||||
// m5data.twk_cnt = 0; //每次按下后闪烁计数清零
|
m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
|
||||||
|
m5data.twk_cnt = 0; //每次按下后闪烁计数清零
|
||||||
|
#endif
|
||||||
|
|
||||||
keyset_output(-1);
|
keyset_output(-1);
|
||||||
}
|
}
|
||||||
|
@ -536,56 +570,97 @@ void key_functions_main(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t init_step = 0;
|
||||||
void scr_init_run(void)
|
void scr_init_run(void)
|
||||||
{
|
{
|
||||||
//进度条动画结束后,界面切换至主界面
|
switch (init_step)
|
||||||
if( m5data.bar_anime_end_flag != 2 )
|
|
||||||
{
|
{
|
||||||
if(m5data.bar_anime_end_flag == 0)
|
case 0:
|
||||||
{
|
{
|
||||||
if( init_set_bar(0, 30, 1500) )
|
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) )
|
if( init_set_bar(60, 100, 1500) )
|
||||||
{
|
{
|
||||||
m5data.bar_anime_end_flag = 2;
|
init_step = 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
case 2:
|
||||||
else
|
|
||||||
{
|
{
|
||||||
// //开机动画结束后,清除初始界面内部组件,保留对象,释放内存
|
// //开机动画结束后,清除初始界面内部组件,保留对象,释放内存
|
||||||
// lv_obj_clean(guider_ui.screen_init);
|
// lv_obj_clean(guider_ui.screen_init);
|
||||||
|
|
||||||
//加载主界面
|
//加载主界面
|
||||||
setup_scr_screen_main(&guider_ui);
|
setup_scr_screen_main(&guider_ui);
|
||||||
|
scr_main_recover();
|
||||||
|
|
||||||
delay_cnt(500);
|
delay_cnt(500);
|
||||||
|
|
||||||
|
init_step = 3;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
{
|
||||||
|
if( m5data.tick_prv == -1 )
|
||||||
|
{
|
||||||
lv_scr_load(guider_ui.screen_main);
|
lv_scr_load(guider_ui.screen_main);
|
||||||
|
|
||||||
//删除初始界面对象,释放剩余内存
|
//删除初始界面对象,释放剩余内存
|
||||||
lv_obj_del(guider_ui.screen_init);
|
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_init_flag = 1; //开机动画结束,只执行一次
|
||||||
m5data.scr_now = SCREEN_MAIN; //开机动画结束后,默认进入主界面
|
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
|
//进度条设置, start[0, end], end[start,100], interval[ms],结束后返回1
|
||||||
//时间轴:开始 -> 设置起点 -> 等待interval[ms] -> 设置终点 -> 等待interval[ms] -> 结束
|
//时间轴:开始 -> 设置起点 -> 等待interval[ms] -> 设置终点 -> 等待interval[ms] -> 结束
|
||||||
|
uint8_t bar_anime_step = 0;
|
||||||
uint8_t init_set_bar(uint8_t start, uint8_t end, uint16_t interval)
|
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:
|
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);
|
lv_bar_set_value(guider_ui.screen_init_bar_1, end, LV_ANIM_ON);
|
||||||
|
|
||||||
m5data.bar_anime_step = 1;
|
bar_anime_step = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -605,7 +680,8 @@ uint8_t init_set_bar(uint8_t start, uint8_t end, uint16_t interval)
|
||||||
m5data.tick_prv = xTaskGetTickCount(); //记录起始时刻
|
m5data.tick_prv = xTaskGetTickCount(); //记录起始时刻
|
||||||
}
|
}
|
||||||
|
|
||||||
}else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
m5data.tick_cur = xTaskGetTickCount(); //记录当前时刻
|
m5data.tick_cur = xTaskGetTickCount(); //记录当前时刻
|
||||||
|
|
||||||
|
@ -616,14 +692,14 @@ uint8_t init_set_bar(uint8_t start, uint8_t end, uint16_t interval)
|
||||||
return 0;
|
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_prv = -1;
|
||||||
m5data.tick_cur = -1;
|
m5data.tick_cur = -1;
|
||||||
|
|
||||||
lv_bar_set_value(guider_ui.screen_init_bar_1, end, LV_ANIM_ON);
|
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;
|
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_prv = -1;
|
||||||
m5data.tick_cur = -1;
|
m5data.tick_cur = -1;
|
||||||
|
|
||||||
m5data.bar_anime_step = 0;
|
bar_anime_step = 0;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -683,10 +759,14 @@ void scr_main_run(void)
|
||||||
//当前输入值/测量值显示
|
//当前输入值/测量值显示
|
||||||
input_value_show(); //500ms
|
input_value_show(); //500ms
|
||||||
|
|
||||||
|
#if NIXIE_CUBE_ENABLE
|
||||||
//数值闪烁
|
//数值闪烁
|
||||||
//num_twinkle(); //1000ms
|
num_twinkle(); //1000ms
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if EEPROM_MONITOR_ENABLE
|
||||||
//eeprom状态监控,置于运行时间显示内部
|
//eeprom状态监控,置于运行时间显示内部
|
||||||
uint8_t ee_status_test = 0;
|
uint8_t ee_status_test = 0;
|
||||||
void eep_status_monitor(void)
|
void eep_status_monitor(void)
|
||||||
|
@ -704,6 +784,7 @@ void eep_status_monitor(void)
|
||||||
delay_cnt(10);
|
delay_cnt(10);
|
||||||
EEPROM_CS_H;
|
EEPROM_CS_H;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void runtime_show(void)
|
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);
|
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);
|
lv_span_set_text(guider_ui.screen_main_spangroup_time_span, m5data.runtime_show);
|
||||||
|
|
||||||
|
#if EEPROM_MONITOR_ENABLE
|
||||||
eep_status_monitor();
|
eep_status_monitor();
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void battery_show(void)
|
void battery_show(void)
|
||||||
{
|
{
|
||||||
//每隔3秒读取一次当前电量
|
//每隔3秒读取一次当前电量
|
||||||
if(battery_3000ms_flag)
|
if(battery_2000ms_flag)
|
||||||
{
|
{
|
||||||
battery_3000ms_flag = 0;
|
battery_2000ms_flag = 0;
|
||||||
|
|
||||||
read_battery();
|
read_battery();
|
||||||
|
|
||||||
|
@ -1322,7 +1406,7 @@ void scr_main_recover(void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//设置项同步
|
//曲线设置项同步
|
||||||
lv_chart_set_point_count(guider_ui.screen_main_chart_1, tabdata.item1_page0_plot_num);
|
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++)
|
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)
|
void scr_main_color_update(void)
|
||||||
{
|
{
|
||||||
switch (tabdata.item1_page0_color_input)
|
//输入
|
||||||
{
|
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] ));
|
||||||
case COLOR_BLUE:
|
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);
|
||||||
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;
|
|
||||||
|
|
||||||
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_table[tabdata.item1_page0_color_output] ));
|
||||||
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_OUT, lv_color_hex( color_table[tabdata.item1_page0_color_output] ), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||||||
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_OUT, tabdata.item1_page0_color_output);
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void num_twinkle(void) //数值闪烁
|
#if NIXIE_CUBE_ENABLE
|
||||||
|
//数值闪烁
|
||||||
|
void num_twinkle(void)
|
||||||
{
|
{
|
||||||
if(m5data.twk_flag == 0)
|
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 ]);
|
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;
|
m5data.io_cursor_prv = 3;
|
||||||
set_cursor_position();
|
set_cursor_position();
|
||||||
|
|
||||||
|
#if NIXIE_CUBE_ENABLE
|
||||||
//闪烁参数清零
|
//闪烁参数清零
|
||||||
// m5data.twk_flag = 0; //闪烁中止
|
m5data.twk_flag = 0; //闪烁中止
|
||||||
// m5data.twk_cnt = 0; //闪烁计数清零
|
m5data.twk_cnt = 0; //闪烁计数清零
|
||||||
// m5data.twk_flip = 0; //0显示,1不显示
|
m5data.twk_flip = 0; //0显示,1不显示
|
||||||
|
#endif
|
||||||
//}
|
//}
|
||||||
|
|
||||||
switch (mode)
|
switch (mode)
|
||||||
|
|
|
@ -1,6 +1,16 @@
|
||||||
#include "app_screen_setting.h"
|
#include "app_screen_setting.h"
|
||||||
|
|
||||||
TABVIEW_DATA tabdata; //设置页面参数初始化
|
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)
|
void tab_data_init(void)
|
||||||
|
@ -13,34 +23,36 @@ void tab_data_init(void)
|
||||||
tabdata.content_cursor_prv = 99; //前一刻的~
|
tabdata.content_cursor_prv = 99; //前一刻的~
|
||||||
tabdata.content_focus = 0; //默认无焦点
|
tabdata.content_focus = 0; //默认无焦点
|
||||||
|
|
||||||
//设置界面的初始默认值
|
//设置界面的初始默认值
|
||||||
//ITEMS_0 选项卡0
|
//EEPROM部分
|
||||||
item0_data_init();
|
eeprom_item_data_init();
|
||||||
|
|
||||||
//ITEMS_1
|
//ITEMS_0 选项卡0(注释项位于EERPOM读取)
|
||||||
tabdata.item1_page0_sample_interval = 1500; //ms
|
tabdata.item0_page0_vunit = VOLTAGE_V; //电压单位
|
||||||
tabdata.item1_page0_plot_num = 5; //曲线上同时显示的点数
|
tabdata.item0_page1_TCtype = TC_K; //默认为K类型的热电偶
|
||||||
tabdata.item1_page0_color_input = COLOR_YELLOW; //输入曲线颜色
|
|
||||||
tabdata.item1_page0_color_output = COLOR_BLUE; //输出曲线颜色
|
|
||||||
|
|
||||||
//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.item2_page0_saveflag = 0; //[0, 1, 2 ] -> [未保存,保存中,已保存]
|
||||||
tabdata.input_log_temp = 0; //无纸化记录,中转,存入eeprom
|
tabdata.input_log_temp = 0; //无纸化记录,中转,存入eeprom
|
||||||
tabdata.output_log_temp = 0; //无纸化记录,中转,存入eeprom
|
tabdata.output_log_temp = 0; //无纸化记录,中转,存入eeprom
|
||||||
tabdata.item2_page0_resetflag = 0; //[0, 1, 2 ] -> [未复位,复位中,已复位]
|
tabdata.item2_page0_resetflag = 0; //[0, 1, 2 ] -> [未复位,复位中,已复位]
|
||||||
|
|
||||||
//ITEMS_3
|
//ITEMS_3(注释项位于EERPOM读取)
|
||||||
tabdata.item3_page0_lightflag = 0; //照明状态标志,0熄灭,1开启
|
tabdata.item3_page0_lightflag = 0; //照明状态标志,0熄灭,1开启
|
||||||
tabdata.item3_page0_language = MENU_SIMPLYFY_CHINESE; //语言类型
|
LIGHT_OFF;
|
||||||
|
// tabdata.item3_page0_language = MENU_SIMPLYFY_CHINESE; //语言类型
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//选项卡 0 数据初始化
|
//选项卡EEPROM部分数据初始化
|
||||||
void item0_data_init(void)
|
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)
|
if(tabdata.item2_page0_resetflag != 1)
|
||||||
{
|
{
|
||||||
//判断eeprom内是否存在数据
|
//判断eeprom内是否存在数据
|
||||||
|
@ -54,7 +66,6 @@ void item0_data_init(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//eeprom_rd_error_flag = 1;
|
|
||||||
|
|
||||||
//读取过程中出现过错误,或者触发复位
|
//读取过程中出现过错误,或者触发复位
|
||||||
if( (eeprom_rd_error_flag == 1)||(tabdata.item2_page0_resetflag == 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_page1_TClow[7] = TC[7].low; //TCT下限
|
||||||
tabdata.item0_page2_RTDup = RTD.up; //RTD上限
|
tabdata.item0_page2_RTDup = RTD.up; //RTD上限
|
||||||
tabdata.item0_page2_RTDlow = RTD.low; //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)
|
if(tabdata.item2_page0_resetflag == 1)
|
||||||
|
@ -94,9 +110,6 @@ void item0_data_init(void)
|
||||||
//eeprom_datasave();
|
//eeprom_datasave();
|
||||||
eeprom_datasave_changed();
|
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:
|
case KEY_BACK:
|
||||||
{
|
{
|
||||||
key = 0;
|
|
||||||
|
|
||||||
//从设置界面返回主界面
|
//从设置界面返回主界面
|
||||||
if(tabdata.content_cursor == 99)
|
if(tabdata.content_cursor == 99)
|
||||||
|
{
|
||||||
|
if( m5data.tick_prv == -1 )
|
||||||
{
|
{
|
||||||
//下次进入设置页面时,从选项卡0开始
|
//下次进入设置页面时,从选项卡0开始
|
||||||
tabdata.item_cursor = 0;
|
tabdata.item_cursor = 0;
|
||||||
|
|
||||||
//加载主界面
|
//加载主界面
|
||||||
setup_scr_screen_main(&guider_ui);
|
setup_scr_screen_main(&guider_ui);
|
||||||
delay_cnt(500);
|
|
||||||
|
|
||||||
//恢复之前显示的数据
|
//恢复之前显示的数据
|
||||||
scr_main_recover();
|
scr_main_recover();
|
||||||
|
|
||||||
|
delay_cnt(100);
|
||||||
|
|
||||||
lv_scr_load(guider_ui.screen_main);
|
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);
|
lv_obj_del(guider_ui.screen_setting);
|
||||||
|
|
||||||
//当前界面为主界面
|
//等待结束,切换至主界面的按键功能
|
||||||
m5data.scr_now = SCREEN_MAIN;
|
m5data.scr_now = SCREEN_MAIN;
|
||||||
|
m5data.key_main_enable = 1;
|
||||||
|
|
||||||
|
key = 0;
|
||||||
|
|
||||||
|
m5data.tick_prv = -1;
|
||||||
|
m5data.tick_cur = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
key = 0;
|
||||||
|
|
||||||
//当不存在焦点时,从内容选择返回选项卡选择
|
//当不存在焦点时,从内容选择返回选项卡选择
|
||||||
if(tabdata.content_focus == 0)
|
if(tabdata.content_focus == 0)
|
||||||
{
|
{
|
||||||
|
@ -616,8 +656,8 @@ void setting_items_page(uint8_t ite, uint8_t page)
|
||||||
//特殊处理,避免其他选项卡也被染上颜色
|
//特殊处理,避免其他选项卡也被染上颜色
|
||||||
if(ite != ITEMS_1)
|
if(ite != ITEMS_1)
|
||||||
{
|
{
|
||||||
set_obj_color(guider_ui.screen_setting_label_21, 99);
|
set_obj_color(guider_ui.screen_setting_label_21, 7);
|
||||||
set_obj_color(guider_ui.screen_setting_label_31, 99);
|
set_obj_color(guider_ui.screen_setting_label_31, 7);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (ite)
|
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_value(con, step);
|
||||||
set_item1_text(con);
|
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;
|
break;
|
||||||
|
|
||||||
|
@ -1033,9 +1076,20 @@ void scr_setting_recover(void)
|
||||||
// uint8_t eep_test_flag = 0;
|
// uint8_t eep_test_flag = 0;
|
||||||
// uint8_t tx = 0, rx = 0;
|
// uint8_t tx = 0, rx = 0;
|
||||||
// uint8_t addr_test[3] = {0};
|
// uint8_t addr_test[3] = {0};
|
||||||
|
uint8_t reset_step = 0, save_step = 0;
|
||||||
void scr_setting_run(void) //详细设置界面
|
void scr_setting_run(void) //详细设置界面
|
||||||
{
|
{
|
||||||
if(tabdata.item2_page0_saveflag == 1)
|
if(tabdata.item2_page0_saveflag == 1)
|
||||||
|
{
|
||||||
|
if(save_step == 0)
|
||||||
|
{
|
||||||
|
save_step = 1;
|
||||||
|
|
||||||
|
//执行保存
|
||||||
|
//eeprom_datasave();
|
||||||
|
eeprom_datasave_changed();
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
save_cnt++;
|
save_cnt++;
|
||||||
if(save_cnt > 5)
|
if(save_cnt > 5)
|
||||||
|
@ -1056,10 +1110,27 @@ void scr_setting_run(void) //详细设置界面
|
||||||
|
|
||||||
set_item2_text(DATA_SAVE);
|
set_item2_text(DATA_SAVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
save_step = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if(tabdata.item2_page0_resetflag == 1)
|
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++;
|
reset_cnt++;
|
||||||
if(reset_cnt > 5)
|
if(reset_cnt > 5)
|
||||||
|
@ -1067,7 +1138,48 @@ void scr_setting_run(void) //详细设置界面
|
||||||
reset_cnt = 0;
|
reset_cnt = 0;
|
||||||
tabdata.item2_page0_resetflag = 2;
|
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_RESET);
|
||||||
|
set_item2_text(DATA_SAVE);
|
||||||
|
set_item2_text(INPUT_LOG);
|
||||||
|
set_item2_text(OUTPUT_LOG);
|
||||||
|
|
||||||
|
reset_step = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -146,6 +146,8 @@ void physical_quantity_init(void)
|
||||||
RTD.pv = 0;
|
RTD.pv = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//切换屏幕的等待时间(ms)
|
||||||
|
uint16_t screen_switch_wait = 300;
|
||||||
void screen_run(void)
|
void screen_run(void)
|
||||||
{
|
{
|
||||||
if(m5data.menu_reset_flag)
|
if(m5data.menu_reset_flag)
|
||||||
|
@ -166,17 +168,36 @@ void screen_run(void)
|
||||||
switch (m5data.scr_now)
|
switch (m5data.scr_now)
|
||||||
{
|
{
|
||||||
case SCREEN_MAIN:
|
case SCREEN_MAIN:
|
||||||
|
{
|
||||||
|
if(m5data.key_main_enable)
|
||||||
{
|
{
|
||||||
scr_main_run(); //主界面显示
|
scr_main_run(); //主界面显示
|
||||||
key_functions_main(); //主界面的按键功能
|
key_functions_main(); //主界面的按键功能
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//KEY_MENU按下后进入此处,等待(screen_switch_wait)(ms),直接切换存在卡死风险
|
||||||
|
key = KEY_MENU;
|
||||||
|
key_functions_main(); //主界面的按键功能
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SCREEN_SETTING:
|
case SCREEN_SETTING:
|
||||||
|
{
|
||||||
|
if (m5data.key_setting_enable)
|
||||||
{
|
{
|
||||||
scr_setting_run(); //设置界面
|
scr_setting_run(); //设置界面
|
||||||
key_functions_setting(); //设置界面的按键功能
|
key_functions_setting(); //设置界面的按键功能
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//KEY_BACK按下后进入此处,等待(screen_switch_wait)(ms),直接切换存在卡死风险
|
||||||
|
key = KEY_BACK;
|
||||||
|
key_functions_setting(); //主界面的按键功能
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -384,6 +384,36 @@ void eeprom_datasave(void)
|
||||||
eeprom_writedata(RTD_LOW_ADDR, temp_h);
|
eeprom_writedata(RTD_LOW_ADDR, temp_h);
|
||||||
eeprom_writedata(RTD_LOW_ADDR + 8, temp_l);
|
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
|
#else
|
||||||
|
|
||||||
|
@ -448,6 +478,41 @@ void eeprom_datasave_changed(void)
|
||||||
|
|
||||||
eeprom_datasave_single(12);
|
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
|
#endif
|
||||||
|
@ -664,6 +729,56 @@ void eeprom_datasave_single(uint8_t tag)
|
||||||
}
|
}
|
||||||
break;
|
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:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -802,6 +917,31 @@ void eeprom_dataread(void)
|
||||||
temp_h = eeprom_readdata(RTD_LOW_ADDR);
|
temp_h = eeprom_readdata(RTD_LOW_ADDR);
|
||||||
temp_l = eeprom_readdata(RTD_LOW_ADDR + 8);
|
temp_l = eeprom_readdata(RTD_LOW_ADDR + 8);
|
||||||
tabdata.item0_page2_RTDlow = ( temp_h << 8 ) + temp_l;
|
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内是否已存在数据
|
//判断EEPROM内是否已存在数据
|
||||||
|
|
|
@ -902,50 +902,7 @@ void set_item3_text(uint8_t con)
|
||||||
//修改对象颜色
|
//修改对象颜色
|
||||||
void set_obj_color(lv_obj_t * obj, uint8_t color)
|
void set_obj_color(lv_obj_t * obj, uint8_t color)
|
||||||
{
|
{
|
||||||
switch (color)
|
lv_obj_set_style_text_color(obj, lv_color_hex(color_table[color]), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||||||
{
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -294,12 +294,6 @@ void set_item2_value(uint8_t con, int8_t step)
|
||||||
{
|
{
|
||||||
tabdata.item2_page0_saveflag = 1;
|
tabdata.item2_page0_saveflag = 1;
|
||||||
|
|
||||||
set_item2_text(DATA_SAVE);
|
|
||||||
|
|
||||||
//执行保存
|
|
||||||
//eeprom_datasave();
|
|
||||||
eeprom_datasave_changed();
|
|
||||||
|
|
||||||
save_cnt = 0;
|
save_cnt = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -311,11 +305,6 @@ void set_item2_value(uint8_t con, int8_t step)
|
||||||
{
|
{
|
||||||
tabdata.item2_page0_resetflag = 1;
|
tabdata.item2_page0_resetflag = 1;
|
||||||
|
|
||||||
set_item2_text(DATA_RESET);
|
|
||||||
|
|
||||||
//执行复位
|
|
||||||
item0_data_init();
|
|
||||||
|
|
||||||
reset_cnt = 0;
|
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);
|
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);
|
setting_laguage_switch(tabdata.item3_page0_language);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,8 +10,8 @@
|
||||||
|
|
||||||
int heart_1000ms_flag = 0;
|
int heart_1000ms_flag = 0;
|
||||||
int heart_1000ms_cnt = 0;
|
int heart_1000ms_cnt = 0;
|
||||||
int battery_3000ms_flag = 0;
|
int battery_2000ms_flag = 0;
|
||||||
int battery_3000ms_cnt = 0;
|
int battery_2000ms_cnt = 0;
|
||||||
int plot_ms_flag = 0;
|
int plot_ms_flag = 0;
|
||||||
int plot_ms_cnt = 0;
|
int plot_ms_cnt = 0;
|
||||||
int twk_1000ms_flag = 0;
|
int twk_1000ms_flag = 0;
|
||||||
|
@ -35,11 +35,11 @@ void duty_tim6(void)
|
||||||
heart_1000ms_flag = 1;
|
heart_1000ms_flag = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
battery_3000ms_cnt++;
|
battery_2000ms_cnt++;
|
||||||
if( battery_3000ms_cnt >= 3000)
|
if( battery_2000ms_cnt >= 2000)
|
||||||
{
|
{
|
||||||
battery_3000ms_cnt = 0;
|
battery_2000ms_cnt = 0;
|
||||||
battery_3000ms_flag = 1;
|
battery_2000ms_flag = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
plot_ms_cnt++;
|
plot_ms_cnt++;
|
||||||
|
|
|
@ -47,9 +47,9 @@ extern "C" {
|
||||||
|
|
||||||
#define LED_TOG HAL_GPIO_TogglePin(light_GPIO_Port, light_Pin)
|
#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)
|
//#define RS485_RW(RW) HAL_GPIO_WritePin(RS485_RW_GPIO_Port, RS485_RW_Pin, RW)
|
||||||
|
|
||||||
|
|
|
@ -310,7 +310,7 @@ void start_menu(void const * argument)
|
||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
screen_run();
|
screen_run();
|
||||||
osDelay(200);
|
osDelay(500);
|
||||||
menu_stack_watch = uxTaskGetStackHighWaterMark(NULL);
|
menu_stack_watch = uxTaskGetStackHighWaterMark(NULL);
|
||||||
menu_stack_watch = 512 - menu_stack_watch;
|
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
Loading…
Reference in New Issue