sggt/App/APP_WU/Src/app_screen_modbus.c

188 lines
5.6 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "app_screen_modbus.h"
//modbus配置项的游标
MOD_CONF_ITEMS mod_mas_conf_cursor = MOD_CONF_SLAVE_ID;
MOD_CONF_ITEMS mod_mas_conf_cursor_prv = MOD_CONF_NONE;
uint8_t config_focus = 0;
//modbus收发界面的选项游标
MOD_TRX_ITEMS mod_mas_trx_cursor = MOD_TRX_PREVIOUS;
MOD_TRX_ITEMS mod_mas_trx_cursor_prv = MOD_TRX_NONE;
uint8_t trx_focus = 0;
void config_items_set_color(MOD_CONF_ITEMS cur, uint32_t color)
{
switch (cur)
{
case MOD_CONF_SLAVE_ID:
{
lv_obj_set_style_bg_color(guider_ui.screen_modbus_config_value_device_addr, lv_color_hex(color), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case MOD_CONF_START_ADDRESS:
{
lv_obj_set_style_bg_color(guider_ui.screen_modbus_config_value_start_addr, lv_color_hex(color), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case MOD_CONF_BYTES:
{
lv_obj_set_style_bg_color(guider_ui.screen_modbus_config_value_bytes, lv_color_hex(color), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case MOD_CONF_TIMEOUT:
{
lv_obj_set_style_bg_color(guider_ui.screen_modbus_config_value_timeout, lv_color_hex(color), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case MOD_CONF_COMMAND:
{
lv_obj_set_style_bg_color(guider_ui.screen_modbus_config_value_cmd, lv_color_hex(color), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case MOD_CONF_REGISTER_NUM:
{
lv_obj_set_style_bg_color(guider_ui.screen_modbus_config_value_register_num, lv_color_hex(color), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case MOD_CONF_CALIBRATION:
{
lv_obj_set_style_bg_color(guider_ui.screen_modbus_config_value_calibration, lv_color_hex(color), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case MOD_CONF_NEXT:
{
lv_obj_set_style_bg_color(guider_ui.screen_modbus_config_value_next, lv_color_hex(color), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
default:
break;
}
}
void config_items_check(MOD_CONF_ITEMS cur, MOD_CONF_ITEMS cur_prv)
{
uint32_t color = 0;
if(config_focus == 1)
{
color = COLOR_CONTENTS_FOCUSED;
}
else
{
color = COLOR_CONTENTS_CHECKED;
}
//点亮cur
config_items_set_color(cur, color);
//熄灭cur——prv
config_items_set_color(cur_prv, COLOR_ITEMS_UNCHECKED);
}
void trx_items_set_color(MOD_TRX_ITEMS cur, uint32_t color)
{
switch (cur)
{
case MOD_TRX_DATA:
{
lv_obj_set_style_bg_color(guider_ui.screen_modbus_trx_value_Data, lv_color_hex(color), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case MOD_TRX_PREVIOUS:
{
lv_obj_set_style_bg_color(guider_ui.screen_modbus_trx_label_previous, lv_color_hex(color), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case MOD_TRX_SET:
{
lv_obj_set_style_bg_color(guider_ui.screen_modbus_trx_label_set, lv_color_hex(color), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
case MOD_TRX_SEND:
{
lv_obj_set_style_bg_color(guider_ui.screen_modbus_trx_label_send, lv_color_hex(color), LV_PART_MAIN|LV_STATE_DEFAULT);
}
break;
default:
break;
}
}
void trx_items_check(MOD_TRX_ITEMS cur, MOD_TRX_ITEMS cur_prv)
{
uint32_t color = 0;
if(trx_focus == 1)
{
color = COLOR_CONTENTS_FOCUSED;
}
else
{
color = COLOR_CONTENTS_CHECKED;
}
//点亮cur
trx_items_set_color(cur, color);
//熄灭cur——prv
trx_items_set_color(cur_prv, COLOR_ITEMS_UNCHECKED);
}
void scr_modbus_config_recover(void)
{
lv_label_set_text(guider_ui.screen_modbus_config_label_title, text_pack.modbus_master_title);
lv_label_set_text(guider_ui.screen_modbus_config_label_device_addr, text_pack.modbus_master_item[0]);
lv_label_set_text(guider_ui.screen_modbus_config_label_start_addr, text_pack.modbus_master_item[1]);
lv_label_set_text(guider_ui.screen_modbus_config_label_bytes, text_pack.modbus_master_item[2]);
lv_label_set_text(guider_ui.screen_modbus_config_label_timeout, text_pack.modbus_master_item[3]);
lv_label_set_text(guider_ui.screen_modbus_config_label_cmd, text_pack.modbus_master_item[4]);
lv_label_set_text(guider_ui.screen_modbus_config_label_register_num, text_pack.modbus_master_item[5]);
lv_label_set_text(guider_ui.screen_modbus_config_label_calibration, text_pack.modbus_master_item[6]);
lv_label_set_text(guider_ui.screen_modbus_config_label_next, text_pack.modbus_master_item[7]);
mod_mas_conf_cursor = MOD_CONF_SLAVE_ID; //配置项的游标
mod_mas_conf_cursor_prv = MOD_CONF_NONE;
config_items_check(mod_mas_conf_cursor, mod_mas_conf_cursor_prv);
}
void scr_modbus_trx_recover(void)
{
//清空数据、发送、接收框
lv_label_set_text(guider_ui.screen_modbus_trx_value_Data,"");
lv_label_set_text(guider_ui.screen_modbus_trx_value_Tx,"");
lv_label_set_text(guider_ui.screen_modbus_trx_value_Rx,"");
mod_mas_trx_cursor = MOD_TRX_PREVIOUS;
mod_mas_trx_cursor_prv = MOD_TRX_NONE;
trx_items_check(mod_mas_trx_cursor, mod_mas_trx_cursor_prv);
}
uint8_t trx_focus_cnt = 0;
void screen_modbus_trx_run(void)
{
//mobus收发界面ok按下焦点后亮一段时间后恢复原色
if(trx_focus)
{
trx_focus_cnt++;
if(trx_focus_cnt >= 2)
{
trx_focus_cnt = 0;
trx_focus = 0;
trx_items_check(mod_mas_trx_cursor, MOD_TRX_NONE);
}
}
}