1677 lines
51 KiB
C
1677 lines
51 KiB
C
/*
|
||
* @Author: wujunchao wujunchao@wuxismart.com
|
||
* @Date: 2024-12-27 11:50:56
|
||
* @LastEditors: wujunchao wujunchao@wuxismart.com
|
||
* @LastEditTime: 2025-02-07 09:05:47
|
||
* @FilePath: \signal_generator\App\APP_WU\Src\apps_gather.c
|
||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||
*/
|
||
#include "apps_gather.h" //用于头文件打包汇总
|
||
// lv_conf.h { line:282->CPU&FPS; line:289->MEM used }
|
||
|
||
#if 1
|
||
/**********test5**********/
|
||
MENU_DATA m5data;
|
||
PLOT_DATA pltdata;
|
||
// char buff_io[2];
|
||
void menu_data_init(void)
|
||
{
|
||
//general
|
||
m5data.scr_now = SCREEN_INIT;
|
||
m5data.tick_prv = -1;
|
||
m5data.tick_cur = -1;
|
||
|
||
//screen_init
|
||
m5data.scr_init_flag = 0;
|
||
m5data.scr_init_bar = 0;
|
||
m5data.scr_init_cnt = 0;
|
||
|
||
//screen_main
|
||
{
|
||
m5data.runtime_seconds = 0;
|
||
m5data.runtime_minutes = 0;
|
||
m5data.runtime_hours = 0;
|
||
m5data.battery_cnt = 0;
|
||
m5data.io_cursor = 3; //当前游标位置,[000,000]:0~5
|
||
m5data.io_cursor_prv = 3; //前一时刻游标位置
|
||
m5data.twk_flag = 0; //0停止闪烁,1开始闪烁
|
||
|
||
m5data.io_mode = IO_OUTPUT; //默认工作模式,0:输入IN,1:输出OUT
|
||
for(uint8_t i = 0; i < 6; i++)
|
||
{
|
||
m5data.io_numbers[i] = 0;
|
||
}
|
||
m5data.input_mode = SIG_VOLTAGE;
|
||
m5data.input_mode_type = VOLTAGE_MV;
|
||
m5data.output_mode = SIG_VOLTAGE;
|
||
m5data.output_mode_type = VOLTAGE_MV;
|
||
// memset(buff_io,0,2); //用于lvgl文本显示
|
||
|
||
//图标显示值(int)
|
||
pltdata.y_pri_low = 0;
|
||
pltdata.y_pri_up = 100;
|
||
pltdata.y_scd_low = 0;
|
||
pltdata.y_scd_up = 100;
|
||
pltdata.y_pri_value = 0;
|
||
pltdata.y_scd_value = 0;
|
||
|
||
//实际物理量(float32)
|
||
pltdata.yreal_pri_low = 4;
|
||
pltdata.yreal_pri_up = 20;
|
||
pltdata.yreal_scd_low = 4;
|
||
pltdata.yreal_scd_up = 20;
|
||
pltdata.yreal_pri_value = 0;
|
||
pltdata.yreal_scd_value = 0;
|
||
}
|
||
|
||
|
||
|
||
//screen_setting
|
||
}
|
||
|
||
void menu_test5(void)
|
||
{
|
||
if(m5data.scr_init_flag == 0)
|
||
{
|
||
scr_init_run(); //播放开机动画
|
||
}
|
||
else
|
||
{
|
||
switch (m5data.scr_now)
|
||
{
|
||
case SCREEN_MAIN:
|
||
{
|
||
scr_main_run();
|
||
key_functions_main();
|
||
}
|
||
break;
|
||
|
||
case SCREEN_SETTING:
|
||
{
|
||
scr_setting_run();
|
||
key_functions_setting();
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
uint8_t twk_cnt = 0; //闪烁计数
|
||
uint8_t overflow_flag = 0; //向上溢出标志
|
||
uint8_t overflow_flag_low = 0; //向下溢出标志
|
||
void key_functions_main(void) //按键功能
|
||
{
|
||
uint8_t cursor_temp = 0; //临时游标,替代枚举变量进行加减运算
|
||
|
||
switch (key)
|
||
{
|
||
case KEY_OUT:
|
||
{
|
||
key = 0;
|
||
|
||
if(m5data.io_mode == IO_INPUT)
|
||
{
|
||
m5data.io_mode = IO_OUTPUT;
|
||
m5data.output_mode = m5data.input_mode;
|
||
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_3_span, "OUT");
|
||
}
|
||
else
|
||
{
|
||
cursor_temp = (uint8_t)m5data.output_mode;
|
||
cursor_temp = (cursor_temp >= 5)?(0):(cursor_temp + 1);
|
||
m5data.output_mode = (SIG_FUNCTIONS)cursor_temp;
|
||
}
|
||
|
||
switch (m5data.output_mode)
|
||
{
|
||
case SIG_VOLTAGE: //电压
|
||
{
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_5_span, "Volt");
|
||
}
|
||
break;
|
||
|
||
case SIG_CURRENT: //电流
|
||
{
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_5_span, "Cur");
|
||
}
|
||
break;
|
||
|
||
case SIG_RESISTANT: //电阻
|
||
{
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_5_span, "Res");
|
||
}
|
||
break;
|
||
|
||
case SIG_FREQUENCE: //频率
|
||
{
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_5_span, "Fre");
|
||
}
|
||
break;
|
||
|
||
case SIG_TC: //热电偶
|
||
{
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_5_span, "TC");
|
||
}
|
||
break;
|
||
|
||
case SIG_RTD: //热电阻
|
||
{
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_5_span, "RTD");
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case KEY_UP:
|
||
{
|
||
key = 0;
|
||
|
||
m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
|
||
twk_cnt = 0; //每次按下后闪烁计数清零
|
||
|
||
switch (m5data.io_cursor)
|
||
{
|
||
case 0:
|
||
{
|
||
m5data.io_numbers[0] = (m5data.io_numbers[0] >= 9)?(9):(m5data.io_numbers[0] + 1);
|
||
|
||
// sprintf(buff_io,"%d",m5data.io_numbers[0]);
|
||
// lv_span_set_text(guider_ui.screen_main_spangroup_7_span, buff_io);
|
||
|
||
lv_img_set_src(guider_ui.screen_main_animimg_2, screen_main_animimg_2_imgs[ m5data.io_numbers[0] ]);
|
||
}
|
||
break;
|
||
|
||
case 1:
|
||
{
|
||
if(m5data.io_numbers[1] >= 9)
|
||
{
|
||
if( m5data.io_numbers[0]!=9 )
|
||
{
|
||
m5data.io_numbers[1] = 0;
|
||
overflow_flag = 1;
|
||
}
|
||
else
|
||
{
|
||
m5data.io_numbers[1] = 9;
|
||
}
|
||
}else
|
||
{
|
||
m5data.io_numbers[1]++;
|
||
}
|
||
|
||
// sprintf(buff_io,"%d",m5data.io_numbers[1]);
|
||
// lv_span_set_text(guider_ui.screen_main_spangroup_8_span, buff_io);
|
||
|
||
lv_img_set_src(guider_ui.screen_main_animimg_3, screen_main_animimg_3_imgs[ m5data.io_numbers[1] ]);
|
||
}
|
||
break;
|
||
|
||
case 2:
|
||
{
|
||
if(m5data.io_numbers[2] >= 9)
|
||
{
|
||
if( (m5data.io_numbers[0]!=9)||(m5data.io_numbers[1]!=9))
|
||
{
|
||
m5data.io_numbers[2] = 0;
|
||
overflow_flag = 2;
|
||
}
|
||
else
|
||
{
|
||
m5data.io_numbers[2] = 9;
|
||
}
|
||
}else
|
||
{
|
||
m5data.io_numbers[2]++;
|
||
}
|
||
|
||
// sprintf(buff_io,"%d",m5data.io_numbers[2]);
|
||
// lv_span_set_text(guider_ui.screen_main_spangroup_9_span, buff_io);
|
||
|
||
lv_img_set_src(guider_ui.screen_main_animimg_4, screen_main_animimg_4_imgs[ m5data.io_numbers[2] ]);
|
||
}
|
||
break;
|
||
|
||
case 3:
|
||
{
|
||
if(m5data.io_numbers[3] >= 9)
|
||
{
|
||
if( (m5data.io_numbers[0]!=9)||(m5data.io_numbers[1]!=9)||(m5data.io_numbers[2]!=9))
|
||
{
|
||
m5data.io_numbers[3] = 0;
|
||
overflow_flag = 3;
|
||
}
|
||
else
|
||
{
|
||
m5data.io_numbers[3] = 9;
|
||
}
|
||
}else
|
||
{
|
||
m5data.io_numbers[3]++;
|
||
}
|
||
|
||
// sprintf(buff_io,"%d",m5data.io_numbers[3]);
|
||
// lv_span_set_text(guider_ui.screen_main_spangroup_10_span, buff_io);
|
||
|
||
lv_img_set_src(guider_ui.screen_main_animimg_5, screen_main_animimg_5_imgs[ m5data.io_numbers[3] ]);
|
||
}
|
||
break;
|
||
|
||
case 4:
|
||
{
|
||
if(m5data.io_numbers[4] >= 9)
|
||
{
|
||
if( (m5data.io_numbers[0]!=9)||(m5data.io_numbers[1]!=9)||(m5data.io_numbers[2]!=9)||(m5data.io_numbers[3]!=9))
|
||
{
|
||
m5data.io_numbers[4] = 0;
|
||
overflow_flag = 4;
|
||
}
|
||
else
|
||
{
|
||
m5data.io_numbers[4] = 9;
|
||
}
|
||
}else
|
||
{
|
||
m5data.io_numbers[4]++;
|
||
}
|
||
|
||
// sprintf(buff_io,"%d",m5data.io_numbers[4]);
|
||
// lv_span_set_text(guider_ui.screen_main_spangroup_11_span, buff_io);
|
||
|
||
lv_img_set_src(guider_ui.screen_main_animimg_6, screen_main_animimg_6_imgs[ m5data.io_numbers[4] ]);
|
||
}
|
||
break;
|
||
|
||
case 5:
|
||
{
|
||
if(m5data.io_numbers[5] >= 9)
|
||
{
|
||
if( (m5data.io_numbers[0]!=9)||(m5data.io_numbers[1]!=9)||(m5data.io_numbers[2]!=9)||(m5data.io_numbers[3]!=9)||(m5data.io_numbers[4]!=9))
|
||
{
|
||
m5data.io_numbers[5] = 0;
|
||
overflow_flag = 5;
|
||
}
|
||
else
|
||
{
|
||
m5data.io_numbers[5] = 9;
|
||
}
|
||
}else
|
||
{
|
||
m5data.io_numbers[5]++;
|
||
}
|
||
|
||
// sprintf(buff_io,"%d",m5data.io_numbers[5]);
|
||
// lv_span_set_text(guider_ui.screen_main_spangroup_12_span, buff_io);
|
||
|
||
lv_img_set_src(guider_ui.screen_main_animimg_7, screen_main_animimg_7_imgs[ m5data.io_numbers[5] ]);
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
if(overflow_flag) //发生向上溢出
|
||
{
|
||
int oftemp = 0;
|
||
oftemp = 100000*m5data.io_numbers[0] + 10000*m5data.io_numbers[1] + 1000*m5data.io_numbers[2] + \
|
||
100*m5data.io_numbers[3] + 10*m5data.io_numbers[4] + m5data.io_numbers[5];
|
||
|
||
switch (overflow_flag)
|
||
{
|
||
case 1:
|
||
{
|
||
oftemp += 100000;
|
||
}
|
||
break;
|
||
|
||
case 2:
|
||
{
|
||
oftemp += 10000;
|
||
}
|
||
break;
|
||
|
||
case 3:
|
||
{
|
||
oftemp += 1000;
|
||
}
|
||
break;
|
||
|
||
case 4:
|
||
{
|
||
oftemp += 100;
|
||
}
|
||
break;
|
||
|
||
case 5:
|
||
{
|
||
oftemp += 10;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
m5data.io_numbers[0] = (oftemp/100000 > 9)?(9):(oftemp/100000);
|
||
lv_img_set_src(guider_ui.screen_main_animimg_2, screen_main_animimg_2_imgs[ m5data.io_numbers[0] ]);
|
||
m5data.io_numbers[1] = (oftemp/10000) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_3, screen_main_animimg_3_imgs[ m5data.io_numbers[1] ]);
|
||
m5data.io_numbers[2] = (oftemp/1000) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_4, screen_main_animimg_4_imgs[ m5data.io_numbers[2] ]);
|
||
m5data.io_numbers[3] = (oftemp/100) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_5, screen_main_animimg_5_imgs[ m5data.io_numbers[3] ]);
|
||
m5data.io_numbers[4] = (oftemp/10) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_6, screen_main_animimg_6_imgs[ m5data.io_numbers[4] ]);
|
||
m5data.io_numbers[5] = oftemp % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_7, screen_main_animimg_7_imgs[ m5data.io_numbers[5] ]);
|
||
|
||
overflow_flag = 0;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case KEY_MENU:
|
||
{
|
||
key = 0;
|
||
|
||
//加载菜单界面
|
||
setup_scr_screen_setting(&guider_ui);
|
||
lv_scr_load(guider_ui.screen_setting);
|
||
|
||
//切换至菜单后,清除主界面对象,释放内存
|
||
guider_ui.screen_main_del = true;
|
||
lv_obj_del(guider_ui.screen_main);
|
||
|
||
m5data.scr_now = SCREEN_SETTING; //当前界面为详细设置菜单
|
||
}
|
||
break;
|
||
|
||
case KEY_IN:
|
||
{
|
||
key = 0;
|
||
|
||
if(m5data.io_mode == IO_OUTPUT)
|
||
{
|
||
m5data.io_mode = IO_INPUT;
|
||
m5data.input_mode = m5data.output_mode;
|
||
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_3_span, "IN");
|
||
}
|
||
else
|
||
{
|
||
cursor_temp = (uint8_t)m5data.input_mode;
|
||
cursor_temp = (cursor_temp >= 5)?(0):(cursor_temp + 1);
|
||
m5data.input_mode = (SIG_FUNCTIONS)cursor_temp;
|
||
}
|
||
|
||
switch (m5data.input_mode)
|
||
{
|
||
case SIG_VOLTAGE: //电压
|
||
{
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_5_span, "Volt");
|
||
}
|
||
break;
|
||
|
||
case SIG_CURRENT: //电流
|
||
{
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_5_span, "Cur");
|
||
}
|
||
break;
|
||
|
||
case SIG_RESISTANT: //电阻
|
||
{
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_5_span, "Res");
|
||
}
|
||
break;
|
||
|
||
case SIG_FREQUENCE: //频率
|
||
{
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_5_span, "Fre");
|
||
}
|
||
break;
|
||
|
||
case SIG_TC: //热电偶
|
||
{
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_5_span, "TC");
|
||
}
|
||
break;
|
||
|
||
case SIG_RTD: //热电阻
|
||
{
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_5_span, "RTD");
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case KEY_LEFT:
|
||
{
|
||
key = 0;
|
||
|
||
m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
|
||
twk_cnt = 0; //每次按下后闪烁计数清零
|
||
|
||
switch (m5data.io_cursor)
|
||
{
|
||
case 0:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_2, screen_main_animimg_2_imgs[ m5data.io_numbers[0] ]);
|
||
}
|
||
break;
|
||
|
||
case 1:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_3, screen_main_animimg_3_imgs[ m5data.io_numbers[1] ]);
|
||
}
|
||
break;
|
||
|
||
case 2:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_4, screen_main_animimg_4_imgs[ m5data.io_numbers[2] ]);
|
||
}
|
||
break;
|
||
|
||
case 3:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_5, screen_main_animimg_5_imgs[ m5data.io_numbers[3] ]);
|
||
}
|
||
break;
|
||
|
||
case 4:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_6, screen_main_animimg_6_imgs[ m5data.io_numbers[4] ]);
|
||
}
|
||
break;
|
||
|
||
case 5:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_7, screen_main_animimg_7_imgs[ m5data.io_numbers[5] ]);
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
m5data.io_cursor_prv = m5data.io_cursor;
|
||
m5data.io_cursor = (m5data.io_cursor <= 0)?(5):(m5data.io_cursor - 1);
|
||
|
||
// if(m5data.io_cursor <= 2)
|
||
// {
|
||
// lv_obj_set_pos(guider_ui.screen_main_line_1, IO_CURSOR_START1 + m5data.io_cursor * IO_CURSOR_INTERVAL, 225);
|
||
// }
|
||
// else
|
||
// {
|
||
// lv_obj_set_pos(guider_ui.screen_main_line_1, IO_CURSOR_START2 + (m5data.io_cursor -3 ) * IO_CURSOR_INTERVAL, 225);
|
||
// }
|
||
|
||
}
|
||
break;
|
||
|
||
case KEY_OK:
|
||
{
|
||
key = 0;
|
||
|
||
if(m5data.io_mode == IO_ON)
|
||
{
|
||
m5data.io_mode = IO_OFF;
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_6_span, "OFF");
|
||
}
|
||
else
|
||
{
|
||
m5data.io_mode = IO_ON;
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_6_span, "ON");
|
||
}
|
||
}
|
||
break;
|
||
|
||
case KEY_RIGHT:
|
||
{
|
||
key = 0;
|
||
|
||
m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
|
||
twk_cnt = 0; //每次按下后闪烁计数清零
|
||
|
||
switch (m5data.io_cursor)
|
||
{
|
||
case 0:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_2, screen_main_animimg_2_imgs[ m5data.io_numbers[0] ]);
|
||
}
|
||
break;
|
||
|
||
case 1:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_3, screen_main_animimg_3_imgs[ m5data.io_numbers[1] ]);
|
||
}
|
||
break;
|
||
|
||
case 2:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_4, screen_main_animimg_4_imgs[ m5data.io_numbers[2] ]);
|
||
}
|
||
break;
|
||
|
||
case 3:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_5, screen_main_animimg_5_imgs[ m5data.io_numbers[3] ]);
|
||
}
|
||
break;
|
||
|
||
case 4:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_6, screen_main_animimg_6_imgs[ m5data.io_numbers[4] ]);
|
||
}
|
||
break;
|
||
|
||
case 5:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_7, screen_main_animimg_7_imgs[ m5data.io_numbers[5] ]);
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
m5data.io_cursor_prv = m5data.io_cursor;
|
||
m5data.io_cursor = (m5data.io_cursor >= 5)?(0):(m5data.io_cursor + 1);
|
||
|
||
// if(m5data.io_cursor <= 2)
|
||
// {
|
||
// lv_obj_set_pos(guider_ui.screen_main_line_1, IO_CURSOR_START1 + m5data.io_cursor * IO_CURSOR_INTERVAL, 225);
|
||
// }
|
||
// else
|
||
// {
|
||
// lv_obj_set_pos(guider_ui.screen_main_line_1, IO_CURSOR_START2 + (m5data.io_cursor -3 ) * IO_CURSOR_INTERVAL, 225);
|
||
// }
|
||
}
|
||
break;
|
||
|
||
case KEY_SWITCH:
|
||
{
|
||
key = 0;
|
||
|
||
switch (m5data.io_mode) //输入、输出模式切换
|
||
{
|
||
case IO_OUTPUT:
|
||
{
|
||
switch (m5data.output_mode) //功能切换
|
||
{
|
||
case SIG_VOLTAGE:
|
||
{
|
||
cursor_temp = (uint8_t)m5data.output_mode_type;
|
||
cursor_temp = !cursor_temp;
|
||
m5data.output_mode_type = (SIG_FUNCTIONS_TYPE)cursor_temp;
|
||
|
||
switch (m5data.output_mode_type) //功能类型切换,电压V/mV
|
||
{
|
||
case VOLTAGE_MV:
|
||
{
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_4_span, "mV");
|
||
}
|
||
break;
|
||
|
||
case VOLTAGE_V:
|
||
{
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_4_span, "V");
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case SIG_CURRENT:
|
||
{}
|
||
break;
|
||
|
||
case SIG_RESISTANT:
|
||
{}
|
||
break;
|
||
|
||
case SIG_FREQUENCE:
|
||
{}
|
||
break;
|
||
|
||
case SIG_TC:
|
||
{}
|
||
break;
|
||
|
||
case SIG_RTD:
|
||
{}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case IO_INPUT:
|
||
{
|
||
switch (m5data.input_mode)
|
||
{
|
||
case SIG_VOLTAGE:
|
||
{
|
||
cursor_temp = (uint8_t)m5data.input_mode_type;
|
||
cursor_temp = !cursor_temp;
|
||
m5data.input_mode_type = (SIG_FUNCTIONS_TYPE)cursor_temp;
|
||
|
||
switch (m5data.input_mode_type) //功能类型切换,电压V/mV
|
||
{
|
||
case VOLTAGE_MV:
|
||
{
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_4_span, "mV");
|
||
}
|
||
break;
|
||
|
||
case VOLTAGE_V:
|
||
{
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_4_span, "V");
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case SIG_CURRENT:
|
||
{}
|
||
break;
|
||
|
||
case SIG_RESISTANT:
|
||
{}
|
||
break;
|
||
|
||
case SIG_FREQUENCE:
|
||
{}
|
||
break;
|
||
|
||
case SIG_TC:
|
||
{}
|
||
break;
|
||
|
||
case SIG_RTD:
|
||
{}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case KEY_SOURCE:
|
||
{
|
||
key = 0;
|
||
}
|
||
break;
|
||
|
||
case KEY_DOWN:
|
||
{
|
||
key = 0;
|
||
|
||
m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
|
||
twk_cnt = 0; //每次按下后闪烁计数清零
|
||
|
||
switch (m5data.io_cursor)
|
||
{
|
||
case 0:
|
||
{
|
||
if(m5data.io_numbers[0] <= 0)
|
||
{
|
||
m5data.io_numbers[0] = 0;
|
||
overflow_flag_low = 0;
|
||
}
|
||
else
|
||
{
|
||
m5data.io_numbers[0] = m5data.io_numbers[0] - 1;
|
||
}
|
||
|
||
// sprintf(buff_io,"%d",m5data.io_numbers[0]);
|
||
// lv_span_set_text(guider_ui.screen_main_spangroup_7_span, buff_io);
|
||
|
||
lv_img_set_src(guider_ui.screen_main_animimg_2, screen_main_animimg_2_imgs[ m5data.io_numbers[0] ]);
|
||
}
|
||
break;
|
||
|
||
case 1:
|
||
{
|
||
if(m5data.io_numbers[1] <= 0)
|
||
{
|
||
if(m5data.io_numbers[0])
|
||
{
|
||
m5data.io_numbers[1] = 9;
|
||
overflow_flag_low = 1;
|
||
}
|
||
else
|
||
{
|
||
m5data.io_numbers[1] = 0;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m5data.io_numbers[1] = m5data.io_numbers[1] - 1;
|
||
}
|
||
|
||
// sprintf(buff_io,"%d",m5data.io_numbers[1]);
|
||
// lv_span_set_text(guider_ui.screen_main_spangroup_8_span, buff_io);
|
||
|
||
lv_img_set_src(guider_ui.screen_main_animimg_3, screen_main_animimg_3_imgs[ m5data.io_numbers[1] ]);
|
||
}
|
||
break;
|
||
|
||
case 2:
|
||
{
|
||
if(m5data.io_numbers[2] <= 0)
|
||
{
|
||
if(m5data.io_numbers[0]||m5data.io_numbers[1])
|
||
{
|
||
m5data.io_numbers[2] = 9;
|
||
overflow_flag_low = 2;
|
||
}
|
||
else
|
||
{
|
||
m5data.io_numbers[2] = 0;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m5data.io_numbers[2] = m5data.io_numbers[2] - 1;
|
||
}
|
||
|
||
// sprintf(buff_io,"%d",m5data.io_numbers[2]);
|
||
// lv_span_set_text(guider_ui.screen_main_spangroup_9_span, buff_io);
|
||
|
||
lv_img_set_src(guider_ui.screen_main_animimg_4, screen_main_animimg_4_imgs[ m5data.io_numbers[2] ]);
|
||
}
|
||
break;
|
||
|
||
case 3:
|
||
{
|
||
if(m5data.io_numbers[3] <= 0)
|
||
{
|
||
if(m5data.io_numbers[0]||m5data.io_numbers[1]||m5data.io_numbers[2])
|
||
{
|
||
m5data.io_numbers[3] = 9;
|
||
overflow_flag_low = 3;
|
||
}
|
||
else
|
||
{
|
||
m5data.io_numbers[3] = 0;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m5data.io_numbers[3] = m5data.io_numbers[3] - 1;
|
||
}
|
||
|
||
// sprintf(buff_io,"%d",m5data.io_numbers[3]);
|
||
// lv_span_set_text(guider_ui.screen_main_spangroup_10_span, buff_io);
|
||
|
||
lv_img_set_src(guider_ui.screen_main_animimg_5, screen_main_animimg_5_imgs[ m5data.io_numbers[3] ]);
|
||
}
|
||
break;
|
||
|
||
case 4:
|
||
{
|
||
if(m5data.io_numbers[4] <= 0)
|
||
{
|
||
if(m5data.io_numbers[0]||m5data.io_numbers[1]||m5data.io_numbers[2]||m5data.io_numbers[3])
|
||
{
|
||
m5data.io_numbers[4] = 9;
|
||
overflow_flag_low = 4;
|
||
}
|
||
else
|
||
{
|
||
m5data.io_numbers[4] = 0;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m5data.io_numbers[4] = m5data.io_numbers[4] - 1;
|
||
}
|
||
|
||
// sprintf(buff_io,"%d",m5data.io_numbers[4]);
|
||
// lv_span_set_text(guider_ui.screen_main_spangroup_11_span, buff_io);
|
||
|
||
lv_img_set_src(guider_ui.screen_main_animimg_6, screen_main_animimg_6_imgs[ m5data.io_numbers[4] ]);
|
||
}
|
||
break;
|
||
|
||
case 5:
|
||
{
|
||
if(m5data.io_numbers[5] <= 0)
|
||
{
|
||
if(m5data.io_numbers[0]||m5data.io_numbers[1]||m5data.io_numbers[2]||m5data.io_numbers[3]||m5data.io_numbers[4])
|
||
{
|
||
m5data.io_numbers[5] = 9;
|
||
overflow_flag_low = 5;
|
||
}
|
||
else
|
||
{
|
||
m5data.io_numbers[5] = 0;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m5data.io_numbers[5] = m5data.io_numbers[5] - 1;
|
||
}
|
||
|
||
// sprintf(buff_io,"%d",m5data.io_numbers[5]);
|
||
// lv_span_set_text(guider_ui.screen_main_spangroup_12_span, buff_io);
|
||
|
||
lv_img_set_src(guider_ui.screen_main_animimg_7, screen_main_animimg_7_imgs[ m5data.io_numbers[5] ]);
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
if(overflow_flag_low) //发生向下溢出
|
||
{
|
||
int oftemp = 0;
|
||
oftemp = 100000*m5data.io_numbers[0] + 10000*m5data.io_numbers[1] + 1000*m5data.io_numbers[2] + \
|
||
100*m5data.io_numbers[3] + 10*m5data.io_numbers[4] + m5data.io_numbers[5];
|
||
|
||
switch (overflow_flag_low)
|
||
{
|
||
case 1:
|
||
{
|
||
oftemp -= 100000;
|
||
}
|
||
break;
|
||
|
||
case 2:
|
||
{
|
||
oftemp -= 10000;
|
||
}
|
||
break;
|
||
|
||
case 3:
|
||
{
|
||
oftemp -= 1000;
|
||
}
|
||
break;
|
||
|
||
case 4:
|
||
{
|
||
oftemp -= 100;
|
||
}
|
||
break;
|
||
|
||
case 5:
|
||
{
|
||
oftemp -= 10;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
m5data.io_numbers[0] = (oftemp/100000 > 9)?(0):(oftemp/100000);
|
||
lv_img_set_src(guider_ui.screen_main_animimg_2, screen_main_animimg_2_imgs[ m5data.io_numbers[0] ]);
|
||
m5data.io_numbers[1] = (oftemp/10000) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_3, screen_main_animimg_3_imgs[ m5data.io_numbers[1] ]);
|
||
m5data.io_numbers[2] = (oftemp/1000) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_4, screen_main_animimg_4_imgs[ m5data.io_numbers[2] ]);
|
||
m5data.io_numbers[3] = (oftemp/100) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_5, screen_main_animimg_5_imgs[ m5data.io_numbers[3] ]);
|
||
m5data.io_numbers[4] = (oftemp/10) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_6, screen_main_animimg_6_imgs[ m5data.io_numbers[4] ]);
|
||
m5data.io_numbers[5] = oftemp % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_7, screen_main_animimg_7_imgs[ m5data.io_numbers[5] ]);
|
||
|
||
overflow_flag_low = 0;
|
||
}
|
||
}
|
||
break;
|
||
|
||
// case KEY_BACK: //迁移至函数 key_functions_setting
|
||
// {
|
||
// key = 0;
|
||
|
||
// //加载主界面
|
||
// setup_scr_screen_main(&guider_ui);
|
||
// lv_scr_load(guider_ui.screen_main);
|
||
|
||
// //切换至菜单后,清除主界面对象,释放内存
|
||
// guider_ui.screen_setting_del = true;
|
||
// lv_obj_del(guider_ui.screen_setting);
|
||
|
||
// m5data.scr_now = SCREEN_MAIN; //当前界面为主界面
|
||
// }
|
||
// break;
|
||
|
||
default:
|
||
{
|
||
key = 0;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
|
||
void scr_init_run(void) //开机动画
|
||
{
|
||
if( m5data.scr_init_cnt <= SCREEN_INIT_CNT_MAX )
|
||
{
|
||
if( m5data.tick_prv == -1 )
|
||
{
|
||
m5data.tick_prv = xTaskGetTickCount();
|
||
}else
|
||
{
|
||
m5data.tick_cur = xTaskGetTickCount();
|
||
if(m5data.tick_cur < m5data.tick_prv) //防止溢出
|
||
{
|
||
m5data.tick_prv = -1;
|
||
m5data.tick_cur = -1;
|
||
return;
|
||
}
|
||
|
||
if(m5data.tick_cur - m5data.tick_prv >= 1000)
|
||
{
|
||
m5data.tick_prv = -1;
|
||
m5data.tick_cur = -1;
|
||
|
||
m5data.scr_init_bar = m5data.scr_init_cnt * ( 100/SCREEN_INIT_CNT_MAX );
|
||
lv_bar_set_value(guider_ui.screen_init_bar_1, m5data.scr_init_bar, LV_ANIM_OFF);
|
||
|
||
m5data.scr_init_cnt ++;
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
//加载主界面
|
||
setup_scr_screen_main(&guider_ui);
|
||
lv_scr_load(guider_ui.screen_main);
|
||
|
||
//开机动画结束后,清除该对象,释放内存
|
||
guider_ui.screen_init_del = true;
|
||
lv_obj_del(guider_ui.screen_init);
|
||
|
||
m5data.scr_init_flag = 1; //开机动画结束,只执行一次
|
||
m5data.scr_now = SCREEN_MAIN; //开机动画结束后,默认进入主界面
|
||
}
|
||
}
|
||
|
||
void scr_main_run(void) //主界面
|
||
{
|
||
//运行时间显示
|
||
runtime_show();
|
||
|
||
//电池电量显示
|
||
battery_show();
|
||
|
||
//动态曲线绘制
|
||
plot_drawing();
|
||
|
||
//当前输出值、工作模式、IN/OUT、ON/OFF、当前工作模式的单位或类型。该部分内容已迁移至按键功能,按键按下后再对显示内容进行设置
|
||
//数值闪烁
|
||
num_twinkle();
|
||
|
||
}
|
||
|
||
void runtime_show(void)
|
||
{
|
||
if(heart_1000ms_flag)
|
||
{
|
||
heart_1000ms_flag = 0;
|
||
|
||
m5data.runtime_seconds ++;
|
||
if( m5data.runtime_seconds > 59)
|
||
{
|
||
m5data.runtime_minutes ++;
|
||
m5data.runtime_seconds = 0;
|
||
}
|
||
if(m5data.runtime_minutes > 59)
|
||
{
|
||
m5data.runtime_hours ++;
|
||
m5data.runtime_minutes = 0;
|
||
}
|
||
if(m5data.runtime_hours > 99)
|
||
{
|
||
m5data.runtime_seconds = 0;
|
||
m5data.runtime_minutes = 0;
|
||
m5data.runtime_hours = 0;
|
||
}
|
||
|
||
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_1_span, m5data.runtime_show);
|
||
}
|
||
}
|
||
|
||
void battery_show(void) //电池电量显示
|
||
{
|
||
//用于测试显示功能,每隔3秒切换一帧动画
|
||
if(battery_3000ms_flag)
|
||
{
|
||
battery_3000ms_flag = 0;
|
||
|
||
lv_img_set_src(guider_ui.screen_main_animimg_1, screen_main_animimg_1_imgs[m5data.battery_cnt]);
|
||
m5data.battery_cnt = (m5data.battery_cnt >= 5)?(0):( m5data.battery_cnt + 1);
|
||
}
|
||
}
|
||
|
||
void key_functions_setting(void) //按键功能,详细设置菜单界面
|
||
{
|
||
switch (key)
|
||
{
|
||
case KEY_BACK:
|
||
{
|
||
key = 0;
|
||
|
||
//加载主界面
|
||
setup_scr_screen_main(&guider_ui);
|
||
lv_scr_load(guider_ui.screen_main);
|
||
|
||
//切换至菜单后,清除主界面对象,释放内存
|
||
guider_ui.screen_setting_del = true;
|
||
lv_obj_del(guider_ui.screen_setting);
|
||
|
||
m5data.scr_now = SCREEN_MAIN; //当前界面为主界面
|
||
}
|
||
break;
|
||
|
||
default:
|
||
{
|
||
key = 0;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
|
||
uint8_t twk_p = 0;
|
||
void num_twinkle(void) //数值闪烁
|
||
{
|
||
if(m5data.twk_flag == 0)
|
||
{
|
||
return;
|
||
}
|
||
else
|
||
{ //闪烁开始
|
||
switch (m5data.io_cursor) //闪烁指定位置
|
||
{
|
||
case 0:
|
||
{
|
||
if(twk_1000ms_flag)
|
||
{
|
||
twk_1000ms_flag = 0;
|
||
twk_cnt++;
|
||
|
||
if(twk_p)
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_2, screen_main_animimg_2_imgs[ m5data.io_numbers[0] ]);
|
||
twk_p = 0;
|
||
}else
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_2, screen_main_animimg_2_imgs[ 10 ]);
|
||
twk_p = 1;
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 1:
|
||
{
|
||
if(twk_1000ms_flag)
|
||
{
|
||
twk_1000ms_flag = 0;
|
||
twk_cnt++;
|
||
|
||
if(twk_p)
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_3, screen_main_animimg_3_imgs[ m5data.io_numbers[1] ]);
|
||
twk_p = 0;
|
||
}else
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_3, screen_main_animimg_3_imgs[ 10 ]);
|
||
twk_p = 1;
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 2:
|
||
{
|
||
if(twk_1000ms_flag)
|
||
{
|
||
twk_1000ms_flag = 0;
|
||
twk_cnt++;
|
||
|
||
if(twk_p)
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_4, screen_main_animimg_4_imgs[ m5data.io_numbers[2] ]);
|
||
twk_p = 0;
|
||
}else
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_4, screen_main_animimg_4_imgs[ 10 ]);
|
||
twk_p = 1;
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 3:
|
||
{
|
||
if(twk_1000ms_flag)
|
||
{
|
||
twk_1000ms_flag = 0;
|
||
twk_cnt++;
|
||
|
||
if(twk_p)
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_5, screen_main_animimg_5_imgs[ m5data.io_numbers[3] ]);
|
||
twk_p = 0;
|
||
}else
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_5, screen_main_animimg_5_imgs[ 10 ]);
|
||
twk_p = 1;
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 4:
|
||
{
|
||
if(twk_1000ms_flag)
|
||
{
|
||
twk_1000ms_flag = 0;
|
||
twk_cnt++;
|
||
|
||
if(twk_p)
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_6, screen_main_animimg_6_imgs[ m5data.io_numbers[4] ]);
|
||
twk_p = 0;
|
||
}else
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_6, screen_main_animimg_6_imgs[ 10 ]);
|
||
twk_p = 1;
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 5:
|
||
{
|
||
if(twk_1000ms_flag)
|
||
{
|
||
twk_1000ms_flag = 0;
|
||
twk_cnt++;
|
||
|
||
if(twk_p)
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_7, screen_main_animimg_7_imgs[ m5data.io_numbers[5] ]);
|
||
twk_p = 0;
|
||
}else
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_7, screen_main_animimg_7_imgs[ 10 ]);
|
||
twk_p = 1;
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
if(twk_cnt > 10) // 10秒无动作(上、下、左、右无按下)后停止闪烁
|
||
{
|
||
twk_cnt = 0;
|
||
m5data.twk_flag = 0;
|
||
m5data.io_cursor_prv = m5data.io_cursor;
|
||
|
||
switch (m5data.io_cursor) //防止空白残留
|
||
{
|
||
case 0:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_2, screen_main_animimg_2_imgs[ m5data.io_numbers[0] ]);
|
||
}
|
||
break;
|
||
|
||
case 1:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_3, screen_main_animimg_3_imgs[ m5data.io_numbers[1] ]);
|
||
}
|
||
break;
|
||
|
||
case 2:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_4, screen_main_animimg_4_imgs[ m5data.io_numbers[2] ]);
|
||
}
|
||
break;
|
||
|
||
case 3:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_5, screen_main_animimg_5_imgs[ m5data.io_numbers[3] ]);
|
||
}
|
||
break;
|
||
|
||
case 4:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_6, screen_main_animimg_6_imgs[ m5data.io_numbers[4] ]);
|
||
}
|
||
break;
|
||
|
||
case 5:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_7, screen_main_animimg_7_imgs[ m5data.io_numbers[5] ]);
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
void plot_drawing(void) //实时曲线绘制
|
||
{
|
||
if(plot_1500ms_flag)
|
||
{
|
||
plot_1500ms_flag = 0;
|
||
|
||
pltdata.yreal_pri_value = m5data.io_numbers[0]*100 + m5data.io_numbers[1]*10 + m5data.io_numbers[2] + \
|
||
m5data.io_numbers[3]*(float32)0.1 + m5data.io_numbers[4]*(float32)0.01 + m5data.io_numbers[5]*(float32)0.001;
|
||
|
||
pltdata.y_pri_value = ( pltdata.y_pri_up - pltdata.y_pri_low ) * \
|
||
( pltdata.yreal_pri_value - pltdata.yreal_pri_low ) / ( pltdata.yreal_pri_up - pltdata.yreal_pri_low );
|
||
|
||
if(pltdata.y_pri_value >= pltdata.y_pri_up) pltdata.y_pri_value = pltdata.y_pri_up;
|
||
if(pltdata.y_pri_value <= pltdata.y_pri_low) pltdata.y_pri_value = pltdata.y_pri_low;
|
||
lv_chart_set_next_value(guider_ui.screen_main_chart_1, guider_ui.screen_main_chart_1_0, pltdata.y_pri_value);
|
||
}
|
||
}
|
||
|
||
void scr_setting_run(void) //详细设置界面
|
||
{
|
||
|
||
}
|
||
|
||
/**********test5**********/
|
||
#else
|
||
/**********test4**********/
|
||
uint8_t scr_init_bar1 = 0, scr_init_cnt = 0, scr_init_flag = 0;
|
||
int tick_prv = -1, tick_cur = -1;
|
||
|
||
void menu_test4()
|
||
{
|
||
if(scr_init_flag == 0)
|
||
{
|
||
scr_init_run();
|
||
}else
|
||
{
|
||
scr_main_run();
|
||
}
|
||
|
||
if(key == 103)
|
||
{
|
||
key = 0;
|
||
|
||
menu_test4_reset();
|
||
}
|
||
}
|
||
|
||
void scr_init_run(void)
|
||
{
|
||
if( scr_init_cnt <= 4 )
|
||
{
|
||
if( tick_prv == -1 )
|
||
{
|
||
tick_prv = xTaskGetTickCount();
|
||
}else
|
||
{
|
||
tick_cur = xTaskGetTickCount();
|
||
if(tick_cur - tick_prv >= 1000)
|
||
{
|
||
tick_prv = -1;
|
||
tick_cur = -1;
|
||
|
||
scr_init_bar1 = scr_init_cnt*25;
|
||
lv_bar_set_value(guider_ui.screen_init_bar_1, scr_init_bar1, LV_ANIM_OFF);
|
||
|
||
scr_init_cnt ++;
|
||
}
|
||
}
|
||
|
||
}else
|
||
{
|
||
if( tick_prv == -1 )
|
||
{
|
||
tick_prv = xTaskGetTickCount();
|
||
|
||
}else
|
||
{
|
||
tick_cur = xTaskGetTickCount();
|
||
if(tick_cur - tick_prv >= 250)
|
||
{
|
||
scr_init_flag = 1;
|
||
tick_prv = -1;
|
||
tick_cur = -1;
|
||
|
||
// lv_scr_load_anim(guider_ui.screen_main, LV_SCR_LOAD_ANIM_NONE, 100, 0, 1); ?会进入错误中断,原因未知
|
||
|
||
setup_scr_screen_main(&guider_ui);
|
||
lv_scr_load(guider_ui.screen_main);
|
||
|
||
//开机动画结束后,清除该对象,释放内存
|
||
guider_ui.screen_init_del = true;
|
||
lv_obj_del(guider_ui.screen_init);
|
||
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
SCR_MAIN scr_main;
|
||
int nowtime_hours = 0, nowtime_minutes = 0, nowtime_seconds = 0;
|
||
void scr_main_run(void)
|
||
{
|
||
//运行时间显示
|
||
nowtime_show();
|
||
|
||
//电池电量显示
|
||
battery_show();
|
||
|
||
//曲线绘制 & 输出输入值显示
|
||
dynamic_plot();
|
||
|
||
}
|
||
|
||
void nowtime_show(void)
|
||
{
|
||
if(heart_1000ms_flag)
|
||
{
|
||
heart_1000ms_flag = 0;
|
||
|
||
nowtime_seconds++;
|
||
if(nowtime_seconds > 59)
|
||
{
|
||
nowtime_minutes++;
|
||
nowtime_seconds = 0;
|
||
}
|
||
if(nowtime_minutes > 59)
|
||
{
|
||
nowtime_hours++;
|
||
nowtime_minutes = 0;
|
||
}
|
||
if(nowtime_hours > 99)
|
||
{
|
||
nowtime_seconds = 0;
|
||
nowtime_minutes = 0;
|
||
nowtime_hours = 0;
|
||
}
|
||
|
||
sprintf(scr_main.sig_runtime, "%02d:%02d:%02d",nowtime_hours, nowtime_minutes,nowtime_seconds);
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_1_span, scr_main.sig_runtime);
|
||
}
|
||
}
|
||
|
||
uint8_t bt_cnt = 0;
|
||
void battery_show(void)
|
||
{
|
||
if(battery_3000ms_flag)
|
||
{
|
||
battery_3000ms_flag = 0;
|
||
|
||
lv_img_set_src(guider_ui.screen_main_animimg_1, screen_main_animimg_1_imgs[bt_cnt]);
|
||
bt_cnt = (bt_cnt >= 5)?(0):( bt_cnt + 1);
|
||
}
|
||
}
|
||
|
||
uint8_t plot_cnt = 0;
|
||
void dynamic_plot(void)
|
||
{
|
||
if(plot_1500ms_flag)
|
||
{
|
||
plot_1500ms_flag = 0;
|
||
|
||
|
||
lv_chart_set_next_value(guider_ui.screen_main_chart_1, guider_ui.screen_main_chart_1_0, 10 * plot_cnt);
|
||
plot_cnt = (plot_cnt > 9)?(0):( plot_cnt + 1);
|
||
|
||
sprintf(scr_main.sig_data_io, "%03d.%03d", 0, 10 * plot_cnt);
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_2_span, scr_main.sig_data_io);
|
||
|
||
if(plot_cnt % 2)
|
||
{
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_4_span, "OUT");
|
||
|
||
}else{
|
||
|
||
lv_span_set_text(guider_ui.screen_main_spangroup_4_span, "IN");
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
void menu_test4_reset(void)
|
||
{
|
||
scr_init_flag = 0;
|
||
|
||
scr_init_bar1 = 0;
|
||
scr_init_cnt = 0;
|
||
scr_init_flag = 0;
|
||
tick_prv = -1;
|
||
tick_cur = -1;
|
||
nowtime_hours = 0;
|
||
nowtime_minutes = 0;
|
||
nowtime_seconds = 0;
|
||
bt_cnt = 0;
|
||
plot_cnt = 0;
|
||
|
||
setup_scr_screen_init(&guider_ui);
|
||
lv_scr_load(guider_ui.screen_init);
|
||
|
||
guider_ui.screen_main_del = true;
|
||
lv_obj_del(guider_ui.screen_main);
|
||
guider_ui.screen_setting_del = true;
|
||
lv_obj_del(guider_ui.screen_setting);
|
||
}
|
||
/**********test4**********/
|
||
|
||
/**********test3**********/
|
||
// uint8_t scr_init_bar1 = 0, scr_init_cnt = 0, scr_init_flag = 0;
|
||
// int tick_prv = -1, tick_cur = -1;
|
||
// void menu_test3(void)
|
||
// {
|
||
// if(scr_init_flag == 0)
|
||
// {
|
||
// scr_init_run();
|
||
// }else
|
||
// {
|
||
// scr_main_run();
|
||
// }
|
||
|
||
// }
|
||
|
||
// void scr_init_run(void)
|
||
// {
|
||
// if( scr_init_cnt <= 5 )
|
||
// {
|
||
// if( tick_prv == -1 )
|
||
// {
|
||
// tick_prv = xTaskGetTickCount();
|
||
// }else
|
||
// {
|
||
// tick_cur = xTaskGetTickCount();
|
||
// if(tick_cur - tick_prv >= 1000)
|
||
// {
|
||
// tick_prv = -1;
|
||
// tick_cur = -1;
|
||
|
||
// scr_init_bar1 = scr_init_cnt*20;
|
||
// lv_bar_set_value(guider_ui.screen_init_bar_1, scr_init_bar1, LV_ANIM_OFF);
|
||
// scr_init_cnt ++;
|
||
// }
|
||
// }
|
||
|
||
// }else
|
||
// {
|
||
// if( tick_prv == -1 )
|
||
// {
|
||
// tick_prv = xTaskGetTickCount();
|
||
|
||
// }else
|
||
// {
|
||
// tick_cur = xTaskGetTickCount();
|
||
// if(tick_cur - tick_prv >= 250)
|
||
// {
|
||
// scr_init_flag = 1;
|
||
// tick_prv = -1;
|
||
// tick_cur = -1;
|
||
|
||
// // lv_scr_load_anim(guider_ui.screen_main, LV_SCR_LOAD_ANIM_FADE_OUT, 1000, 250, 1);
|
||
// init_scr_del_flag(&guider_ui);
|
||
// setup_scr_screen_main(&guider_ui);
|
||
// lv_scr_load(guider_ui.screen_main);
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
|
||
// uint8_t led_bri = 0;
|
||
// void scr_main_run(void)
|
||
// {
|
||
// //LED_LCD
|
||
// if( tick_prv == -1 )
|
||
// {
|
||
// tick_prv = xTaskGetTickCount();
|
||
|
||
// }else
|
||
// {
|
||
// tick_cur = xTaskGetTickCount();
|
||
// if(tick_cur - tick_prv >= 1000)
|
||
// {
|
||
// tick_prv = -1;
|
||
// tick_cur = -1;
|
||
|
||
// led_bri = (led_bri == 0)?(255):(0);
|
||
// lv_led_set_brightness(guider_ui.screen_main_led_1, led_bri);
|
||
// }
|
||
|
||
// }
|
||
|
||
// //Menu_LCD
|
||
// switch(key)
|
||
// {
|
||
// case 71:
|
||
// {
|
||
// key = 0;
|
||
|
||
// lv_event_send(guider_ui.screen_main_menu_1_cont_1, LV_EVENT_CLICKED, NULL);
|
||
// lv_meter_set_indicator_value(guider_ui.screen_main_meter_1,guider_ui.screen_main_meter_1_scale_0_ndline_0, 25);
|
||
// }
|
||
// break;
|
||
|
||
// case 79:
|
||
// {
|
||
// key = 0;
|
||
|
||
// lv_event_send(guider_ui.screen_main_menu_1_cont_2, LV_EVENT_CLICKED, NULL);
|
||
// lv_meter_set_indicator_value(guider_ui.screen_main_meter_1, guider_ui.screen_main_meter_1_scale_0_ndline_0, 50);
|
||
// }
|
||
// break;
|
||
|
||
// case 87:
|
||
// {
|
||
// key = 0;
|
||
|
||
// lv_event_send(guider_ui.screen_main_menu_1_cont_3, LV_EVENT_CLICKED, NULL);
|
||
// lv_meter_set_indicator_value(guider_ui.screen_main_meter_1, guider_ui.screen_main_meter_1_scale_0_ndline_0, 75);
|
||
// }
|
||
// break;
|
||
|
||
// case 95:
|
||
// {
|
||
// key = 0;
|
||
|
||
// scr_init_flag = 0;
|
||
// scr_init_bar1 = 0;
|
||
// scr_init_cnt = 0;
|
||
|
||
// init_scr_del_flag(&guider_ui);
|
||
// setup_scr_screen_init(&guider_ui);
|
||
// lv_scr_load(guider_ui.screen_init);
|
||
// }
|
||
|
||
// default:
|
||
// {
|
||
// }
|
||
// break;
|
||
// }
|
||
// }
|
||
/**********test3**********/
|
||
|
||
/**********test2**********/
|
||
// int bar1_v = 0, bar2_v = 0, bar3_v = 0;
|
||
// void menu_test2(void)
|
||
// {
|
||
// switch(key)
|
||
// {
|
||
// case 68:
|
||
// {
|
||
// key = 0;
|
||
// bar1_v = ( bar1_v > 90 )?( 0 ):( bar1_v + 10 );
|
||
// lv_bar_set_value(guider_ui.screen_bar_1, bar1_v, LV_ANIM_OFF);
|
||
// }
|
||
// break;
|
||
|
||
// case 69:
|
||
// {
|
||
// key = 0;
|
||
// bar2_v = ( bar2_v > 90 )?( 0 ):( bar2_v + 10 );
|
||
// lv_bar_set_value(guider_ui.screen_bar_2, bar2_v, LV_ANIM_OFF);
|
||
// }
|
||
// break;
|
||
|
||
// case 70:
|
||
// {
|
||
// key = 0;
|
||
// bar3_v = ( bar3_v > 90 )?( 0 ):( bar3_v + 10 );
|
||
// lv_bar_set_value(guider_ui.screen_bar_3, bar3_v, LV_ANIM_OFF);
|
||
// }
|
||
// break;
|
||
|
||
// default:
|
||
// {
|
||
// }
|
||
// break;
|
||
// }
|
||
// }
|
||
/**********test2**********/
|
||
|
||
#endif
|
||
|
||
|
||
|