Description
i have event handler with call screen function between 2 function (work with file). and i have problem - screen not run till execute function send_to_CutFile();
What MCU/Processor/Board and compiler are you using?
platformio, ESP32, Tft_espi
What do you want to achieve?
i need to call function send_to_CutFile() after load screen
What have you tried so far?
- i separated creating a screen and load screen;
create_CutScreen();
file_size(SD, fileSelectToCut);
lv_scr_load(CutScreen);
send_to_CutFile(SD, fileSelectToCut);
- i inserted send_to_CutFile(SD, fileSelectToCut); into function create_CutScreen();
Code to reproduce
The code block(s) should be between ```c
and ```
tags:
if(event == LV_EVENT_VALUE_CHANGED) {
if (String(lv_msgbox_get_active_btn_text(obj)) == "Ok"){
lv_msgbox_start_auto_close(obj, 0);
file_size(SD, fileSelectToCut);
create_CutScreen();
send_to_CutFile(SD, fileSelectToCut);
}
where create_CutScreen() is
static void create_CutScreen(void)
{
// ********************************************************************************
// ********************************************************************************
// **** Start CutMenu - чтение и посылка файла ******
// ********************************************************************************
// ********************************************************************************
style_init();
lv_style_init(&stylePage);
lv_style_set_radius(&stylePage, LV_STATE_DEFAULT, 10); //Радиус
lv_style_set_bg_opa(&stylePage, LV_STATE_DEFAULT, LV_OPA_COVER); //прозрачность LV_STATE_DEFAULT - состояние по умолчанию, LV_OPA_COVER - 0прозрачности
lv_style_set_bg_color(&stylePage, LV_STATE_DEFAULT, LV_COLOR_NAVY); //цвет фона
lv_style_set_border_width(&stylePage, LV_STATE_DEFAULT, 3); //толщина рамки
lv_style_set_border_color(&stylePage, LV_STATE_DEFAULT, LV_COLOR_MAGENTA); //цвет рамки
lv_style_set_text_color(&stylePage, LV_STATE_DEFAULT, LV_COLOR_WHITE);
//lv_style_set_image_recolor_opa(&stylePage, LV_STATE_DEFAULT,255); // задание прозрачности иконки. прозрачность разрешает менять цвет
//lv_style_set_image_recolor(&stylePage, LV_STATE_DEFAULT, LV_COLOR_WHITE); // задание цвета иконки
//lv_style_set_image_recolor(&stylePage, LV_STATE_PRESSED, LV_COLOR_LIME);
lv_obj_t * prev_scr = lv_scr_act(); // удаление предыдущего экрана
lv_obj_del_async(prev_scr); //
lv_obj_t * CutScreen = lv_obj_create(NULL, NULL);
lv_scr_load(CutScreen);
// создание экрана
lv_obj_add_style(CutScreen, LV_OBJ_PART_MAIN, &styleScreen); // придать стиль &styleSreen кнопки экрану
lv_obj_t * CutScreen_icon = lv_img_create(CutScreen, NULL); // создание картинки фона screen1_icon для экрана Screen1
lv_img_set_src(CutScreen_icon, &pict_fon); // привязка файла pict_fon к screen1_icon
lv_obj_align(CutScreen_icon, CutScreen, LV_ALIGN_CENTER, 0, 0);
// ********************************************************************************
// **** Footer1 (FOOTER) ******
// ********************************************************************************
lv_obj_t * Footer1 = lv_obj_create(CutScreen, NULL); //Создание полоски сверху экрана
lv_obj_set_height(Footer1, 20); //толщина полоски
lv_obj_set_width(Footer1, screenWidth); //длина полоски
lv_obj_add_style(Footer1, LV_OBJ_PART_MAIN, &styleFooter); //придать стиль &screenWidth для Footer1
lv_obj_align(Footer1, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, 0); //Выравнивание низ, середина
lv_obj_t * Footer_label = lv_label_create(Footer1, NULL); // создание подписи Footer_label на кнопке Footer_label
lv_label_set_text(Footer_label, "X:0000 Y:0000 A:0000 B:0000"); // текст подписи
lv_obj_align(Footer_label, NULL, LV_ALIGN_IN_TOP_LEFT, 5, 1); // выравнивание текста
lv_obj_t * Footer_label2 = lv_label_create(Footer1, NULL); // создание подписи Footer_label2 на кнопке Footer_label
lv_label_set_text(Footer_label2, "Status: IDLE"); // текст подписи
lv_obj_align(Footer_label2, NULL, LV_ALIGN_IN_TOP_RIGHT, -5, 1); // выравнивание текста
}
Screenshot and/or video
If possible, add screenshots and/or videos about the current state.