From 5cfe330c6b186811bf83645bd3ea445b3b1bbaeb Mon Sep 17 00:00:00 2001 From: Willem Oldemans Date: Tue, 1 Feb 2022 19:12:15 +0100 Subject: [PATCH] restore lvgl7 --- platformio.ini | 2 +- src/main.cpp | 62 +++++++++++++++++++++++++++++++++----------------- 2 files changed, 42 insertions(+), 22 deletions(-) diff --git a/platformio.ini b/platformio.ini index c9a6524..9f8e456 100644 --- a/platformio.ini +++ b/platformio.ini @@ -53,4 +53,4 @@ build_flags = lib_ldf_mode = deep+ lib_deps = Bodmer/TFT_eSPI - lvgl \ No newline at end of file + lvgl@~7.11.0 \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index d0ae432..26e2130 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -10,16 +10,12 @@ TFT_eSPI tft = TFT_eSPI(); FT62XXTouchScreen touchScreen = FT62XXTouchScreen(TFT_WIDTH, PIN_SDA, PIN_SCL); - #include "lvgl.h" #include "widgets/meter/lv_meter.h" #include "esp_freertos_hooks.h" -static const uint16_t screenWidth = 480; -static const uint16_t screenHeight = 320; - -static lv_disp_draw_buf_t disp_buf; -static lv_color_t buf[screenWidth * 10]; +static lv_disp_buf_t disp_buf; +static lv_color_t buf[LV_HOR_RES_MAX * 10]; @@ -35,9 +31,7 @@ lv_obj_t *tabview; lv_obj_t *meter; -static void event_handler_btn(lv_event_t * e){ - lv_event_code_t event = lv_event_get_code(e); - lv_obj_t * obj = lv_event_get_target(e); +static void event_handler_btn(lv_obj_t * obj, lv_event_t event){ if(event == LV_EVENT_CLICKED) { if (obj == btn1) lv_label_set_text(label, "Hello"); @@ -140,46 +134,72 @@ static void lv_tick_task(void) // lv_anim_start(&a); // } +void lv_gauge_2(lv_obj_t* par) +{ + /*Describe the color for the needles*/ + static lv_color_t needle_colors[3]; + needle_colors[0] = LV_COLOR_BLUE; + needle_colors[1] = LV_COLOR_ORANGE; + needle_colors[2] = LV_COLOR_PURPLE; + + LV_IMG_DECLARE(img_hand); + + /*Create a gauge*/ + guage = lv_gauge_create(par, NULL); + lv_gauge_set_needle_count(guage, 3, needle_colors); + lv_obj_set_size(guage, 200, 200); + lv_obj_align(guage, NULL, LV_ALIGN_CENTER, 100, 0); + lv_gauge_set_needle_img(guage, &img_hand, 4, 4); + /*Allow recoloring of the images according to the needles' color*/ + lv_obj_set_style_local_image_recolor_opa(guage, LV_GAUGE_PART_NEEDLE, LV_STATE_DEFAULT, LV_OPA_COVER); + + /*Set the values*/ + lv_gauge_set_value(guage, 0, 10); + lv_gauge_set_value(guage, 1, 20); + lv_gauge_set_value(guage, 2, 30); +} void lv_ex_tabview(lv_obj_t* par) { /*Create a Tab view object*/ - tabview = lv_tabview_create(par); + lv_scr_load(par); + tabview = lv_tabview_create(lv_scr_act(), NULL); /*Add 3 tabs (the tabs are page (lv_page) and can be scrolled*/ tab1 = lv_tabview_add_tab(tabview, "Tab 1"); tab2 = lv_tabview_add_tab(tabview, "Tab 2"); + lv_tabview_set_anim_time(tabview,2); } void lv_Create_text(lv_obj_t* par) { - label = lv_label_create(par); - lv_label_set_long_mode(label, LV_LABEL_LONG_CLIP); + label = lv_label_create(par, NULL); + lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK); lv_label_set_text(label, "Press a button"); - lv_obj_set_style_text_align(label, LV_TEXT_ALIGN_CENTER,0); + lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); lv_obj_set_size(label, 240, 40); lv_obj_set_pos(label, 0, 15); } void lv_Create_button1(lv_obj_t* par) { - btn1 = lv_btn_create(par); - lv_obj_add_event_cb(btn1, event_handler_btn,LV_EVENT_ALL); + btn1 = lv_btn_create(par, NULL); + lv_obj_set_event_cb(btn1, event_handler_btn); lv_obj_set_width(btn1, 70); lv_obj_set_height(btn1, 32); lv_obj_set_pos(btn1, 32, 100); - lv_obj_t * label1 = lv_label_create(btn1); + lv_obj_t * label1 = lv_label_create(btn1, NULL); lv_label_set_text(label1, "Hello"); } void lv_Create_button2(lv_obj_t* par) { - btn2 = lv_btn_create(par); - lv_obj_add_event_cb(btn2, event_handler_btn,LV_EVENT_ALL); + btn2 = lv_btn_create(par, NULL); + lv_obj_set_event_cb(btn2, event_handler_btn); lv_obj_set_width(btn2, 70); lv_obj_set_height(btn2, 32); lv_obj_set_pos(btn2, 142, 100); - lv_obj_t * label2 = lv_label_create(btn2); + lv_obj_t * label2 = lv_label_create(btn2, NULL); lv_label_set_text(label2, "Goodbye"); } @@ -206,14 +226,14 @@ void setup() { // Display Buffer - lv_disp_draw_buf_init(&disp_buf, buf, NULL, screenWidth * 10); + lv_disp_buf_init(&disp_buf, buf, NULL, LV_HOR_RES_MAX * 10); // Init Display lv_disp_drv_init(&disp_drv); disp_drv.hor_res = 480; disp_drv.ver_res = 320; disp_drv.flush_cb = my_disp_flush; - disp_drv.draw_buf = &disp_buf; + disp_drv.buffer = &disp_buf; lv_disp_drv_register(&disp_drv); // Init Touchscreen