improvement display state
This commit is contained in:
39
ui-util.cpp
39
ui-util.cpp
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user