更新:
1、输出值的数码管更新迁移至主界面的循环任务中,更新周期与任务周期一致,mux任务中参与显示屏操作; 2、menu任务周期调整至300ms,曲线默认刷新间隔调整至1000ms,描点个数调整至10个;
This commit is contained in:
parent
bab58a6493
commit
6a6cd5eee2
|
@ -93,7 +93,7 @@ extern SIG_TRANSMISSION sig_trans; //通讯模式
|
||||||
#define MY_ABS(pa) ( ( (pa) >= 0 )?( (pa) ):( 0 - (pa) ) )
|
#define MY_ABS(pa) ( ( (pa) >= 0 )?( (pa) ):( 0 - (pa) ) )
|
||||||
|
|
||||||
#define LVGL_TASK_PERIOD 5 //LVGL任务周期
|
#define LVGL_TASK_PERIOD 5 //LVGL任务周期
|
||||||
#define MENU_TASK_PERIOD 500 //显示内容设置周期
|
#define MENU_TASK_PERIOD 300 //显示内容设置周期
|
||||||
#define BLE_TASK_PERIOD 10 //蓝牙任务周期
|
#define BLE_TASK_PERIOD 10 //蓝牙任务周期
|
||||||
#define HART_TASK_PERIOD 10 //HART任务周期
|
#define HART_TASK_PERIOD 10 //HART任务周期
|
||||||
#define RS485_TASK_PERIOD 10 //485任务周期
|
#define RS485_TASK_PERIOD 10 //485任务周期
|
||||||
|
|
|
@ -113,19 +113,16 @@ void scr_init_run(void)
|
||||||
//配置主界面的内容
|
//配置主界面的内容
|
||||||
setup_scr_screen_main(&guider_ui);
|
setup_scr_screen_main(&guider_ui);
|
||||||
scr_main_set_flag = 1;
|
scr_main_set_flag = 1;
|
||||||
|
|
||||||
//不加延时有概率卡死
|
|
||||||
delay_cnt(200);
|
delay_cnt(200);
|
||||||
|
|
||||||
//配置设置界面的内容
|
//配置设置界面的内容
|
||||||
setup_scr_screen_setting(&guider_ui);
|
setup_scr_screen_setting(&guider_ui);
|
||||||
|
|
||||||
//不加延时有概率卡死
|
|
||||||
delay_cnt(200);
|
delay_cnt(200);
|
||||||
|
|
||||||
|
scr_main_recover();
|
||||||
|
|
||||||
//加载主界面
|
//加载主界面
|
||||||
lv_scr_load(guider_ui.screen_main);
|
lv_scr_load(guider_ui.screen_main);
|
||||||
scr_main_recover();
|
|
||||||
|
|
||||||
//开机动画结束后,删除界面对象,异步删除,更加安全
|
//开机动画结束后,删除界面对象,异步删除,更加安全
|
||||||
lv_obj_del_async(guider_ui.screen_init);
|
lv_obj_del_async(guider_ui.screen_init);
|
||||||
|
|
|
@ -393,10 +393,12 @@ void sig_channel_select(uint8_t io, SIG_FUNCTIONS_TYPE type)
|
||||||
}
|
}
|
||||||
|
|
||||||
//更新设定值(根据ON\OFF状态)
|
//更新设定值(根据ON\OFF状态)
|
||||||
|
|
||||||
void sig_sv_update(void)
|
void sig_sv_update(void)
|
||||||
{
|
{
|
||||||
if(progout_data.process == PROGOUT_WAITING)
|
if(progout_data.process == PROGOUT_WAITING)
|
||||||
{
|
{
|
||||||
|
//按键修改屏幕上的设定值 -> 将屏幕上的值转化成实际值 -> 实际值再转化成mux输入值
|
||||||
switch (menu_data.io_on2off)
|
switch (menu_data.io_on2off)
|
||||||
{
|
{
|
||||||
case IO_ON:
|
case IO_ON:
|
||||||
|
@ -417,9 +419,11 @@ void sig_sv_update(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
//软件设定输出百分比 -> 百分比转化成mux值(mux任务)-> mux转化为实际值在屏幕上显示
|
||||||
if(menu_data.io_on2off == IO_ON)
|
if(menu_data.io_on2off == IO_ON)
|
||||||
{
|
{
|
||||||
program_out_run();
|
program_out_run();
|
||||||
|
set_output( mux2real(mux_signal.data_sv) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -397,6 +397,8 @@ void key_functions_main(void)
|
||||||
if(current_operation == PROG_OUT_PROCESSING)
|
if(current_operation == PROG_OUT_PROCESSING)
|
||||||
{
|
{
|
||||||
progout_data.process = PROGOUT_END;
|
progout_data.process = PROGOUT_END;
|
||||||
|
progout_tick_flag = 0;
|
||||||
|
progout_tick = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -251,7 +251,7 @@ void set_item1_value(ITEM_CONTENTS con, int8_t step)
|
||||||
tabdata.item1_page0_sample_interval += step * 100;
|
tabdata.item1_page0_sample_interval += step * 100;
|
||||||
|
|
||||||
if( tabdata.item1_page0_sample_interval > 10000 ) tabdata.item1_page0_sample_interval = 10000;
|
if( tabdata.item1_page0_sample_interval > 10000 ) tabdata.item1_page0_sample_interval = 10000;
|
||||||
if( tabdata.item1_page0_sample_interval < 500 ) tabdata.item1_page0_sample_interval = 500;
|
if( tabdata.item1_page0_sample_interval < MENU_TASK_PERIOD ) tabdata.item1_page0_sample_interval = MENU_TASK_PERIOD;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -11,13 +11,13 @@ void program_out_init(void)
|
||||||
progout_data.output_unit = PROG_OUT_MA;
|
progout_data.output_unit = PROG_OUT_MA;
|
||||||
progout_data.output_mode = PROG_OUT_STEP;
|
progout_data.output_mode = PROG_OUT_STEP;
|
||||||
progout_data.circulations = 3;
|
progout_data.circulations = 3;
|
||||||
progout_data.hold_time = 2000;
|
progout_data.hold_time = 3000;
|
||||||
progout_data.start_percent = 0;
|
progout_data.start_percent = 0;
|
||||||
progout_data.end_percent = 100;
|
progout_data.end_percent = 100;
|
||||||
progout_data.step_percent = 25;
|
progout_data.step_percent = 25;
|
||||||
progout_data.rising_percent = 100;
|
progout_data.rising_percent = 100;
|
||||||
progout_data.falling_percent = 0;
|
progout_data.falling_percent = 0;
|
||||||
progout_data.period = 3000;
|
progout_data.period = 5000;
|
||||||
}
|
}
|
||||||
|
|
||||||
void program_out_config1(void)
|
void program_out_config1(void)
|
||||||
|
@ -556,8 +556,7 @@ void percent2val_out(float32 perc)
|
||||||
if( (perc < 0)||(perc > 100) ) return;
|
if( (perc < 0)||(perc > 100) ) return;
|
||||||
|
|
||||||
mux_signal.data_sv = perc / (float32)100 * (progout_data.out_max - progout_data.out_min) + progout_data.out_min;
|
mux_signal.data_sv = perc / (float32)100 * (progout_data.out_max - progout_data.out_min) + progout_data.out_min;
|
||||||
|
mux_signal.data_sv = real2mux(mux_signal.data_sv);
|
||||||
set_output(mux_signal.data_sv);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int8_t step_dir = 0;
|
int8_t step_dir = 0;
|
||||||
|
@ -581,7 +580,7 @@ void program_out_step(void)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//到达起点%后等待一段时间
|
//到达起点%后等待一段时间
|
||||||
if(progout_tick >= 5000)
|
if(progout_tick >= 3000)
|
||||||
{
|
{
|
||||||
//计时结束
|
//计时结束
|
||||||
progout_tick_flag = 0;
|
progout_tick_flag = 0;
|
||||||
|
@ -601,32 +600,50 @@ void program_out_step(void)
|
||||||
|
|
||||||
case PROGOUT_END:
|
case PROGOUT_END:
|
||||||
{
|
{
|
||||||
step_dir = 0;
|
if( progout_tick_flag == 0 )
|
||||||
cir_times = 0;
|
{
|
||||||
|
progout_tick_flag = 1;
|
||||||
|
progout_tick = 0;
|
||||||
|
|
||||||
menu_data.io_on2off = IO_OFF;
|
//相关参数清零
|
||||||
mux_signal.data_sv = 0;
|
step_dir = 0;
|
||||||
|
cir_times = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//等待3秒后返回config2界面
|
||||||
|
if(progout_tick >= 3000)
|
||||||
|
{
|
||||||
|
//计时结束
|
||||||
|
progout_tick_flag = 0;
|
||||||
|
progout_tick = 0;
|
||||||
|
|
||||||
//加载菜单界面
|
//输出关闭、清零
|
||||||
lv_scr_load(guider_ui.screen_setting);
|
menu_data.io_on2off = IO_OFF;
|
||||||
scr_setting_recover();
|
mux_signal.data_sv = 0;
|
||||||
lv_obj_clear_flag(guider_ui.screen_setting, LV_OBJ_FLAG_HIDDEN);
|
|
||||||
|
|
||||||
//隐藏主界面对象
|
//加载菜单界面
|
||||||
lv_obj_add_flag(guider_ui.screen_main, LV_OBJ_FLAG_HIDDEN);
|
lv_scr_load(guider_ui.screen_setting);
|
||||||
|
scr_setting_recover();
|
||||||
|
lv_obj_clear_flag(guider_ui.screen_setting, LV_OBJ_FLAG_HIDDEN);
|
||||||
|
|
||||||
menu_data.scr_now = SCREEN_SETTING; //当前界面为详细设置菜单
|
//隐藏主界面对象
|
||||||
|
lv_obj_add_flag(guider_ui.screen_main, LV_OBJ_FLAG_HIDDEN);
|
||||||
|
|
||||||
tabdata.item_cursor_prv = ITEM_0;
|
//当前界面为详细设置菜单,切换至ITEM2
|
||||||
tabdata.item_cursor = ITEM_2;
|
menu_data.scr_now = SCREEN_SETTING;
|
||||||
setting_items_check(tabdata.item_cursor, tabdata.item_cursor_prv);
|
tabdata.item_cursor_prv = ITEM_0;
|
||||||
|
tabdata.item_cursor = ITEM_2;
|
||||||
|
setting_items_check(tabdata.item_cursor, tabdata.item_cursor_prv);
|
||||||
|
|
||||||
//返回config2界面
|
//返回config2界面
|
||||||
program_out_config2();
|
program_out_config2();
|
||||||
current_operation = PROG_OUT_CONFIG_2;
|
current_operation = PROG_OUT_CONFIG_2;
|
||||||
key_config_update(current_operation);
|
key_config_update(current_operation);
|
||||||
|
|
||||||
progout_data.process = PROGOUT_WAITING;
|
progout_data.process = PROGOUT_WAITING;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -655,7 +672,12 @@ void running_process_step(void)
|
||||||
if( progout_data.circulations < 11 )
|
if( progout_data.circulations < 11 )
|
||||||
{
|
{
|
||||||
//循环次数达到目标后,跳转至终止步骤
|
//循环次数达到目标后,跳转至终止步骤
|
||||||
if(cir_times >= progout_data.circulations) progout_data.process = PROGOUT_END;
|
if(cir_times >= progout_data.circulations)
|
||||||
|
{
|
||||||
|
progout_data.process = PROGOUT_END;
|
||||||
|
progout_tick_flag = 0;
|
||||||
|
progout_tick = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -673,7 +695,7 @@ void running_process_step(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( progout_tick > progout_data.hold_time )
|
if( progout_tick >= progout_data.hold_time )
|
||||||
{
|
{
|
||||||
//计时结束
|
//计时结束
|
||||||
progout_tick_flag = 0;
|
progout_tick_flag = 0;
|
||||||
|
@ -724,7 +746,7 @@ void program_out_triangle(void)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//到达起点%后等待一段时间
|
//到达起点%后等待一段时间
|
||||||
if(progout_tick >= 5000)
|
if(progout_tick >= 3000)
|
||||||
{
|
{
|
||||||
//计时结束
|
//计时结束
|
||||||
progout_tick_flag = 0;
|
progout_tick_flag = 0;
|
||||||
|
@ -744,34 +766,54 @@ void program_out_triangle(void)
|
||||||
|
|
||||||
case PROGOUT_END:
|
case PROGOUT_END:
|
||||||
{
|
{
|
||||||
step_dir = 0;
|
if( progout_tick_flag == 0 )
|
||||||
cir_times = 0;
|
{
|
||||||
progout_tick_flag = 0;
|
progout_tick_flag = 1;
|
||||||
progout_tick = 0;
|
progout_tick = 0;
|
||||||
|
|
||||||
menu_data.io_on2off = IO_OFF;
|
//相关参数清零
|
||||||
mux_signal.data_sv = 0;
|
step_dir = 0;
|
||||||
|
cir_times = 0;
|
||||||
|
tri_interval = 0;
|
||||||
|
tri_step_up = 0;
|
||||||
|
tri_step_down = 0;
|
||||||
|
tri_up2down = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//等待3秒后返回config2界面
|
||||||
|
if(progout_tick >= 3000)
|
||||||
|
{
|
||||||
|
//计时结束
|
||||||
|
progout_tick_flag = 0;
|
||||||
|
progout_tick = 0;
|
||||||
|
|
||||||
//加载菜单界面
|
//输出关闭、清零
|
||||||
lv_scr_load(guider_ui.screen_setting);
|
menu_data.io_on2off = IO_OFF;
|
||||||
scr_setting_recover();
|
mux_signal.data_sv = 0;
|
||||||
lv_obj_clear_flag(guider_ui.screen_setting, LV_OBJ_FLAG_HIDDEN);
|
|
||||||
|
|
||||||
//隐藏主界面对象
|
//加载菜单界面
|
||||||
lv_obj_add_flag(guider_ui.screen_main, LV_OBJ_FLAG_HIDDEN);
|
lv_scr_load(guider_ui.screen_setting);
|
||||||
|
scr_setting_recover();
|
||||||
|
lv_obj_clear_flag(guider_ui.screen_setting, LV_OBJ_FLAG_HIDDEN);
|
||||||
|
|
||||||
menu_data.scr_now = SCREEN_SETTING; //当前界面为详细设置菜单
|
//隐藏主界面对象
|
||||||
|
lv_obj_add_flag(guider_ui.screen_main, LV_OBJ_FLAG_HIDDEN);
|
||||||
|
|
||||||
tabdata.item_cursor_prv = ITEM_0;
|
menu_data.scr_now = SCREEN_SETTING; //当前界面为详细设置菜单
|
||||||
tabdata.item_cursor = ITEM_2;
|
|
||||||
setting_items_check(tabdata.item_cursor, tabdata.item_cursor_prv);
|
|
||||||
|
|
||||||
//返回config2界面
|
tabdata.item_cursor_prv = ITEM_0;
|
||||||
program_out_config2();
|
tabdata.item_cursor = ITEM_2;
|
||||||
current_operation = PROG_OUT_CONFIG_2;
|
setting_items_check(tabdata.item_cursor, tabdata.item_cursor_prv);
|
||||||
key_config_update(current_operation);
|
|
||||||
|
|
||||||
progout_data.process = PROGOUT_WAITING;
|
//返回config2界面
|
||||||
|
program_out_config2();
|
||||||
|
current_operation = PROG_OUT_CONFIG_2;
|
||||||
|
key_config_update(current_operation);
|
||||||
|
|
||||||
|
progout_data.process = PROGOUT_WAITING;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -260,31 +260,6 @@
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>progout_data,0x0A</ItemText>
|
<ItemText>progout_data,0x0A</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
|
||||||
<count>21</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>tri_interval,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>22</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>tri_step_up,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>23</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>tri_step_down,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>24</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>tri_up2down,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>25</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>cir_times</ItemText>
|
|
||||||
</Ww>
|
|
||||||
</WatchWindow1>
|
</WatchWindow1>
|
||||||
<WatchWindow2>
|
<WatchWindow2>
|
||||||
<Ww>
|
<Ww>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue