2180 lines
69 KiB
C
2180 lines
69 KiB
C
/*
|
||
* @Author: wujunchao wujunchao@wuxismart.com
|
||
* @Date: 2024-12-27 11:50:56
|
||
* @LastEditors: wujunchao wujunchao@wuxismart.com
|
||
* @LastEditTime: 2025-03-06 15:06:42
|
||
* @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 }
|
||
|
||
/**********test5**********/
|
||
MENU_DATA m5data;
|
||
PLOT_DATA pltdata;
|
||
TABVIEW_DATA tabdata;
|
||
|
||
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; //小时
|
||
memset(m5data.runtime_show, 0, 16);
|
||
m5data.battery_cnt = 0; //电池计数
|
||
m5data.io_cursor = 2; //当前游标位置,[000,000]:0~5
|
||
m5data.io_cursor_prv = 2; //前一时刻游标位置
|
||
m5data.twk_flag = 0; //0停止闪烁,1开始闪烁
|
||
m5data.io_on2off = IO_OFF; //初始为关闭状态
|
||
m5data.io_mode = IO_OUTPUT; //默认工作模式,0:输入IN,1:输出OUT
|
||
for(uint8_t i = 0; i < 6; i++) //用于数值显示的数组,初值为0
|
||
{
|
||
m5data.i_numbers[i] = 0;
|
||
m5data.o_numbers[i] = 0;
|
||
}
|
||
m5data.input_mode = SIG_VOLTAGE; //输入功能初始为电压模式
|
||
m5data.input_mode_type = VOLTAGE_V; //电压单位初始为V
|
||
m5data.output_mode = SIG_VOLTAGE; //输出功能初始为电压模式
|
||
m5data.output_mode_type = VOLTAGE_V;//电压单位初始为V
|
||
|
||
//图标显示值(int,0~100整数)
|
||
pltdata.y_pri_low = 0; //主轴的显示范围,0~100,通常不做修改
|
||
pltdata.y_pri_up = 100;
|
||
pltdata.y_scd_low = 0; //副轴的显示范围,0~100,通常不做修改
|
||
pltdata.y_scd_up = 100;
|
||
pltdata.y_pri_value = 0; //主轴的实时显示值,0~100
|
||
pltdata.y_scd_value = 0; //副轴的实时显示值,0~100
|
||
|
||
//实际物理量(float32)
|
||
pltdata.yreal_pri_low = 0;
|
||
pltdata.yreal_pri_up = 30;
|
||
pltdata.yreal_scd_low = 0;
|
||
pltdata.yreal_scd_up = 30;
|
||
pltdata.yreal_pri_value = 0;
|
||
pltdata.yreal_scd_value = 0;
|
||
// }
|
||
|
||
//screen_setting
|
||
tabdata.tab_cursor = 0;
|
||
tabdata.tab_cursor_prv = 0;
|
||
tabdata.tab_cursor_inner = 99;
|
||
tabdata.tab_cursor_inner_prv = 99;
|
||
|
||
tabdata.content00 = 0;
|
||
tabdata.content01_mV = 500;
|
||
tabdata.content01_V = 30;
|
||
tabdata.content02_mV = 0;
|
||
tabdata.content02_V = 0;
|
||
}
|
||
|
||
uint8_t menu_reset_flag = 0;
|
||
void menu_reset(void)
|
||
{
|
||
//参数复位
|
||
menu_data_init();
|
||
|
||
//界面复位
|
||
//加载初始界面
|
||
setup_scr_screen_init(&guider_ui);
|
||
lv_scr_load(guider_ui.screen_init);
|
||
|
||
//释放内存
|
||
if(m5data.scr_now == SCREEN_SETTING)
|
||
{
|
||
guider_ui.screen_setting_del = true;
|
||
lv_obj_del(guider_ui.screen_setting);
|
||
}
|
||
|
||
if(m5data.scr_now == SCREEN_MAIN)
|
||
{
|
||
guider_ui.screen_main_del = true;
|
||
lv_obj_del(guider_ui.screen_main);
|
||
}
|
||
}
|
||
|
||
|
||
void menu_test5(void)
|
||
{
|
||
if(menu_reset_flag)
|
||
{
|
||
menu_reset_flag = 0;
|
||
|
||
menu_reset();
|
||
|
||
return;
|
||
}
|
||
|
||
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;
|
||
|
||
io_on2off_status(); //更新状态指示
|
||
}
|
||
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_label_set_text(guider_ui.screen_main_label_Mode, "Volt");
|
||
}
|
||
break;
|
||
|
||
case SIG_CURRENT: //电流
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "Cur");
|
||
}
|
||
break;
|
||
|
||
case SIG_RESISTANT: //电阻
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "Res");
|
||
}
|
||
break;
|
||
|
||
case SIG_FREQUENCE: //频率
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "Fre");
|
||
}
|
||
break;
|
||
|
||
case SIG_TC: //热电偶
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "Tc");
|
||
}
|
||
break;
|
||
|
||
case SIG_RTD: //热电阻
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "RTD");
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case KEY_UP:
|
||
{
|
||
key = 0;
|
||
|
||
m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
|
||
twk_cnt = 0; //每次按下后闪烁计数清零
|
||
|
||
switch (m5data.io_cursor)
|
||
{
|
||
case 0:
|
||
{
|
||
m5data.o_numbers[0] = (m5data.o_numbers[0] >= 9)?(9):(m5data.o_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.o_numbers[0] ]);
|
||
}
|
||
break;
|
||
|
||
case 1:
|
||
{
|
||
if(m5data.o_numbers[1] >= 9)
|
||
{
|
||
if( m5data.o_numbers[0]!=9 )
|
||
{
|
||
m5data.o_numbers[1] = 0;
|
||
overflow_flag = 1;
|
||
}
|
||
else
|
||
{
|
||
m5data.o_numbers[1] = 9;
|
||
}
|
||
}else
|
||
{
|
||
m5data.o_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.o_numbers[1] ]);
|
||
}
|
||
break;
|
||
|
||
case 2:
|
||
{
|
||
if(m5data.o_numbers[2] >= 9)
|
||
{
|
||
if( (m5data.o_numbers[0]!=9)||(m5data.o_numbers[1]!=9))
|
||
{
|
||
m5data.o_numbers[2] = 0;
|
||
overflow_flag = 2;
|
||
}
|
||
else
|
||
{
|
||
m5data.o_numbers[2] = 9;
|
||
}
|
||
}else
|
||
{
|
||
m5data.o_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.o_numbers[2] ]);
|
||
}
|
||
break;
|
||
|
||
case 3:
|
||
{
|
||
if(m5data.o_numbers[3] >= 9)
|
||
{
|
||
if( (m5data.o_numbers[0]!=9)||(m5data.o_numbers[1]!=9)||(m5data.o_numbers[2]!=9))
|
||
{
|
||
m5data.o_numbers[3] = 0;
|
||
overflow_flag = 3;
|
||
}
|
||
else
|
||
{
|
||
m5data.o_numbers[3] = 9;
|
||
}
|
||
}else
|
||
{
|
||
m5data.o_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.o_numbers[3] ]);
|
||
}
|
||
break;
|
||
|
||
case 4:
|
||
{
|
||
if(m5data.o_numbers[4] >= 9)
|
||
{
|
||
if( (m5data.o_numbers[0]!=9)||(m5data.o_numbers[1]!=9)||(m5data.o_numbers[2]!=9)||(m5data.o_numbers[3]!=9))
|
||
{
|
||
m5data.o_numbers[4] = 0;
|
||
overflow_flag = 4;
|
||
}
|
||
else
|
||
{
|
||
m5data.o_numbers[4] = 9;
|
||
}
|
||
}else
|
||
{
|
||
m5data.o_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.o_numbers[4] ]);
|
||
}
|
||
break;
|
||
|
||
case 5:
|
||
{
|
||
if(m5data.o_numbers[5] >= 9)
|
||
{
|
||
if( (m5data.o_numbers[0]!=9)||(m5data.o_numbers[1]!=9)||(m5data.o_numbers[2]!=9)||(m5data.o_numbers[3]!=9)||(m5data.o_numbers[4]!=9))
|
||
{
|
||
m5data.o_numbers[5] = 0;
|
||
overflow_flag = 5;
|
||
}
|
||
else
|
||
{
|
||
m5data.o_numbers[5] = 9;
|
||
}
|
||
}else
|
||
{
|
||
m5data.o_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.o_numbers[5] ]);
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
if(overflow_flag) //发生向上溢出
|
||
{
|
||
int oftemp = 0;
|
||
oftemp = 100000*m5data.o_numbers[0] + 10000*m5data.o_numbers[1] + 1000*m5data.o_numbers[2] + \
|
||
100*m5data.o_numbers[3] + 10*m5data.o_numbers[4] + m5data.o_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.o_numbers[0] = (oftemp/100000 > 9)?(9):(oftemp/100000);
|
||
lv_img_set_src(guider_ui.screen_main_animimg_2, screen_main_animimg_2_imgs[ m5data.o_numbers[0] ]);
|
||
m5data.o_numbers[1] = (oftemp/10000) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_3, screen_main_animimg_3_imgs[ m5data.o_numbers[1] ]);
|
||
m5data.o_numbers[2] = (oftemp/1000) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_4, screen_main_animimg_4_imgs[ m5data.o_numbers[2] ]);
|
||
m5data.o_numbers[3] = (oftemp/100) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_5, screen_main_animimg_5_imgs[ m5data.o_numbers[3] ]);
|
||
m5data.o_numbers[4] = (oftemp/10) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_6, screen_main_animimg_6_imgs[ m5data.o_numbers[4] ]);
|
||
m5data.o_numbers[5] = oftemp % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_7, screen_main_animimg_7_imgs[ m5data.o_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; //当前界面为详细设置菜单
|
||
|
||
scr_setting_recover();
|
||
}
|
||
break;
|
||
|
||
case KEY_IN:
|
||
{
|
||
key = 0;
|
||
|
||
if(m5data.io_mode == IO_OUTPUT)
|
||
{
|
||
m5data.io_mode = IO_INPUT;
|
||
m5data.input_mode = m5data.output_mode;
|
||
|
||
io_on2off_status(); //更新状态指示
|
||
}
|
||
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_label_set_text(guider_ui.screen_main_label_Mode, "Volt");
|
||
}
|
||
break;
|
||
|
||
case SIG_CURRENT: //电流
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "Cur");
|
||
}
|
||
break;
|
||
|
||
case SIG_RESISTANT: //电阻
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "Res");
|
||
}
|
||
break;
|
||
|
||
case SIG_FREQUENCE: //频率
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "Fre");
|
||
}
|
||
break;
|
||
|
||
case SIG_TC: //热电偶
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "Tc");
|
||
}
|
||
break;
|
||
|
||
case SIG_RTD: //热电阻
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "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.o_numbers[0] ]);
|
||
}
|
||
break;
|
||
|
||
case 1:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_3, screen_main_animimg_3_imgs[ m5data.o_numbers[1] ]);
|
||
}
|
||
break;
|
||
|
||
case 2:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_4, screen_main_animimg_4_imgs[ m5data.o_numbers[2] ]);
|
||
}
|
||
break;
|
||
|
||
case 3:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_5, screen_main_animimg_5_imgs[ m5data.o_numbers[3] ]);
|
||
}
|
||
break;
|
||
|
||
case 4:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_6, screen_main_animimg_6_imgs[ m5data.o_numbers[4] ]);
|
||
}
|
||
break;
|
||
|
||
case 5:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_7, screen_main_animimg_7_imgs[ m5data.o_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_img_3, IO_CURSOR_START1 + IO_CURSOR_INTERVAL * m5data.io_cursor, IO_CURSOR_Y);
|
||
}
|
||
else
|
||
{
|
||
lv_obj_set_pos(guider_ui.screen_main_img_3, IO_CURSOR_START2 + IO_CURSOR_INTERVAL * (m5data.io_cursor - 3), IO_CURSOR_Y);
|
||
}
|
||
|
||
}
|
||
break;
|
||
|
||
case KEY_OK:
|
||
{
|
||
key = 0;
|
||
|
||
if(m5data.io_on2off == IO_ON)
|
||
{
|
||
m5data.io_on2off = IO_OFF;
|
||
lv_label_set_text(guider_ui.screen_main_label_ONOFF, "OFF");
|
||
}
|
||
else
|
||
{
|
||
m5data.io_on2off = IO_ON;
|
||
lv_label_set_text(guider_ui.screen_main_label_ONOFF, "ON");
|
||
}
|
||
|
||
io_on2off_status(); //更新状态指示
|
||
}
|
||
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.o_numbers[0] ]);
|
||
}
|
||
break;
|
||
|
||
case 1:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_3, screen_main_animimg_3_imgs[ m5data.o_numbers[1] ]);
|
||
}
|
||
break;
|
||
|
||
case 2:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_4, screen_main_animimg_4_imgs[ m5data.o_numbers[2] ]);
|
||
}
|
||
break;
|
||
|
||
case 3:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_5, screen_main_animimg_5_imgs[ m5data.o_numbers[3] ]);
|
||
}
|
||
break;
|
||
|
||
case 4:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_6, screen_main_animimg_6_imgs[ m5data.o_numbers[4] ]);
|
||
}
|
||
break;
|
||
|
||
case 5:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_7, screen_main_animimg_7_imgs[ m5data.o_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_img_3, IO_CURSOR_START1 + IO_CURSOR_INTERVAL * m5data.io_cursor, IO_CURSOR_Y);
|
||
}
|
||
else
|
||
{
|
||
lv_obj_set_pos(guider_ui.screen_main_img_3, IO_CURSOR_START2 + IO_CURSOR_INTERVAL * (m5data.io_cursor - 3), IO_CURSOR_Y);
|
||
}
|
||
}
|
||
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_label_set_text(guider_ui.screen_main_label_unit, "mV");
|
||
}
|
||
break;
|
||
|
||
case VOLTAGE_V:
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_unit, "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_label_set_text(guider_ui.screen_main_label_unit, "mV");
|
||
}
|
||
break;
|
||
|
||
case VOLTAGE_V:
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_unit, "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.o_numbers[0] <= 0)
|
||
{
|
||
m5data.o_numbers[0] = 0;
|
||
overflow_flag_low = 0;
|
||
}
|
||
else
|
||
{
|
||
m5data.o_numbers[0] = m5data.o_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.o_numbers[0] ]);
|
||
}
|
||
break;
|
||
|
||
case 1:
|
||
{
|
||
if(m5data.o_numbers[1] <= 0)
|
||
{
|
||
if(m5data.o_numbers[0])
|
||
{
|
||
m5data.o_numbers[1] = 9;
|
||
overflow_flag_low = 1;
|
||
}
|
||
else
|
||
{
|
||
m5data.o_numbers[1] = 0;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m5data.o_numbers[1] = m5data.o_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.o_numbers[1] ]);
|
||
}
|
||
break;
|
||
|
||
case 2:
|
||
{
|
||
if(m5data.o_numbers[2] <= 0)
|
||
{
|
||
if(m5data.o_numbers[0]||m5data.o_numbers[1])
|
||
{
|
||
m5data.o_numbers[2] = 9;
|
||
overflow_flag_low = 2;
|
||
}
|
||
else
|
||
{
|
||
m5data.o_numbers[2] = 0;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m5data.o_numbers[2] = m5data.o_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.o_numbers[2] ]);
|
||
}
|
||
break;
|
||
|
||
case 3:
|
||
{
|
||
if(m5data.o_numbers[3] <= 0)
|
||
{
|
||
if(m5data.o_numbers[0]||m5data.o_numbers[1]||m5data.o_numbers[2])
|
||
{
|
||
m5data.o_numbers[3] = 9;
|
||
overflow_flag_low = 3;
|
||
}
|
||
else
|
||
{
|
||
m5data.o_numbers[3] = 0;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m5data.o_numbers[3] = m5data.o_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.o_numbers[3] ]);
|
||
}
|
||
break;
|
||
|
||
case 4:
|
||
{
|
||
if(m5data.o_numbers[4] <= 0)
|
||
{
|
||
if(m5data.o_numbers[0]||m5data.o_numbers[1]||m5data.o_numbers[2]||m5data.o_numbers[3])
|
||
{
|
||
m5data.o_numbers[4] = 9;
|
||
overflow_flag_low = 4;
|
||
}
|
||
else
|
||
{
|
||
m5data.o_numbers[4] = 0;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m5data.o_numbers[4] = m5data.o_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.o_numbers[4] ]);
|
||
}
|
||
break;
|
||
|
||
case 5:
|
||
{
|
||
if(m5data.o_numbers[5] <= 0)
|
||
{
|
||
if(m5data.o_numbers[0]||m5data.o_numbers[1]||m5data.o_numbers[2]||m5data.o_numbers[3]||m5data.o_numbers[4])
|
||
{
|
||
m5data.o_numbers[5] = 9;
|
||
overflow_flag_low = 5;
|
||
}
|
||
else
|
||
{
|
||
m5data.o_numbers[5] = 0;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
m5data.o_numbers[5] = m5data.o_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.o_numbers[5] ]);
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
if(overflow_flag_low) //发生向下溢出
|
||
{
|
||
int oftemp = 0;
|
||
oftemp = 100000*m5data.o_numbers[0] + 10000*m5data.o_numbers[1] + 1000*m5data.o_numbers[2] + \
|
||
100*m5data.o_numbers[3] + 10*m5data.o_numbers[4] + m5data.o_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.o_numbers[0] = (oftemp/100000 > 9)?(0):(oftemp/100000);
|
||
lv_img_set_src(guider_ui.screen_main_animimg_2, screen_main_animimg_2_imgs[ m5data.o_numbers[0] ]);
|
||
m5data.o_numbers[1] = (oftemp/10000) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_3, screen_main_animimg_3_imgs[ m5data.o_numbers[1] ]);
|
||
m5data.o_numbers[2] = (oftemp/1000) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_4, screen_main_animimg_4_imgs[ m5data.o_numbers[2] ]);
|
||
m5data.o_numbers[3] = (oftemp/100) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_5, screen_main_animimg_5_imgs[ m5data.o_numbers[3] ]);
|
||
m5data.o_numbers[4] = (oftemp/10) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_6, screen_main_animimg_6_imgs[ m5data.o_numbers[4] ]);
|
||
m5data.o_numbers[5] = oftemp % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_7, screen_main_animimg_7_imgs[ m5data.o_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状态指示
|
||
//input_value_show(); //已迁移至运行时间显示runtime_show()
|
||
|
||
//数值闪烁
|
||
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);
|
||
|
||
input_value_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 input_value_show(void)
|
||
{
|
||
int32_t pvi = 0;
|
||
pvi = (int32_t)pltdata.yreal_scd_value; //副轴用于绘制实时输入测量值
|
||
//显示当前测量值
|
||
m5data.i_numbers[0] = (pvi/100000 > 9)?(0):(pvi/100000);
|
||
lv_img_set_src(guider_ui.screen_main_animimg_9, screen_main_animimg_9_imgs[ m5data.i_numbers[0] ]);
|
||
m5data.i_numbers[1] = (pvi/10000) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_10, screen_main_animimg_10_imgs[ m5data.i_numbers[1] ]);
|
||
m5data.i_numbers[2] = (pvi/1000) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_11, screen_main_animimg_11_imgs[ m5data.i_numbers[2] ]);
|
||
m5data.i_numbers[3] = (pvi/100) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_12, screen_main_animimg_12_imgs[ m5data.i_numbers[3] ]);
|
||
m5data.i_numbers[4] = (pvi/10) % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_13, screen_main_animimg_13_imgs[ m5data.i_numbers[4] ]);
|
||
m5data.i_numbers[5] = pvi % 10;
|
||
lv_img_set_src(guider_ui.screen_main_animimg_14, screen_main_animimg_14_imgs[ m5data.i_numbers[5] ]);
|
||
}
|
||
|
||
void io_on2off_status(void)
|
||
{
|
||
switch (m5data.io_on2off)
|
||
{
|
||
case IO_ON:
|
||
{
|
||
switch (m5data.io_mode)
|
||
{
|
||
case IO_OUTPUT:
|
||
{
|
||
//输入变回黑色,输出变为绿色
|
||
lv_obj_set_style_text_color(guider_ui.screen_main_label_IN, lv_color_hex(0x000000), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
lv_obj_set_style_text_color(guider_ui.screen_main_label_OUT, lv_color_hex(0x06ff00), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
}
|
||
break;
|
||
|
||
case IO_INPUT:
|
||
{
|
||
//输出变回黑色,输入变为绿色
|
||
lv_obj_set_style_text_color(guider_ui.screen_main_label_IN, lv_color_hex(0x06ff00), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
lv_obj_set_style_text_color(guider_ui.screen_main_label_OUT, lv_color_hex(0x000000), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case IO_OFF:
|
||
{
|
||
switch (m5data.io_mode)
|
||
{
|
||
case IO_OUTPUT:
|
||
{
|
||
//输入变回黑色,输出变为红色
|
||
lv_obj_set_style_text_color(guider_ui.screen_main_label_IN, lv_color_hex(0x000000), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
lv_obj_set_style_text_color(guider_ui.screen_main_label_OUT, lv_color_hex(0xff0027), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
}
|
||
break;
|
||
|
||
case IO_INPUT:
|
||
{
|
||
//输出变回黑色,输入变为红色
|
||
lv_obj_set_style_text_color(guider_ui.screen_main_label_IN, lv_color_hex(0xff0027), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
lv_obj_set_style_text_color(guider_ui.screen_main_label_OUT, lv_color_hex(0x000000), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
void key_functions_setting(void)
|
||
{
|
||
switch (key)
|
||
{
|
||
case KEY_BACK:
|
||
{
|
||
key = 0;
|
||
|
||
//所有选项卡均未选中时,返回主界面,否则熄灭当前选中
|
||
if(tabdata.tab_cursor_inner == 99)
|
||
{
|
||
tabdata.tab_cursor = 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; //当前界面为主界面
|
||
|
||
scr_main_recover(); //恢复之前显示的数据
|
||
}
|
||
else
|
||
{
|
||
switch (tabdata.tab_cursor)
|
||
{
|
||
case ITEMS_0:
|
||
{
|
||
setting_items_check(99, tabdata.tab_cursor_inner, 1); //熄灭当前内容
|
||
|
||
tabdata.tab_cursor_inner = 99;
|
||
tabdata.tab_cursor_inner_prv = 99;
|
||
|
||
}
|
||
break;
|
||
|
||
case ITEMS_1:
|
||
{
|
||
tabdata.tab_cursor_inner = 99;
|
||
tabdata.tab_cursor_inner_prv = 99;
|
||
}
|
||
break;
|
||
|
||
case ITEMS_2:
|
||
{
|
||
tabdata.tab_cursor_inner = 99;
|
||
tabdata.tab_cursor_inner_prv = 99;
|
||
}
|
||
break;
|
||
|
||
case ITEMS_3:
|
||
{
|
||
tabdata.tab_cursor_inner = 99;
|
||
tabdata.tab_cursor_inner_prv = 99;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
|
||
case KEY_UP:
|
||
{
|
||
key = 0;
|
||
|
||
|
||
if(tabdata.tab_cursor_inner == 99) //内部游标为99时,说明未选中任何一个选项卡,此时的up和down用于切换选项卡
|
||
{
|
||
tabdata.tab_cursor_prv = tabdata.tab_cursor;
|
||
tabdata.tab_cursor = (tabdata.tab_cursor <= 0)?(3):(tabdata.tab_cursor - 1);
|
||
|
||
setting_items_check(tabdata.tab_cursor, tabdata.tab_cursor_prv, 0);
|
||
}
|
||
else
|
||
{ //选中某一选项卡后,对选项卡内部的内容进行选择
|
||
switch (tabdata.tab_cursor)
|
||
{
|
||
case ITEMS_0:
|
||
{
|
||
switch (tabdata.tab_cursor_inner)
|
||
{
|
||
case CONTENT_0_0:
|
||
{
|
||
tabdata.content00 = !tabdata.content00;
|
||
|
||
setting_update(ITEMS_0, CONTENT_0_0);
|
||
setting_update(ITEMS_0, CONTENT_0_1);
|
||
setting_update(ITEMS_0, CONTENT_0_2);
|
||
}
|
||
break;
|
||
|
||
case CONTENT_0_1:
|
||
{
|
||
if(tabdata.content00)
|
||
{
|
||
tabdata.content01_mV = (tabdata.content01_mV >= 500)?(0):(tabdata.content01_mV + 1);
|
||
}
|
||
else
|
||
{
|
||
tabdata.content01_V = (tabdata.content01_V >= 30)?(0):(tabdata.content01_V + 1);
|
||
}
|
||
|
||
setting_update(ITEMS_0, CONTENT_0_1);
|
||
}
|
||
break;
|
||
|
||
case CONTENT_0_2:
|
||
{
|
||
if(tabdata.content00)
|
||
{
|
||
tabdata.content02_mV = (tabdata.content02_mV >= 500)?(0):(tabdata.content02_mV + 1);
|
||
}
|
||
else
|
||
{
|
||
tabdata.content02_V = (tabdata.content02_V >= 30)?(0):(tabdata.content02_V + 1);
|
||
}
|
||
|
||
setting_update(ITEMS_0, CONTENT_0_2);
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case ITEMS_1:
|
||
{
|
||
}
|
||
break;
|
||
|
||
case ITEMS_2:
|
||
{
|
||
}
|
||
break;
|
||
|
||
case ITEMS_3:
|
||
{
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
|
||
case KEY_DOWN:
|
||
{
|
||
key = 0;
|
||
|
||
if(tabdata.tab_cursor_inner == 99)
|
||
{
|
||
tabdata.tab_cursor_prv = tabdata.tab_cursor;
|
||
tabdata.tab_cursor = (tabdata.tab_cursor >= 3)?(0):(tabdata.tab_cursor + 1);
|
||
|
||
setting_items_check(tabdata.tab_cursor, tabdata.tab_cursor_prv, 0);
|
||
}
|
||
else
|
||
{
|
||
switch (tabdata.tab_cursor)
|
||
{
|
||
case ITEMS_0:
|
||
{
|
||
}
|
||
break;
|
||
|
||
case ITEMS_1:
|
||
{
|
||
}
|
||
break;
|
||
|
||
case ITEMS_2:
|
||
{
|
||
}
|
||
break;
|
||
|
||
case ITEMS_3:
|
||
{
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
|
||
case KEY_OK:
|
||
{
|
||
key = 0;
|
||
|
||
switch (tabdata.tab_cursor)
|
||
{
|
||
case ITEMS_0:
|
||
{
|
||
if(tabdata.tab_cursor_inner == 99)
|
||
{
|
||
tabdata.tab_cursor_inner = 0;
|
||
tabdata.tab_cursor_inner_prv = 0;
|
||
|
||
setting_items_check(tabdata.tab_cursor_inner, 99, 1);
|
||
}
|
||
else
|
||
{
|
||
}
|
||
}
|
||
break;
|
||
|
||
case ITEMS_1:
|
||
{
|
||
tabdata.tab_cursor_inner = 0;
|
||
}
|
||
break;
|
||
|
||
case ITEMS_2:
|
||
{
|
||
tabdata.tab_cursor_inner = 0;
|
||
}
|
||
break;
|
||
|
||
case ITEMS_3:
|
||
{
|
||
tabdata.tab_cursor_inner = 0;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
}
|
||
break;
|
||
|
||
case KEY_LEFT:
|
||
{
|
||
key = 0;
|
||
|
||
switch (tabdata.tab_cursor)
|
||
{
|
||
case ITEMS_0:
|
||
{
|
||
tabdata.tab_cursor_inner_prv = tabdata.tab_cursor_inner;
|
||
tabdata.tab_cursor_inner = (tabdata.tab_cursor_inner <= 0)?(2):(tabdata.tab_cursor_inner - 1);
|
||
|
||
setting_items_check(tabdata.tab_cursor_inner, tabdata.tab_cursor_inner_prv, 1);
|
||
}
|
||
break;
|
||
|
||
case ITEMS_1:
|
||
{}
|
||
break;
|
||
|
||
case ITEMS_2:
|
||
{}
|
||
break;
|
||
|
||
case ITEMS_3:
|
||
{
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
}
|
||
break;
|
||
|
||
case KEY_RIGHT:
|
||
{
|
||
key = 0;
|
||
|
||
switch (tabdata.tab_cursor)
|
||
{
|
||
case ITEMS_0:
|
||
{
|
||
tabdata.tab_cursor_inner_prv = tabdata.tab_cursor_inner;
|
||
tabdata.tab_cursor_inner = (tabdata.tab_cursor_inner >= 2)?(0):(tabdata.tab_cursor_inner + 1);
|
||
|
||
setting_items_check(tabdata.tab_cursor_inner, tabdata.tab_cursor_inner_prv, 1);
|
||
}
|
||
break;
|
||
|
||
case ITEMS_1:
|
||
{}
|
||
break;
|
||
|
||
case ITEMS_2:
|
||
{}
|
||
break;
|
||
|
||
case ITEMS_3:
|
||
{
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
default:
|
||
{
|
||
key = 0;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
|
||
void setting_items_check(uint8_t cursor, uint8_t cursor_prv, uint8_t tab_cont)
|
||
{
|
||
if(tab_cont) //内容点亮和熄灭
|
||
{
|
||
switch (tabdata.tab_cursor)
|
||
{
|
||
case ITEMS_0:
|
||
{
|
||
switch (cursor) //点亮当前选中目标
|
||
{
|
||
case 0:
|
||
{
|
||
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_01, lv_color_hex(0xcbefff), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
}
|
||
break;
|
||
|
||
case 1:
|
||
{
|
||
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_03, lv_color_hex(0xcbefff), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
}
|
||
break;
|
||
|
||
case 2:
|
||
{
|
||
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_05, lv_color_hex(0xcbefff), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
switch (cursor_prv) //熄灭前一时刻的目标
|
||
{
|
||
case 0:
|
||
{
|
||
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_01, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
}
|
||
break;
|
||
|
||
case 1:
|
||
{
|
||
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_03, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
}
|
||
break;
|
||
|
||
case 2:
|
||
{
|
||
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_05, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case ITEMS_1:
|
||
{
|
||
|
||
}
|
||
break;
|
||
|
||
case ITEMS_2:
|
||
{
|
||
|
||
}
|
||
break;
|
||
|
||
case ITEMS_3:
|
||
{
|
||
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
else //标签点亮和熄灭
|
||
{
|
||
switch (cursor) //点亮当前选中目标
|
||
{
|
||
case ITEMS_0:
|
||
{
|
||
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_s0, lv_color_hex(0xcbefff), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
|
||
lv_obj_clear_flag(guider_ui.screen_setting_label_01, LV_OBJ_FLAG_HIDDEN);
|
||
lv_obj_clear_flag(guider_ui.screen_setting_label_03, LV_OBJ_FLAG_HIDDEN);
|
||
lv_obj_clear_flag(guider_ui.screen_setting_label_05, LV_OBJ_FLAG_HIDDEN);
|
||
}
|
||
break;
|
||
|
||
case ITEMS_1:
|
||
{
|
||
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_s1, lv_color_hex(0xcbefff), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
|
||
lv_obj_add_flag(guider_ui.screen_setting_label_01, LV_OBJ_FLAG_HIDDEN);
|
||
}
|
||
break;
|
||
|
||
case ITEMS_2:
|
||
{
|
||
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_s2, lv_color_hex(0xcbefff), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
|
||
lv_obj_add_flag(guider_ui.screen_setting_label_03, LV_OBJ_FLAG_HIDDEN);
|
||
}
|
||
break;
|
||
|
||
case ITEMS_3:
|
||
{
|
||
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_s3, lv_color_hex(0xcbefff), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
|
||
lv_obj_add_flag(guider_ui.screen_setting_label_05, LV_OBJ_FLAG_HIDDEN);
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
switch (cursor_prv) //熄灭前一时刻的目标
|
||
{
|
||
case ITEMS_0:
|
||
{
|
||
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_s0, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
}
|
||
break;
|
||
|
||
case ITEMS_1:
|
||
{
|
||
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_s1, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
}
|
||
break;
|
||
|
||
case ITEMS_2:
|
||
{
|
||
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_s2, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
}
|
||
break;
|
||
|
||
case ITEMS_3:
|
||
{
|
||
lv_obj_set_style_bg_color(guider_ui.screen_setting_label_s3, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
void setting_update(uint8_t ite, uint8_t con)
|
||
{
|
||
char str_temp[10];
|
||
switch (ite)
|
||
{
|
||
case ITEMS_0:
|
||
{
|
||
switch (con)
|
||
{
|
||
case CONTENT_0_0:
|
||
{
|
||
if(tabdata.content00)
|
||
{
|
||
lv_label_set_text(guider_ui.screen_setting_label_01, "mV");
|
||
}
|
||
else
|
||
{
|
||
lv_label_set_text(guider_ui.screen_setting_label_01, "V");
|
||
}
|
||
}
|
||
break;
|
||
|
||
case CONTENT_0_1:
|
||
{
|
||
if(tabdata.content00)
|
||
{
|
||
sprintf(str_temp,"%d",tabdata.content01_mV);
|
||
lv_label_set_text(guider_ui.screen_setting_label_03, str_temp);
|
||
pltdata.yreal_pri_up = tabdata.content01_mV;
|
||
pltdata.yreal_scd_up = tabdata.content01_mV;
|
||
}
|
||
else
|
||
{
|
||
sprintf(str_temp,"%d",tabdata.content01_V);
|
||
lv_label_set_text(guider_ui.screen_setting_label_03, str_temp);
|
||
pltdata.yreal_pri_up = tabdata.content01_V;
|
||
pltdata.yreal_scd_up = tabdata.content01_V;
|
||
}
|
||
|
||
|
||
}
|
||
break;
|
||
|
||
case CONTENT_0_2:
|
||
{
|
||
if(tabdata.content00)
|
||
{
|
||
sprintf(str_temp,"%d",tabdata.content02_mV);
|
||
lv_label_set_text(guider_ui.screen_setting_label_05, str_temp);
|
||
pltdata.yreal_pri_low = tabdata.content02_mV;
|
||
pltdata.yreal_scd_low = tabdata.content02_mV;
|
||
}
|
||
else
|
||
{
|
||
sprintf(str_temp,"%d",tabdata.content02_V);
|
||
lv_label_set_text(guider_ui.screen_setting_label_05, str_temp);
|
||
pltdata.yreal_pri_low = tabdata.content02_V;
|
||
pltdata.yreal_scd_low = tabdata.content02_V;
|
||
}
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case ITEMS_1:
|
||
{}
|
||
break;
|
||
|
||
case ITEMS_2:
|
||
{}
|
||
break;
|
||
|
||
case ITEMS_3:
|
||
{}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
void scr_main_recover(void)
|
||
{
|
||
// 运行时间 和 电池电量 在主界面的函数中已存在,无需额外恢复
|
||
// 曲线需要在 setup_scr_screen_main.c 中修改
|
||
|
||
io_on2off_status(); //IN&OUT, ON&OFF
|
||
|
||
//输入&输出、工作模式&类型
|
||
switch (m5data.io_mode) //输入、输出模式切换
|
||
{
|
||
case IO_OUTPUT:
|
||
{
|
||
switch (m5data.output_mode) //功能切换
|
||
{
|
||
case SIG_VOLTAGE:
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "Volt");
|
||
switch (m5data.output_mode_type) //功能类型切换,电压V/mV
|
||
{
|
||
case VOLTAGE_MV:
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_unit, "mV");
|
||
}
|
||
break;
|
||
|
||
case VOLTAGE_V:
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_unit, "V");
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case SIG_CURRENT: //电流
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "Cur");
|
||
}
|
||
break;
|
||
|
||
case SIG_RESISTANT: //电阻
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "Res");
|
||
}
|
||
break;
|
||
|
||
case SIG_FREQUENCE: //频率
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "Fre");
|
||
}
|
||
break;
|
||
|
||
case SIG_TC: //热电偶
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "Tc");
|
||
}
|
||
break;
|
||
|
||
case SIG_RTD: //热电阻
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "RTD");
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case IO_INPUT:
|
||
{
|
||
switch (m5data.input_mode)
|
||
{
|
||
case SIG_VOLTAGE:
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "Volt");
|
||
switch (m5data.input_mode) //功能类型切换,电压V/mV
|
||
{
|
||
case VOLTAGE_MV:
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_unit, "mV");
|
||
}
|
||
break;
|
||
|
||
case VOLTAGE_V:
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_unit, "V");
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case SIG_CURRENT: //电流
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "Cur");
|
||
}
|
||
break;
|
||
|
||
case SIG_RESISTANT: //电阻
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "Res");
|
||
}
|
||
break;
|
||
|
||
case SIG_FREQUENCE: //频率
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "Fre");
|
||
}
|
||
break;
|
||
|
||
case SIG_TC: //热电偶
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "Tc");
|
||
}
|
||
break;
|
||
|
||
case SIG_RTD: //热电阻
|
||
{
|
||
lv_label_set_text(guider_ui.screen_main_label_Mode, "RTD");
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
//设定值&测量值
|
||
lv_img_set_src(guider_ui.screen_main_animimg_2, screen_main_animimg_2_imgs[ m5data.o_numbers[0] ]);
|
||
lv_img_set_src(guider_ui.screen_main_animimg_3, screen_main_animimg_3_imgs[ m5data.o_numbers[1] ]);
|
||
lv_img_set_src(guider_ui.screen_main_animimg_4, screen_main_animimg_4_imgs[ m5data.o_numbers[2] ]);
|
||
lv_img_set_src(guider_ui.screen_main_animimg_5, screen_main_animimg_5_imgs[ m5data.o_numbers[3] ]);
|
||
lv_img_set_src(guider_ui.screen_main_animimg_6, screen_main_animimg_6_imgs[ m5data.o_numbers[4] ]);
|
||
lv_img_set_src(guider_ui.screen_main_animimg_7, screen_main_animimg_7_imgs[ m5data.o_numbers[5] ]);
|
||
}
|
||
|
||
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.o_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.o_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.o_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.o_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.o_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.o_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;
|
||
twk_p = 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.o_numbers[0] ]);
|
||
}
|
||
break;
|
||
|
||
case 1:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_3, screen_main_animimg_3_imgs[ m5data.o_numbers[1] ]);
|
||
}
|
||
break;
|
||
|
||
case 2:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_4, screen_main_animimg_4_imgs[ m5data.o_numbers[2] ]);
|
||
}
|
||
break;
|
||
|
||
case 3:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_5, screen_main_animimg_5_imgs[ m5data.o_numbers[3] ]);
|
||
}
|
||
break;
|
||
|
||
case 4:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_6, screen_main_animimg_6_imgs[ m5data.o_numbers[4] ]);
|
||
}
|
||
break;
|
||
|
||
case 5:
|
||
{
|
||
lv_img_set_src(guider_ui.screen_main_animimg_7, screen_main_animimg_7_imgs[ m5data.o_numbers[5] ]);
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
//实时曲线绘制
|
||
//将实际值线性转换成绘图值
|
||
void plot_drawing(void)
|
||
{
|
||
if(plot_1500ms_flag)
|
||
{
|
||
plot_1500ms_flag = 0;
|
||
|
||
//输出曲线
|
||
pltdata.yreal_pri_value = m5data.o_numbers[0]*100 + m5data.o_numbers[1]*10 + m5data.o_numbers[2] + \
|
||
m5data.o_numbers[3]*(float32)0.1 + m5data.o_numbers[4]*(float32)0.01 + m5data.o_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);
|
||
|
||
//输入曲线
|
||
pltdata.y_scd_value = ( pltdata.y_scd_up - pltdata.y_scd_low ) * \
|
||
( pltdata.yreal_scd_value - pltdata.yreal_scd_low ) / ( pltdata.yreal_scd_up - pltdata.yreal_scd_low );
|
||
|
||
if(pltdata.y_scd_value >= pltdata.y_scd_up) pltdata.y_scd_value = pltdata.y_scd_up;
|
||
if(pltdata.y_scd_value <= pltdata.y_scd_low) pltdata.y_scd_value = pltdata.y_scd_low;
|
||
lv_chart_set_next_value(guider_ui.screen_main_chart_1, guider_ui.screen_main_chart_1_1, pltdata.y_scd_value);
|
||
}
|
||
}
|
||
|
||
void scr_setting_recover(void)
|
||
{
|
||
//在这里恢复选项卡0的显示内容
|
||
//ITEMS_0
|
||
char str_temp[10];
|
||
if(tabdata.content00)
|
||
{
|
||
lv_label_set_text(guider_ui.screen_setting_label_01, "mV");
|
||
|
||
sprintf(str_temp,"%d",tabdata.content01_mV);
|
||
lv_label_set_text(guider_ui.screen_setting_label_03, str_temp);
|
||
|
||
sprintf(str_temp,"%d",tabdata.content02_mV);
|
||
lv_label_set_text(guider_ui.screen_setting_label_05, str_temp);
|
||
}
|
||
else
|
||
{
|
||
lv_label_set_text(guider_ui.screen_setting_label_01, "V");
|
||
|
||
sprintf(str_temp,"%d",tabdata.content01_V);
|
||
lv_label_set_text(guider_ui.screen_setting_label_03, str_temp);
|
||
|
||
sprintf(str_temp,"%d",tabdata.content02_V);
|
||
lv_label_set_text(guider_ui.screen_setting_label_05, str_temp);
|
||
}
|
||
|
||
}
|
||
|
||
void scr_setting_run(void) //详细设置界面
|
||
{
|
||
|
||
}
|
||
|
||
/**********test5**********/
|
||
|
||
|
||
|
||
|
||
|
||
|