Landzo_K60Z_WebServer/src/ui/ui_standby.c

59 lines
1.8 KiB
C

/* 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;
}
}
}
}