improvement display state

This commit is contained in:
2025-10-18 18:44:56 +02:00
parent 719701bc55
commit 32e05989f5
3 changed files with 34 additions and 25 deletions

View File

@@ -39,6 +39,8 @@ static lv_obj_t *img5;
static lv_obj_t *img6;
static lv_obj_t *img7;
lv_obj_t *state_symbol;
// Transition animation
static const void *trans_ainm_buf[] = {
&gif_01, &gif_12, &gif_23, &gif_34, &gif_45,
@@ -46,6 +48,7 @@ static const void *trans_ainm_buf[] = {
};
static void update_text_subscriber_cb_demo1(void *s, lv_msg_t *msg);
static void update_display_state(void *s, lv_msg_t *msg);
void set_flip_time_anim(int hour, int minute, int second);
void ui_begin() {
@@ -55,6 +58,12 @@ void ui_begin() {
lv_obj_set_style_bg_color(dis, lv_color_black(), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_t *tv1 = lv_tileview_add_tile(dis, 0, 0, LV_DIR_VER);
state_symbol = lv_label_create(lv_scr_act());
lv_obj_align(state_symbol, LV_ALIGN_TOP_LEFT, 20, 5);
lv_obj_set_width(state_symbol, LV_PCT(80));
lv_label_set_long_mode(state_symbol, LV_LABEL_LONG_SCROLL);
lv_label_set_recolor(state_symbol, true);
img1 = lv_gif_create(tv1);
img2 = lv_gif_create(tv1);
@@ -80,25 +89,23 @@ void ui_begin() {
lv_msg_subsribe(MSG_NEW_HOUR, update_text_subscriber_cb_demo1, NULL);
lv_msg_subsribe(MSG_NEW_MIN, update_text_subscriber_cb_demo1, NULL);
lv_msg_subsribe(MSG_NEW_SEC, update_text_subscriber_cb_demo1, NULL);
lv_msg_subsribe(MSG_NEW_VOLT, update_display_state, NULL);
}
void update_display_state(uint16_t state) {
lv_obj_t *state_symbol = lv_label_create(lv_scr_act());
lv_obj_align(state_symbol, LV_ALIGN_TOP_LEFT, 20, 5);
lv_obj_set_width(state_symbol, LV_PCT(80));
lv_label_set_long_mode(state_symbol, LV_LABEL_LONG_SCROLL);
lv_label_set_recolor(state_symbol, true);
if (state == 0) {
lv_label_set_text(state_symbol, "#00FF00 " LV_SYMBOL_OK " ON #");
} else if (state == 1) {
lv_label_set_text(state_symbol, "#FFA500 " LV_SYMBOL_PAUSE " IDLE #");
} else {
lv_label_set_text(state_symbol, "#FFA500 " LV_SYMBOL_PAUSE " OFF #");
}
static void update_display_state(void *s, lv_msg_t *msg) {
const char * payload = (const char *)lv_msg_get_payload(msg);
lv_delay_ms(5000);
lv_label_set_text(state_symbol, "");
if (lv_msg_get_id(msg) == MSG_NEW_VOLT) {
if (payload == "0") {
lv_label_set_text(state_symbol, "#00FF00 " LV_SYMBOL_OK " ON #");
} else if (payload == "1") {
lv_label_set_text(state_symbol, "#FFA500 " LV_SYMBOL_PAUSE " IDLE #");
} else if (payload == "2") {
lv_label_set_text(state_symbol, "#FF0000 " LV_SYMBOL_POWER" OFF #");
} else {
lv_label_set_text(state_symbol, "");
}
}
}
static void update_text_subscriber_cb_demo1(void *s, lv_msg_t *msg) {