/* FreeRTOS */ #include "FreeRTOS.h" #include "task.h" /* LVGL */ #include "lvgl.h" /* UI */ #include "ui_helpers.h" void ui_standby_task(void *pvParameters) { lv_obj_t *img_background = NULL; lv_font_t *font_noto_sans_bold_72 = NULL; lv_style_t style_label_time; lv_obj_t *label_time = NULL; if (xSemaphoreTake(g_lvgl_semphr, portMAX_DELAY) == pdTRUE) { img_background = lv_img_create(lv_scr_act()); lv_img_set_src(img_background, "A:/resources/images/bg_image_1.bin"); font_noto_sans_bold_72 = lv_font_load("A:/resources/fonts/noto-sans_bold_72.bin"); lv_style_init(&style_label_time); lv_style_set_text_font(&style_label_time, font_noto_sans_bold_72); lv_style_set_text_color(&style_label_time, lv_color_make(181, 27, 58)); label_time = lv_label_create(lv_scr_act()); lv_obj_add_style(label_time, &style_label_time, 0); lv_obj_set_width(label_time, 240); lv_obj_set_height(label_time, 80); lv_obj_align(label_time, LV_ALIGN_CENTER, 0, -40); lv_obj_set_style_text_align(label_time, LV_TEXT_ALIGN_CENTER, 0); lv_label_set_text(label_time, "--:--"); xSemaphoreGive(g_lvgl_semphr); } ui_standby_queue_t cmd; for (;;) { if (xQueueReceive(g_ui_standby_queue, &cmd, portMAX_DELAY) == pdPASS) { switch (cmd.cmd) { case UI_STANDBY_CMD_UPDATE_TIME: { if (xSemaphoreTake(g_lvgl_semphr, portMAX_DELAY) == pdTRUE) { lv_label_set_text(label_time, (char *)cmd.payload); xSemaphoreGive(g_lvgl_semphr); } vPortFree(cmd.payload); break; } default: break; } } } }