├── C6example ├── assets │ ├── img.png │ ├── ui_font_Font1.bin │ ├── Montserrat-Bold.ttf │ ├── Designbolts-Free-Valentine-Heart-Heart.16.png │ └── ui_font_Font1.fcfg ├── cache │ └── thumb_1842493858img.png ├── backup │ ├── SquareLine_Project_backup00.zip │ ├── SquareLine_Project_backup01.zip │ ├── SquareLine_Project_backup02.zip │ ├── SquareLine_Project_backup03.zip │ ├── SquareLine_Project_backup04.zip │ ├── SquareLine_Project_backup05.zip │ ├── SquareLine_Project_backup06.zip │ ├── SquareLine_Project_backup07.zip │ ├── SquareLine_Project_backup08.zip │ └── SquareLine_Project_backup09.zip ├── autosave │ ├── SquareLine_Project_autosave00.zip │ ├── SquareLine_Project_autosave01.zip │ ├── SquareLine_Project_autosave02.zip │ ├── SquareLine_Project_autosave03.zip │ ├── SquareLine_Project_autosave04.zip │ ├── SquareLine_Project_autosave05.zip │ ├── SquareLine_Project_autosave06.zip │ ├── SquareLine_Project_autosave07.zip │ ├── SquareLine_Project_autosave08.zip │ └── SquareLine_Project_autosave09.zip ├── Themes.slt ├── filelist.txt ├── UI │ ├── filelist.txt │ ├── ui_comp_hook.c │ ├── CMakeLists.txt │ ├── ui_events.h │ ├── ui.h │ ├── ui.c │ ├── ui_img_1699707072.c │ ├── ui_helpers.h │ ├── ui_helpers.c │ └── ui_Screen1.c ├── ui_comp_hook.c ├── CMakeLists.txt ├── RGB_lamp.h ├── ui_events.h ├── LVGL_Driver.h ├── Display_ST7789.h ├── ui.h ├── ui.c ├── C6example.ino ├── LVGL_Driver.cpp ├── RGB_lamp.cpp ├── ui_img_1699707072.c ├── ui_helpers.h ├── Display_ST7789.cpp ├── ui_helpers.c ├── ui_Screen1.c └── SquareLine_Project.sll └── S3Example ├── assets ├── png.monster-411.png ├── Custom-Icon-Design-Pretty-Office-9-Battery-3.16.png └── Custom-Icon-Design-Pretty-Office-9-Battery-3.32.png ├── backup ├── SquareLine_Project_backup00.zip ├── SquareLine_Project_backup01.zip ├── SquareLine_Project_backup02.zip └── SquareLine_Project_backup08.zip ├── cache └── thumb_150522586png.monster-411.png ├── autosave ├── SquareLine_Project_autosave00.zip ├── SquareLine_Project_autosave01.zip ├── SquareLine_Project_autosave02.zip ├── SquareLine_Project_autosave03.zip ├── SquareLine_Project_autosave04.zip ├── SquareLine_Project_autosave05.zip ├── SquareLine_Project_autosave06.zip ├── SquareLine_Project_autosave07.zip ├── SquareLine_Project_autosave08.zip └── SquareLine_Project_autosave09.zip ├── filelist.txt ├── ui_comp_hook.c ├── components └── ui_comp_hook.c ├── CMakeLists.txt ├── RGB_lamp.h ├── ui_events.h ├── LVGL_Driver.h ├── Display_ST7789.h ├── ui.h ├── ui.c ├── LVGL_Driver.cpp ├── RGB_lamp.cpp ├── ui_helpers.h ├── ui_img_1438100199.c ├── S3Example.ino ├── Display_ST7789.cpp ├── ui_helpers.c ├── ui_img_371709059.c └── SquareLine_Project.sll /C6example/assets/img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/assets/img.png -------------------------------------------------------------------------------- /C6example/assets/ui_font_Font1.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/assets/ui_font_Font1.bin -------------------------------------------------------------------------------- /C6example/assets/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/assets/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /S3Example/assets/png.monster-411.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/S3Example/assets/png.monster-411.png -------------------------------------------------------------------------------- /C6example/cache/thumb_1842493858img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/cache/thumb_1842493858img.png -------------------------------------------------------------------------------- /C6example/backup/SquareLine_Project_backup00.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/backup/SquareLine_Project_backup00.zip -------------------------------------------------------------------------------- /C6example/backup/SquareLine_Project_backup01.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/backup/SquareLine_Project_backup01.zip -------------------------------------------------------------------------------- /C6example/backup/SquareLine_Project_backup02.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/backup/SquareLine_Project_backup02.zip -------------------------------------------------------------------------------- /C6example/backup/SquareLine_Project_backup03.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/backup/SquareLine_Project_backup03.zip -------------------------------------------------------------------------------- /C6example/backup/SquareLine_Project_backup04.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/backup/SquareLine_Project_backup04.zip -------------------------------------------------------------------------------- /C6example/backup/SquareLine_Project_backup05.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/backup/SquareLine_Project_backup05.zip -------------------------------------------------------------------------------- /C6example/backup/SquareLine_Project_backup06.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/backup/SquareLine_Project_backup06.zip -------------------------------------------------------------------------------- /C6example/backup/SquareLine_Project_backup07.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/backup/SquareLine_Project_backup07.zip -------------------------------------------------------------------------------- /C6example/backup/SquareLine_Project_backup08.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/backup/SquareLine_Project_backup08.zip -------------------------------------------------------------------------------- /C6example/backup/SquareLine_Project_backup09.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/backup/SquareLine_Project_backup09.zip -------------------------------------------------------------------------------- /S3Example/backup/SquareLine_Project_backup00.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/S3Example/backup/SquareLine_Project_backup00.zip -------------------------------------------------------------------------------- /S3Example/backup/SquareLine_Project_backup01.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/S3Example/backup/SquareLine_Project_backup01.zip -------------------------------------------------------------------------------- /S3Example/backup/SquareLine_Project_backup02.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/S3Example/backup/SquareLine_Project_backup02.zip -------------------------------------------------------------------------------- /S3Example/backup/SquareLine_Project_backup08.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/S3Example/backup/SquareLine_Project_backup08.zip -------------------------------------------------------------------------------- /S3Example/cache/thumb_150522586png.monster-411.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/S3Example/cache/thumb_150522586png.monster-411.png -------------------------------------------------------------------------------- /C6example/autosave/SquareLine_Project_autosave00.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/autosave/SquareLine_Project_autosave00.zip -------------------------------------------------------------------------------- /C6example/autosave/SquareLine_Project_autosave01.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/autosave/SquareLine_Project_autosave01.zip -------------------------------------------------------------------------------- /C6example/autosave/SquareLine_Project_autosave02.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/autosave/SquareLine_Project_autosave02.zip -------------------------------------------------------------------------------- /C6example/autosave/SquareLine_Project_autosave03.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/autosave/SquareLine_Project_autosave03.zip -------------------------------------------------------------------------------- /C6example/autosave/SquareLine_Project_autosave04.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/autosave/SquareLine_Project_autosave04.zip -------------------------------------------------------------------------------- /C6example/autosave/SquareLine_Project_autosave05.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/autosave/SquareLine_Project_autosave05.zip -------------------------------------------------------------------------------- /C6example/autosave/SquareLine_Project_autosave06.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/autosave/SquareLine_Project_autosave06.zip -------------------------------------------------------------------------------- /C6example/autosave/SquareLine_Project_autosave07.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/autosave/SquareLine_Project_autosave07.zip -------------------------------------------------------------------------------- /C6example/autosave/SquareLine_Project_autosave08.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/autosave/SquareLine_Project_autosave08.zip -------------------------------------------------------------------------------- /C6example/autosave/SquareLine_Project_autosave09.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/autosave/SquareLine_Project_autosave09.zip -------------------------------------------------------------------------------- /S3Example/autosave/SquareLine_Project_autosave00.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/S3Example/autosave/SquareLine_Project_autosave00.zip -------------------------------------------------------------------------------- /S3Example/autosave/SquareLine_Project_autosave01.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/S3Example/autosave/SquareLine_Project_autosave01.zip -------------------------------------------------------------------------------- /S3Example/autosave/SquareLine_Project_autosave02.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/S3Example/autosave/SquareLine_Project_autosave02.zip -------------------------------------------------------------------------------- /S3Example/autosave/SquareLine_Project_autosave03.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/S3Example/autosave/SquareLine_Project_autosave03.zip -------------------------------------------------------------------------------- /S3Example/autosave/SquareLine_Project_autosave04.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/S3Example/autosave/SquareLine_Project_autosave04.zip -------------------------------------------------------------------------------- /S3Example/autosave/SquareLine_Project_autosave05.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/S3Example/autosave/SquareLine_Project_autosave05.zip -------------------------------------------------------------------------------- /S3Example/autosave/SquareLine_Project_autosave06.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/S3Example/autosave/SquareLine_Project_autosave06.zip -------------------------------------------------------------------------------- /S3Example/autosave/SquareLine_Project_autosave07.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/S3Example/autosave/SquareLine_Project_autosave07.zip -------------------------------------------------------------------------------- /S3Example/autosave/SquareLine_Project_autosave08.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/S3Example/autosave/SquareLine_Project_autosave08.zip -------------------------------------------------------------------------------- /S3Example/autosave/SquareLine_Project_autosave09.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/S3Example/autosave/SquareLine_Project_autosave09.zip -------------------------------------------------------------------------------- /C6example/Themes.slt: -------------------------------------------------------------------------------- 1 | { 2 | "deftheme": { 3 | "name": "Default", 4 | "properties": [] 5 | }, 6 | "themes": [], 7 | "selected_theme": "Default" 8 | } -------------------------------------------------------------------------------- /C6example/filelist.txt: -------------------------------------------------------------------------------- 1 | ui_Screen1.c 2 | ui.c 3 | ui_comp_hook.c 4 | ui_helpers.c 5 | ui_events.c 6 | ui_img_img_png.c 7 | ui_img_1699707072.c 8 | fonts/ui_font_Font1.c 9 | -------------------------------------------------------------------------------- /S3Example/filelist.txt: -------------------------------------------------------------------------------- 1 | ui_Screen1.c 2 | ui.c 3 | ui_comp_hook.c 4 | ui_helpers.c 5 | ui_events.c 6 | ui_img_150522586.c 7 | ui_img_371709059.c 8 | ui_img_1438100199.c 9 | -------------------------------------------------------------------------------- /C6example/UI/filelist.txt: -------------------------------------------------------------------------------- 1 | ui_Screen1.c 2 | ui.c 3 | ui_comp_hook.c 4 | ui_helpers.c 5 | ui_events.c 6 | ui_img_img_png.c 7 | ui_img_1699707072.c 8 | fonts/ui_font_Font1.c 9 | -------------------------------------------------------------------------------- /C6example/assets/Designbolts-Free-Valentine-Heart-Heart.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/C6example/assets/Designbolts-Free-Valentine-Heart-Heart.16.png -------------------------------------------------------------------------------- /S3Example/assets/Custom-Icon-Design-Pretty-Office-9-Battery-3.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/S3Example/assets/Custom-Icon-Design-Pretty-Office-9-Battery-3.16.png -------------------------------------------------------------------------------- /S3Example/assets/Custom-Icon-Design-Pretty-Office-9-Battery-3.32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VolosR/waveshareBoards/HEAD/S3Example/assets/Custom-Icon-Design-Pretty-Office-9-Battery-3.32.png -------------------------------------------------------------------------------- /C6example/ui_comp_hook.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.4.1 3 | // LVGL version: 8.3.11 4 | // Project name: SquareLine_Project 5 | 6 | -------------------------------------------------------------------------------- /S3Example/ui_comp_hook.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.3.4 3 | // LVGL version: 8.3.6 4 | // Project name: SquareLine_Project 5 | 6 | -------------------------------------------------------------------------------- /C6example/UI/ui_comp_hook.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.4.1 3 | // LVGL version: 8.3.11 4 | // Project name: SquareLine_Project 5 | 6 | -------------------------------------------------------------------------------- /S3Example/components/ui_comp_hook.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.3.4 3 | // LVGL version: 8.3.6 4 | // Project name: SquareLine_Project 5 | 6 | -------------------------------------------------------------------------------- /C6example/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | SET(SOURCES ui_Screen1.c 2 | ui.c 3 | ui_comp_hook.c 4 | ui_helpers.c 5 | ui_events.c 6 | ui_img_img_png.c 7 | ui_img_1699707072.c 8 | fonts/ui_font_Font1.c) 9 | 10 | add_library(ui ${SOURCES}) 11 | -------------------------------------------------------------------------------- /S3Example/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | SET(SOURCES ui_Screen1.c 2 | ui.c 3 | ui_comp_hook.c 4 | ui_helpers.c 5 | ui_events.c 6 | ui_img_150522586.c 7 | ui_img_371709059.c 8 | ui_img_1438100199.c) 9 | 10 | add_library(ui ${SOURCES}) 11 | -------------------------------------------------------------------------------- /C6example/UI/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | SET(SOURCES ui_Screen1.c 2 | ui.c 3 | ui_comp_hook.c 4 | ui_helpers.c 5 | ui_events.c 6 | ui_img_img_png.c 7 | ui_img_1699707072.c 8 | fonts/ui_font_Font1.c) 9 | 10 | add_library(ui ${SOURCES}) 11 | -------------------------------------------------------------------------------- /C6example/RGB_lamp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Arduino.h" 3 | 4 | #define PIN_NEOPIXEL 8 5 | 6 | void Set_Color(uint8_t Red,uint8_t Green,uint8_t Blue); // Set RGB bead color 7 | void RGB_Lamp_Loop(uint16_t Waiting); // The lamp beads change color in cycles -------------------------------------------------------------------------------- /S3Example/RGB_lamp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Arduino.h" 3 | 4 | #define PIN_NEOPIXEL 38 5 | 6 | void Set_Color(uint8_t Red,uint8_t Green,uint8_t Blue); // Set RGB bead color 7 | void RGB_Lamp_Loop(uint16_t Waiting); // The lamp beads change color in cycles -------------------------------------------------------------------------------- /S3Example/ui_events.h: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.3.4 3 | // LVGL version: 8.3.6 4 | // Project name: SquareLine_Project 5 | 6 | #ifndef _UI_EVENTS_H 7 | #define _UI_EVENTS_H 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | #ifdef __cplusplus 14 | } /*extern "C"*/ 15 | #endif 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /C6example/UI/ui_events.h: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.4.1 3 | // LVGL version: 8.3.11 4 | // Project name: SquareLine_Project 5 | 6 | #ifndef _UI_EVENTS_H 7 | #define _UI_EVENTS_H 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | #ifdef __cplusplus 14 | } /*extern "C"*/ 15 | #endif 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /C6example/ui_events.h: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.4.1 3 | // LVGL version: 8.3.11 4 | // Project name: SquareLine_Project 5 | 6 | #ifndef _UI_EVENTS_H 7 | #define _UI_EVENTS_H 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | #ifdef __cplusplus 14 | } /*extern "C"*/ 15 | #endif 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /C6example/assets/ui_font_Font1.fcfg: -------------------------------------------------------------------------------- 1 | { 2 | "codename": "Font1", 3 | "ttf_path": "/assets/Montserrat-Bold.ttf", 4 | "bin_path": "/assets\\ui_font_Font1.bin", 5 | "c_path": "/assets\\ui_font_Font1.c", 6 | "cfg_path": "/assets\\ui_font_Font1.fcfg", 7 | "size": 46, 8 | "bpp": 1, 9 | "letters": 0, 10 | "ranges": [ 11 | "0x20-0x7f" 12 | ], 13 | "symbols": "", 14 | "customparams": "--no-compress --no-prefilter", 15 | "uploaded": false 16 | } -------------------------------------------------------------------------------- /S3Example/LVGL_Driver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include "Display_ST7789.h" 7 | 8 | #define LVGL_WIDTH LCD_WIDTH 9 | #define LVGL_HEIGHT LCD_HEIGHT 10 | #define LVGL_BUF_LEN (LVGL_WIDTH * LVGL_HEIGHT / 20) 11 | 12 | #define EXAMPLE_LVGL_TICK_PERIOD_MS 5 13 | 14 | 15 | void Lvgl_print(const char * buf); 16 | void Lvgl_Display_LCD( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p ); // Displays LVGL content on the LCD. This function implements associating LVGL data to the LCD screen 17 | void Lvgl_Touchpad_Read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data ); // Read the touchpad 18 | void example_increase_lvgl_tick(void *arg); 19 | 20 | void Lvgl_Init(void); 21 | void Timer_Loop(void); 22 | -------------------------------------------------------------------------------- /C6example/LVGL_Driver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include "Display_ST7789.h" 8 | 9 | #define LVGL_WIDTH (LCD_WIDTH ) 10 | #define LVGL_HEIGHT LCD_HEIGHT 11 | #define LVGL_BUF_LEN (LVGL_WIDTH * LVGL_HEIGHT / 20) 12 | 13 | #define EXAMPLE_LVGL_TICK_PERIOD_MS 5 14 | 15 | 16 | void Lvgl_print(const char * buf); 17 | void Lvgl_Display_LCD( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p ); // Displays LVGL content on the LCD. This function implements associating LVGL data to the LCD screen 18 | void Lvgl_Touchpad_Read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data ); // Read the touchpad 19 | void example_increase_lvgl_tick(void *arg); 20 | 21 | void Lvgl_Init(void); 22 | void Timer_Loop(void); 23 | -------------------------------------------------------------------------------- /C6example/Display_ST7789.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #define LCD_WIDTH 320 //LCD width 5 | #define LCD_HEIGHT 172 //LCD height 6 | 7 | #define SPIFreq 80000000 8 | #define EXAMPLE_PIN_NUM_MISO 5 9 | #define EXAMPLE_PIN_NUM_MOSI 6 10 | #define EXAMPLE_PIN_NUM_SCLK 7 11 | #define EXAMPLE_PIN_NUM_LCD_CS 14 12 | #define EXAMPLE_PIN_NUM_LCD_DC 15 13 | #define EXAMPLE_PIN_NUM_LCD_RST 21 14 | #define EXAMPLE_PIN_NUM_BK_LIGHT 22 15 | #define Frequency 1000 16 | #define Resolution 10 17 | 18 | #define VERTICAL 0 19 | #define HORIZONTAL 1 20 | 21 | void LCD_SetCursor(uint16_t x1, uint16_t y1, uint16_t x2,uint16_t y2); 22 | 23 | void LCD_Init(void); 24 | void LCD_SetCursor(uint16_t Xstart, uint16_t Ystart, uint16_t Xend, uint16_t Yend); 25 | void LCD_addWindow(uint16_t Xstart, uint16_t Ystart, uint16_t Xend, uint16_t Yend,uint16_t* color); 26 | 27 | void Backlight_Init(void); 28 | void Set_Backlight(uint8_t Light); 29 | -------------------------------------------------------------------------------- /S3Example/Display_ST7789.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #define LCD_WIDTH 172 //LCD width 5 | #define LCD_HEIGHT 320 //LCD height 6 | 7 | #define SPIFreq 80000000 8 | #define EXAMPLE_PIN_NUM_MISO -1 9 | #define EXAMPLE_PIN_NUM_MOSI 45 10 | #define EXAMPLE_PIN_NUM_SCLK 40 11 | #define EXAMPLE_PIN_NUM_LCD_CS 42 12 | #define EXAMPLE_PIN_NUM_LCD_DC 41 13 | #define EXAMPLE_PIN_NUM_LCD_RST 39 14 | #define EXAMPLE_PIN_NUM_BK_LIGHT 48 15 | #define Frequency 1000 // PWM frequencyconst 16 | #define Resolution 10 17 | 18 | #define VERTICAL 0 19 | #define HORIZONTAL 1 20 | 21 | #define Offset_X 34 22 | #define Offset_Y 0 23 | 24 | 25 | void LCD_SetCursor(uint16_t x1, uint16_t y1, uint16_t x2,uint16_t y2); 26 | 27 | void LCD_Init(void); 28 | void LCD_SetCursor(uint16_t Xstart, uint16_t Ystart, uint16_t Xend, uint16_t Yend); 29 | void LCD_addWindow(uint16_t Xstart, uint16_t Ystart, uint16_t Xend, uint16_t Yend,uint16_t* color); 30 | 31 | void Backlight_Init(void); 32 | void Set_Backlight(uint8_t Light); 33 | -------------------------------------------------------------------------------- /S3Example/ui.h: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.3.4 3 | // LVGL version: 8.3.6 4 | // Project name: SquareLine_Project 5 | 6 | #ifndef _SQUARELINE_PROJECT_UI_H 7 | #define _SQUARELINE_PROJECT_UI_H 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | #if defined __has_include 14 | #if __has_include("lvgl.h") 15 | #include "lvgl.h" 16 | #elif __has_include("lvgl/lvgl.h") 17 | #include "lvgl/lvgl.h" 18 | #else 19 | #include "lvgl.h" 20 | #endif 21 | #else 22 | #include "lvgl.h" 23 | #endif 24 | 25 | #include "ui_helpers.h" 26 | #include "ui_events.h" 27 | // SCREEN: ui_Screen1 28 | void ui_Screen1_screen_init(void); 29 | extern lv_obj_t * ui_Screen1; 30 | extern lv_obj_t * ui_timeLBL; 31 | extern lv_obj_t * ui_Label2; 32 | extern lv_obj_t * ui_Image2; 33 | extern lv_obj_t * ui_Panel2; 34 | extern lv_obj_t * ui_Label4; 35 | extern lv_obj_t * ui_humLBL; 36 | extern lv_obj_t * ui_Spinner1; 37 | extern lv_obj_t * ui_updLBL; 38 | extern lv_obj_t * ui_Label6; 39 | extern lv_obj_t * ui_Panel3; 40 | extern lv_obj_t * ui_Panel4; 41 | extern lv_obj_t * ui_batLBL; 42 | extern lv_obj_t * ui_Label1; 43 | extern lv_obj_t * ui_tmpLBL; 44 | extern lv_obj_t * ui_Image4; 45 | extern lv_obj_t * ui_Label10; 46 | extern lv_obj_t * ui_Label11; 47 | extern lv_obj_t * ui_Label12; 48 | extern lv_obj_t * ui_Label3; 49 | extern lv_obj_t * ui_Panel1; 50 | extern lv_obj_t * ui____initial_actions0; 51 | 52 | LV_IMG_DECLARE(ui_img_150522586); // assets\png.monster-411.png 53 | LV_IMG_DECLARE(ui_img_371709059); // assets\Custom-Icon-Design-Pretty-Office-9-Battery-3.32.png 54 | LV_IMG_DECLARE(ui_img_1438100199); // assets\Custom-Icon-Design-Pretty-Office-9-Battery-3.16.png 55 | 56 | 57 | 58 | void ui_init(void); 59 | 60 | #ifdef __cplusplus 61 | } /*extern "C"*/ 62 | #endif 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /S3Example/ui.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.3.4 3 | // LVGL version: 8.3.6 4 | // Project name: SquareLine_Project 5 | 6 | #include "ui.h" 7 | #include "ui_helpers.h" 8 | 9 | ///////////////////// VARIABLES //////////////////// 10 | 11 | 12 | // SCREEN: ui_Screen1 13 | void ui_Screen1_screen_init(void); 14 | lv_obj_t * ui_Screen1; 15 | lv_obj_t * ui_timeLBL; 16 | lv_obj_t * ui_Label2; 17 | lv_obj_t * ui_Image2; 18 | lv_obj_t * ui_Panel2; 19 | lv_obj_t * ui_Label4; 20 | lv_obj_t * ui_humLBL; 21 | lv_obj_t * ui_Spinner1; 22 | lv_obj_t * ui_updLBL; 23 | lv_obj_t * ui_Label6; 24 | lv_obj_t * ui_Panel3; 25 | lv_obj_t * ui_Panel4; 26 | lv_obj_t * ui_batLBL; 27 | lv_obj_t * ui_Label1; 28 | lv_obj_t * ui_tmpLBL; 29 | lv_obj_t * ui_Image4; 30 | lv_obj_t * ui_Label10; 31 | lv_obj_t * ui_Label11; 32 | lv_obj_t * ui_Label12; 33 | lv_obj_t * ui_Label3; 34 | lv_obj_t * ui_Panel1; 35 | lv_obj_t * ui____initial_actions0; 36 | const lv_img_dsc_t * ui_imgset_478361836[1] = {&ui_img_150522586}; 37 | const lv_img_dsc_t * ui_imgset_1221102902[1] = {&ui_img_1438100199}; 38 | const lv_img_dsc_t * ui_imgset_214559249[1] = {&ui_img_371709059}; 39 | 40 | ///////////////////// TEST LVGL SETTINGS //////////////////// 41 | #if LV_COLOR_DEPTH != 16 42 | #error "LV_COLOR_DEPTH should be 16bit to match SquareLine Studio's settings" 43 | #endif 44 | #if LV_COLOR_16_SWAP !=0 45 | #error "LV_COLOR_16_SWAP should be 0 to match SquareLine Studio's settings" 46 | #endif 47 | 48 | ///////////////////// ANIMATIONS //////////////////// 49 | 50 | ///////////////////// FUNCTIONS //////////////////// 51 | 52 | ///////////////////// SCREENS //////////////////// 53 | 54 | void ui_init(void) 55 | { 56 | lv_disp_t * dispp = lv_disp_get_default(); 57 | lv_theme_t * theme = lv_theme_default_init(dispp, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_RED), 58 | true, LV_FONT_DEFAULT); 59 | lv_disp_set_theme(dispp, theme); 60 | ui_Screen1_screen_init(); 61 | ui____initial_actions0 = lv_obj_create(NULL); 62 | lv_disp_load_scr(ui_Screen1); 63 | } 64 | -------------------------------------------------------------------------------- /C6example/UI/ui.h: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.4.1 3 | // LVGL version: 8.3.11 4 | // Project name: SquareLine_Project 5 | 6 | #ifndef _SQUARELINE_PROJECT_UI_H 7 | #define _SQUARELINE_PROJECT_UI_H 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | #if defined __has_include 14 | #if __has_include("lvgl.h") 15 | #include "lvgl.h" 16 | #elif __has_include("lvgl/lvgl.h") 17 | #include "lvgl/lvgl.h" 18 | #else 19 | #include "lvgl.h" 20 | #endif 21 | #else 22 | #include "lvgl.h" 23 | #endif 24 | 25 | #include "ui_helpers.h" 26 | #include "ui_events.h" 27 | 28 | // SCREEN: ui_Screen1 29 | void ui_Screen1_screen_init(void); 30 | extern lv_obj_t *ui_Screen1; 31 | extern lv_obj_t *ui_Spinner2; 32 | extern lv_obj_t *ui_timeLBL; 33 | extern lv_obj_t *ui_dateLBL; 34 | extern lv_obj_t *ui_Image2; 35 | extern lv_obj_t *ui_secLBL; 36 | extern lv_obj_t *ui_Panel2; 37 | extern lv_obj_t *ui_Panel3; 38 | extern lv_obj_t *ui_Label5; 39 | extern lv_obj_t *ui_Panel1; 40 | extern lv_obj_t *ui_Label6; 41 | extern lv_obj_t *ui_Panel4; 42 | extern lv_obj_t *ui_Label7; 43 | extern lv_obj_t *ui_Panel5; 44 | extern lv_obj_t *ui_Label8; 45 | extern lv_obj_t *ui_ioLBL; 46 | extern lv_obj_t *ui_Label10; 47 | extern lv_obj_t *ui_Panel7; 48 | extern lv_obj_t *ui_Label11; 49 | extern lv_obj_t *ui_Panel8; 50 | extern lv_obj_t *ui_Label12; 51 | extern lv_obj_t *ui_Panel9; 52 | extern lv_obj_t *ui_Label13; 53 | extern lv_obj_t *ui_Panel6; 54 | extern lv_obj_t *ui_Label14; 55 | extern lv_obj_t *ui_Panel10; 56 | extern lv_obj_t *ui_Label4; 57 | extern lv_obj_t *ui_yearLBL; 58 | extern lv_obj_t *ui_dayPNL; 59 | extern lv_obj_t *ui_Panel11; 60 | extern lv_obj_t *ui_Label1; 61 | extern lv_obj_t *ui_Image1; 62 | extern lv_obj_t *ui_secHEX; 63 | extern lv_obj_t *ui____initial_actions0; 64 | 65 | 66 | LV_IMG_DECLARE( ui_img_img_png); // assets/img.png 67 | LV_IMG_DECLARE( ui_img_1699707072); // assets/Designbolts-Free-Valentine-Heart-Heart.16.png 68 | 69 | 70 | LV_FONT_DECLARE( ui_font_Font1); 71 | 72 | 73 | void ui_init(void); 74 | 75 | #ifdef __cplusplus 76 | } /*extern "C"*/ 77 | #endif 78 | 79 | #endif 80 | -------------------------------------------------------------------------------- /C6example/ui.h: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.4.1 3 | // LVGL version: 8.3.11 4 | // Project name: SquareLine_Project 5 | 6 | #ifndef _SQUARELINE_PROJECT_UI_H 7 | #define _SQUARELINE_PROJECT_UI_H 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | #if defined __has_include 14 | #if __has_include("lvgl.h") 15 | #include "lvgl.h" 16 | #elif __has_include("lvgl/lvgl.h") 17 | #include "lvgl/lvgl.h" 18 | #else 19 | #include "lvgl.h" 20 | #endif 21 | #else 22 | #include "lvgl.h" 23 | #endif 24 | 25 | #include "ui_helpers.h" 26 | #include "ui_events.h" 27 | 28 | // SCREEN: ui_Screen1 29 | void ui_Screen1_screen_init(void); 30 | extern lv_obj_t *ui_Screen1; 31 | extern lv_obj_t *ui_Spinner2; 32 | extern lv_obj_t *ui_timeLBL; 33 | extern lv_obj_t *ui_dateLBL; 34 | extern lv_obj_t *ui_Image2; 35 | extern lv_obj_t *ui_secLBL; 36 | extern lv_obj_t *ui_Panel2; 37 | extern lv_obj_t *ui_Panel3; 38 | extern lv_obj_t *ui_Label5; 39 | extern lv_obj_t *ui_Panel1; 40 | extern lv_obj_t *ui_Label6; 41 | extern lv_obj_t *ui_Panel4; 42 | extern lv_obj_t *ui_Label7; 43 | extern lv_obj_t *ui_Panel5; 44 | extern lv_obj_t *ui_Label8; 45 | extern lv_obj_t *ui_ioLBL; 46 | extern lv_obj_t *ui_Label10; 47 | extern lv_obj_t *ui_Panel7; 48 | extern lv_obj_t *ui_Label11; 49 | extern lv_obj_t *ui_Panel8; 50 | extern lv_obj_t *ui_Label12; 51 | extern lv_obj_t *ui_Panel9; 52 | extern lv_obj_t *ui_Label13; 53 | extern lv_obj_t *ui_Panel6; 54 | extern lv_obj_t *ui_Label14; 55 | extern lv_obj_t *ui_Panel10; 56 | extern lv_obj_t *ui_Label4; 57 | extern lv_obj_t *ui_yearLBL; 58 | extern lv_obj_t *ui_dayPNL; 59 | extern lv_obj_t *ui_Panel11; 60 | extern lv_obj_t *ui_Label1; 61 | extern lv_obj_t *ui_Image1; 62 | extern lv_obj_t *ui_secHEX; 63 | extern lv_obj_t *ui____initial_actions0; 64 | 65 | 66 | LV_IMG_DECLARE( ui_img_img_png); // assets/img.png 67 | LV_IMG_DECLARE( ui_img_1699707072); // assets/Designbolts-Free-Valentine-Heart-Heart.16.png 68 | 69 | 70 | LV_FONT_DECLARE( ui_font_Font1); 71 | 72 | 73 | void ui_init(void); 74 | 75 | #ifdef __cplusplus 76 | } /*extern "C"*/ 77 | #endif 78 | 79 | #endif 80 | -------------------------------------------------------------------------------- /C6example/UI/ui.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.4.1 3 | // LVGL version: 8.3.11 4 | // Project name: SquareLine_Project 5 | 6 | #include "ui.h" 7 | #include "ui_helpers.h" 8 | 9 | ///////////////////// VARIABLES //////////////////// 10 | 11 | 12 | // SCREEN: ui_Screen1 13 | void ui_Screen1_screen_init(void); 14 | lv_obj_t *ui_Screen1; 15 | lv_obj_t *ui_Spinner2; 16 | lv_obj_t *ui_timeLBL; 17 | lv_obj_t *ui_dateLBL; 18 | lv_obj_t *ui_Image2; 19 | lv_obj_t *ui_secLBL; 20 | lv_obj_t *ui_Panel2; 21 | lv_obj_t *ui_Panel3; 22 | lv_obj_t *ui_Label5; 23 | lv_obj_t *ui_Panel1; 24 | lv_obj_t *ui_Label6; 25 | lv_obj_t *ui_Panel4; 26 | lv_obj_t *ui_Label7; 27 | lv_obj_t *ui_Panel5; 28 | lv_obj_t *ui_Label8; 29 | lv_obj_t *ui_ioLBL; 30 | lv_obj_t *ui_Label10; 31 | lv_obj_t *ui_Panel7; 32 | lv_obj_t *ui_Label11; 33 | lv_obj_t *ui_Panel8; 34 | lv_obj_t *ui_Label12; 35 | lv_obj_t *ui_Panel9; 36 | lv_obj_t *ui_Label13; 37 | lv_obj_t *ui_Panel6; 38 | lv_obj_t *ui_Label14; 39 | lv_obj_t *ui_Panel10; 40 | lv_obj_t *ui_Label4; 41 | lv_obj_t *ui_yearLBL; 42 | lv_obj_t *ui_dayPNL; 43 | lv_obj_t *ui_Panel11; 44 | lv_obj_t *ui_Label1; 45 | lv_obj_t *ui_Image1; 46 | lv_obj_t *ui_secHEX; 47 | lv_obj_t *ui____initial_actions0; 48 | const lv_img_dsc_t *ui_imgset_47770348[1] = {&ui_img_1699707072}; 49 | 50 | ///////////////////// TEST LVGL SETTINGS //////////////////// 51 | #if LV_COLOR_DEPTH != 16 52 | #error "LV_COLOR_DEPTH should be 16bit to match SquareLine Studio's settings" 53 | #endif 54 | #if LV_COLOR_16_SWAP !=0 55 | #error "LV_COLOR_16_SWAP should be 0 to match SquareLine Studio's settings" 56 | #endif 57 | 58 | ///////////////////// ANIMATIONS //////////////////// 59 | 60 | ///////////////////// FUNCTIONS //////////////////// 61 | 62 | ///////////////////// SCREENS //////////////////// 63 | 64 | void ui_init( void ) 65 | { 66 | lv_disp_t *dispp = lv_disp_get_default(); 67 | lv_theme_t *theme = lv_theme_default_init(dispp, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_RED), true, LV_FONT_DEFAULT); 68 | lv_disp_set_theme(dispp, theme); 69 | ui_Screen1_screen_init(); 70 | ui____initial_actions0 = lv_obj_create(NULL); 71 | lv_disp_load_scr( ui_Screen1); 72 | } 73 | -------------------------------------------------------------------------------- /C6example/ui.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.4.1 3 | // LVGL version: 8.3.11 4 | // Project name: SquareLine_Project 5 | 6 | #include "ui.h" 7 | #include "ui_helpers.h" 8 | 9 | ///////////////////// VARIABLES //////////////////// 10 | 11 | 12 | // SCREEN: ui_Screen1 13 | void ui_Screen1_screen_init(void); 14 | lv_obj_t *ui_Screen1; 15 | lv_obj_t *ui_Spinner2; 16 | lv_obj_t *ui_timeLBL; 17 | lv_obj_t *ui_dateLBL; 18 | lv_obj_t *ui_Image2; 19 | lv_obj_t *ui_secLBL; 20 | lv_obj_t *ui_Panel2; 21 | lv_obj_t *ui_Panel3; 22 | lv_obj_t *ui_Label5; 23 | lv_obj_t *ui_Panel1; 24 | lv_obj_t *ui_Label6; 25 | lv_obj_t *ui_Panel4; 26 | lv_obj_t *ui_Label7; 27 | lv_obj_t *ui_Panel5; 28 | lv_obj_t *ui_Label8; 29 | lv_obj_t *ui_ioLBL; 30 | lv_obj_t *ui_Label10; 31 | lv_obj_t *ui_Panel7; 32 | lv_obj_t *ui_Label11; 33 | lv_obj_t *ui_Panel8; 34 | lv_obj_t *ui_Label12; 35 | lv_obj_t *ui_Panel9; 36 | lv_obj_t *ui_Label13; 37 | lv_obj_t *ui_Panel6; 38 | lv_obj_t *ui_Label14; 39 | lv_obj_t *ui_Panel10; 40 | lv_obj_t *ui_Label4; 41 | lv_obj_t *ui_yearLBL; 42 | lv_obj_t *ui_dayPNL; 43 | lv_obj_t *ui_Panel11; 44 | lv_obj_t *ui_Label1; 45 | lv_obj_t *ui_Image1; 46 | lv_obj_t *ui_secHEX; 47 | lv_obj_t *ui____initial_actions0; 48 | const lv_img_dsc_t *ui_imgset_47770348[1] = {&ui_img_1699707072}; 49 | 50 | ///////////////////// TEST LVGL SETTINGS //////////////////// 51 | #if LV_COLOR_DEPTH != 16 52 | #error "LV_COLOR_DEPTH should be 16bit to match SquareLine Studio's settings" 53 | #endif 54 | #if LV_COLOR_16_SWAP !=0 55 | #error "LV_COLOR_16_SWAP should be 0 to match SquareLine Studio's settings" 56 | #endif 57 | 58 | ///////////////////// ANIMATIONS //////////////////// 59 | 60 | ///////////////////// FUNCTIONS //////////////////// 61 | 62 | ///////////////////// SCREENS //////////////////// 63 | 64 | void ui_init( void ) 65 | { 66 | lv_disp_t *dispp = lv_disp_get_default(); 67 | lv_theme_t *theme = lv_theme_default_init(dispp, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_RED), true, LV_FONT_DEFAULT); 68 | lv_disp_set_theme(dispp, theme); 69 | ui_Screen1_screen_init(); 70 | ui____initial_actions0 = lv_obj_create(NULL); 71 | lv_disp_load_scr( ui_Screen1); 72 | } 73 | -------------------------------------------------------------------------------- /C6example/C6example.ino: -------------------------------------------------------------------------------- 1 | #include "Display_ST7789.h" 2 | #include "LVGL_Driver.h" 3 | #include "RGB_lamp.h" 4 | #include "ui.h" 5 | 6 | #include // https://github.com/fbiego/ESP32Time 7 | #include 8 | 9 | String months[] = { 10 | "January", "February", "March", "April", "May", "June", 11 | "July", "August", "September", "October", "November", "December" 12 | }; 13 | 14 | int pos[7]={69,-69,-46, -23,0,23,46}; 15 | 16 | ESP32Time rtc(0); 17 | int zone=1; 18 | const char* ntpServer = "pool.ntp.org"; 19 | String ssid = "xxxxx"; 20 | String password = "xxxxxx"; 21 | 22 | int last_second=0; 23 | String dateString=""; 24 | int angle=0; 25 | 26 | int n=0; 27 | 28 | void connectWifi() 29 | { 30 | WiFi.begin(ssid, password); 31 | while (WiFi.status() != WL_CONNECTED) { 32 | delay(1000); 33 | Serial.println("Can't connect to wifi!"); 34 | } 35 | Serial.println("conected"); 36 | } 37 | 38 | void setTime() 39 | { 40 | configTime(3600*zone, 0, ntpServer); 41 | struct tm timeinfo; 42 | if (getLocalTime(&timeinfo)){ 43 | rtc.setTimeStruct(timeinfo); 44 | } 45 | } 46 | 47 | 48 | void setup() 49 | { 50 | Serial.begin(115200); 51 | LCD_Init(); 52 | Lvgl_Init(); 53 | Set_Backlight(10); 54 | Set_Color(200, 200, 2); 55 | ui_init(); 56 | 57 | connectWifi(); 58 | setTime(); 59 | 60 | } 61 | 62 | void loop() 63 | { 64 | lv_task_handler(); 65 | delay(5); 66 | 67 | 68 | 69 | 70 | if(rtc.getSecond()!=last_second) 71 | { 72 | last_second=rtc.getSecond(); 73 | _ui_label_set_property(ui_timeLBL, _UI_LABEL_PROPERTY_TEXT, rtc.getTime().substring(0,5).c_str()); 74 | _ui_label_set_property(ui_secLBL, _UI_LABEL_PROPERTY_TEXT, rtc.getTime().substring(6,8).c_str()); 75 | _ui_label_set_property(ui_yearLBL, _UI_LABEL_PROPERTY_TEXT, String(rtc.getYear()).c_str()); 76 | dateString=months[rtc.getMonth()]+" "+String(rtc.getDay()); 77 | _ui_label_set_property(ui_dateLBL, _UI_LABEL_PROPERTY_TEXT, dateString.c_str()); 78 | Serial.println(rtc.getDayofWeek()); 79 | _ui_label_set_property(ui_secHEX, _UI_LABEL_PROPERTY_TEXT, String(n).c_str()); 80 | lv_obj_set_pos(ui_dayPNL, 121, pos[rtc.getDayofWeek()]); 81 | 82 | n++; 83 | if(n==7200) 84 | { 85 | n=0; 86 | setTime(); 87 | } 88 | } 89 | 90 | // Increment the angle 91 | angle=angle+10; 92 | if (angle >= 3600) angle = 0; // Reset angle (in LVGL, angle is in tenths of degrees) 93 | 94 | // Set the new angle 95 | lv_img_set_angle(ui_Image2, angle); 96 | RGB_Lamp_Loop(3); 97 | } 98 | -------------------------------------------------------------------------------- /C6example/LVGL_Driver.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | | File : LVGL_Driver.c 3 | 4 | | help : 5 | The provided LVGL library file must be installed first 6 | ******************************************************************************/ 7 | #include "LVGL_Driver.h" 8 | 9 | static lv_disp_draw_buf_t draw_buf; 10 | static lv_color_t buf1[ LVGL_BUF_LEN ]; 11 | static lv_color_t buf2[ LVGL_BUF_LEN ]; 12 | // static lv_color_t* buf1 = (lv_color_t*) heap_caps_malloc(LVGL_BUF_LEN, MALLOC_CAP_SPIRAM); 13 | // static lv_color_t* buf2 = (lv_color_t*) heap_caps_malloc(LVGL_BUF_LEN, MALLOC_CAP_SPIRAM); 14 | 15 | 16 | 17 | /* Serial debugging */ 18 | void Lvgl_print(const char * buf) 19 | { 20 | // Serial.printf(buf); 21 | // Serial.flush(); 22 | } 23 | 24 | /* Display flushing 25 | Displays LVGL content on the LCD 26 | This function implements associating LVGL data to the LCD screen 27 | */ 28 | void Lvgl_Display_LCD( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p ) 29 | { 30 | LCD_addWindow(area->x1, area->y1, area->x2, area->y2, ( uint16_t *)&color_p->full); 31 | lv_disp_flush_ready( disp_drv ); 32 | } 33 | /*Read the touchpad*/ 34 | void Lvgl_Touchpad_Read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data ) 35 | { 36 | // NULL 37 | } 38 | void example_increase_lvgl_tick(void *arg) 39 | { 40 | /* Tell LVGL how many milliseconds has elapsed */ 41 | lv_tick_inc(EXAMPLE_LVGL_TICK_PERIOD_MS); 42 | } 43 | void Lvgl_Init(void) 44 | { 45 | lv_init(); 46 | lv_disp_draw_buf_init( &draw_buf, buf1, buf2, LVGL_BUF_LEN); 47 | 48 | /*Initialize the display*/ 49 | static lv_disp_drv_t disp_drv; 50 | lv_disp_drv_init( &disp_drv ); 51 | /*Change the following line to your display resolution*/ 52 | disp_drv.hor_res = LVGL_WIDTH; 53 | disp_drv.ver_res = LVGL_HEIGHT; 54 | disp_drv.flush_cb = Lvgl_Display_LCD; 55 | disp_drv.full_refresh = 1; /**< 1: Always make the whole screen redrawn*/ 56 | disp_drv.draw_buf = &draw_buf; 57 | lv_disp_drv_register( &disp_drv ); 58 | 59 | /*Initialize the (dummy) input device driver*/ 60 | static lv_indev_drv_t indev_drv; 61 | lv_indev_drv_init( &indev_drv ); 62 | indev_drv.type = LV_INDEV_TYPE_POINTER; 63 | indev_drv.read_cb = Lvgl_Touchpad_Read; 64 | lv_indev_drv_register( &indev_drv ); 65 | 66 | /* Create simple label */ 67 | lv_obj_t *label = lv_label_create( lv_scr_act() ); 68 | lv_label_set_text( label, "Hello Ardino and LVGL!"); 69 | lv_obj_align( label, LV_ALIGN_CENTER, 0, 0 ); 70 | 71 | const esp_timer_create_args_t lvgl_tick_timer_args = { 72 | .callback = &example_increase_lvgl_tick, 73 | .name = "lvgl_tick" 74 | }; 75 | esp_timer_handle_t lvgl_tick_timer = NULL; 76 | esp_timer_create(&lvgl_tick_timer_args, &lvgl_tick_timer); 77 | esp_timer_start_periodic(lvgl_tick_timer, EXAMPLE_LVGL_TICK_PERIOD_MS * 1000); 78 | 79 | } 80 | void Timer_Loop(void) 81 | { 82 | lv_timer_handler(); /* let the GUI do its work */ 83 | // delay( 5 ); 84 | } -------------------------------------------------------------------------------- /S3Example/LVGL_Driver.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | | File : LVGL_Driver.c 3 | 4 | | help : 5 | The provided LVGL library file must be installed first 6 | ******************************************************************************/ 7 | #include "LVGL_Driver.h" 8 | 9 | static lv_disp_draw_buf_t draw_buf; 10 | static lv_color_t buf1[ LVGL_BUF_LEN ]; 11 | static lv_color_t buf2[ LVGL_BUF_LEN ]; 12 | // static lv_color_t* buf1 = (lv_color_t*) heap_caps_malloc(LVGL_BUF_LEN, MALLOC_CAP_SPIRAM); 13 | // static lv_color_t* buf2 = (lv_color_t*) heap_caps_malloc(LVGL_BUF_LEN, MALLOC_CAP_SPIRAM); 14 | 15 | 16 | 17 | /* Serial debugging */ 18 | void Lvgl_print(const char * buf) 19 | { 20 | // Serial.printf(buf); 21 | // Serial.flush(); 22 | } 23 | 24 | /* Display flushing 25 | Displays LVGL content on the LCD 26 | This function implements associating LVGL data to the LCD screen 27 | */ 28 | void Lvgl_Display_LCD( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p ) 29 | { 30 | LCD_addWindow(area->x1, area->y1, area->x2, area->y2, ( uint16_t *)&color_p->full); 31 | lv_disp_flush_ready( disp_drv ); 32 | } 33 | /*Read the touchpad*/ 34 | void Lvgl_Touchpad_Read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data ) 35 | { 36 | // NULL 37 | } 38 | void example_increase_lvgl_tick(void *arg) 39 | { 40 | /* Tell LVGL how many milliseconds has elapsed */ 41 | lv_tick_inc(EXAMPLE_LVGL_TICK_PERIOD_MS); 42 | } 43 | void Lvgl_Init(void) 44 | { 45 | lv_init(); 46 | lv_disp_draw_buf_init( &draw_buf, buf1, buf2, LVGL_BUF_LEN); 47 | 48 | /*Initialize the display*/ 49 | static lv_disp_drv_t disp_drv; 50 | lv_disp_drv_init( &disp_drv ); 51 | /*Change the following line to your display resolution*/ 52 | disp_drv.hor_res = LVGL_WIDTH; 53 | disp_drv.ver_res = LVGL_HEIGHT; 54 | disp_drv.flush_cb = Lvgl_Display_LCD; 55 | disp_drv.full_refresh = 1; /**< 1: Always make the whole screen redrawn*/ 56 | disp_drv.draw_buf = &draw_buf; 57 | lv_disp_drv_register( &disp_drv ); 58 | 59 | /*Initialize the (dummy) input device driver*/ 60 | static lv_indev_drv_t indev_drv; 61 | lv_indev_drv_init( &indev_drv ); 62 | indev_drv.type = LV_INDEV_TYPE_POINTER; 63 | indev_drv.read_cb = Lvgl_Touchpad_Read; 64 | lv_indev_drv_register( &indev_drv ); 65 | 66 | /* Create simple label */ 67 | lv_obj_t *label = lv_label_create( lv_scr_act() ); 68 | lv_label_set_text( label, "Hello Ardino and LVGL!"); 69 | lv_obj_align( label, LV_ALIGN_CENTER, 0, 0 ); 70 | 71 | const esp_timer_create_args_t lvgl_tick_timer_args = { 72 | .callback = &example_increase_lvgl_tick, 73 | .name = "lvgl_tick" 74 | }; 75 | esp_timer_handle_t lvgl_tick_timer = NULL; 76 | esp_timer_create(&lvgl_tick_timer_args, &lvgl_tick_timer); 77 | esp_timer_start_periodic(lvgl_tick_timer, EXAMPLE_LVGL_TICK_PERIOD_MS * 1000); 78 | 79 | } 80 | void Timer_Loop(void) 81 | { 82 | lv_timer_handler(); /* let the GUI do its work */ 83 | // delay( 5 ); 84 | } -------------------------------------------------------------------------------- /C6example/RGB_lamp.cpp: -------------------------------------------------------------------------------- 1 | #include "RGB_lamp.h" 2 | 3 | uint16_t Time = 0; 4 | uint16_t Number = 0; 5 | uint8_t RGB_Data[192][3] = { 6 | {64, 1, 0}, {63, 2, 0}, {62, 3, 0}, {61, 4, 0}, {60, 5, 0}, {59, 6, 0}, {58, 7, 0}, {57, 8, 0}, 7 | {56, 9, 0}, {55, 10, 0}, {54, 11, 0}, {53, 12, 0}, {52, 13, 0}, {51, 14, 0}, {50, 15, 0}, {49, 16, 0}, 8 | {48, 17, 0}, {47, 18, 0}, {46, 19, 0}, {45, 20, 0}, {44, 21, 0}, {43, 22, 0}, {42, 23, 0}, {41, 24, 0}, 9 | {40, 25, 0}, {39, 26, 0}, {38, 27, 0}, {37, 28, 0}, {36, 29, 0}, {35, 30, 0}, {34, 31, 0}, {33, 32, 0}, 10 | {32, 33, 0}, {31, 34, 0}, {30, 35, 0}, {29, 36, 0}, {28, 37, 0}, {27, 38, 0}, {26, 39, 0}, {25, 40, 0}, 11 | {24, 41, 0}, {23, 42, 0}, {22, 43, 0}, {21, 44, 0}, {20, 45, 0}, {19, 46, 0}, {18, 47, 0}, {17, 48, 0}, 12 | {16, 49, 0}, {15, 50, 0}, {14, 51, 0}, {13, 52, 0}, {12, 53, 0}, {11, 54, 0}, {10, 55, 0}, {9, 56, 0}, 13 | {8, 57, 0}, {7, 58, 0}, {6, 59, 0}, {5, 60, 0}, {4, 61, 0}, {3, 62, 0}, {2, 63, 0}, {1, 64, 0}, 14 | 15 | {0, 64, 1}, {0, 63, 2}, {0, 62, 3}, {0, 61, 4}, {0, 60, 5}, {0, 59, 6}, {0, 58, 7}, {0, 57, 8}, 16 | {0, 56, 9}, {0, 55, 10}, {0, 54, 11}, {0, 53, 12}, {0, 52, 13}, {0, 51, 14}, {0, 50, 15}, {0, 49, 16}, 17 | {0, 48, 17}, {0, 47, 18}, {0, 46, 19}, {0, 45, 20}, {0, 44, 21}, {0, 43, 22}, {0, 42, 23}, {0, 41, 24}, 18 | {0, 40, 25}, {0, 39, 26}, {0, 38, 27}, {0, 37, 28}, {0, 36, 29}, {0, 35, 30}, {0, 34, 31}, {0, 33, 32}, 19 | {0, 32, 33}, {0, 31, 34}, {0, 30, 35}, {0, 29, 36}, {0, 28, 37}, {0, 27, 38}, {0, 26, 39}, {0, 25, 40}, 20 | {0, 24, 41}, {0, 23, 42}, {0, 22, 43}, {0, 21, 44}, {0, 20, 45}, {0, 19, 46}, {0, 18, 47}, {0, 17, 48}, 21 | {0, 16, 49}, {0, 15, 50}, {0, 14, 51}, {0, 13, 52}, {0, 12, 53}, {0, 11, 54}, {0, 10, 55}, {0, 9, 56}, 22 | {0, 8, 57}, {0, 7, 58}, {0, 6, 59}, {0, 5, 60}, {0, 4, 61}, {0, 3, 62}, {0, 2, 63}, {0, 1, 64}, 23 | 24 | {1, 0, 64}, {2, 0, 63}, {3, 0, 62}, {4, 0, 61}, {5, 0, 60}, {6, 0, 59}, {7, 0, 58}, {8, 0, 57}, 25 | {9, 0, 56}, {10, 0, 55}, {11, 0, 54}, {12, 0, 53}, {13, 0, 52}, {14, 0, 51}, {15, 0, 50}, {16, 0, 49}, 26 | {17, 0, 48}, {18, 0, 47}, {19, 0, 46}, {20, 0, 45}, {21, 0, 44}, {22, 0, 43}, {23, 0, 42}, {24, 0, 41}, 27 | {25, 0, 40}, {26, 0, 39}, {27, 0, 38}, {28, 0, 37}, {29, 0, 36}, {30, 0, 35}, {31, 0, 34}, {32, 0, 33}, 28 | {33, 0, 32}, {34, 0, 31}, {35, 0, 30}, {36, 0, 29}, {37, 0, 28}, {38, 0, 27}, {39, 0, 26}, {40, 0, 25}, 29 | {41, 0, 24}, {42, 0, 23}, {43, 0, 22}, {44, 0, 21}, {45, 0, 20}, {46, 0, 19}, {47, 0, 18}, {48, 0, 17}, 30 | {49, 0, 16}, {50, 0, 15}, {51, 0, 14}, {52, 0, 13}, {53, 0, 12}, {54, 0, 11}, {55, 0, 10}, {56, 0, 9}, 31 | {57, 0, 8}, {58, 0, 7}, {59, 0, 6}, {60, 0, 5}, {61, 0, 4}, {62, 0, 3}, {63, 0, 2}, {64, 0, 1} 32 | }; 33 | // data range -> Red:0~255 Green:0~255 Blue:0~255 34 | void Set_Color(uint8_t Red,uint8_t Green,uint8_t Blue) // Set RGB bead color 35 | { 36 | neopixelWrite(PIN_NEOPIXEL, Red, Green, Blue); 37 | } 38 | void RGB_Lamp_Loop(uint16_t Waiting) 39 | { 40 | Time++; 41 | if(Time == Waiting){ 42 | Time = 0; 43 | Number++; 44 | if(Number == 192) 45 | Number = 0; 46 | Set_Color( RGB_Data[Number][0]*3, RGB_Data[Number][1]*3, RGB_Data[Number][2]*3); // Color 47 | } 48 | } -------------------------------------------------------------------------------- /S3Example/RGB_lamp.cpp: -------------------------------------------------------------------------------- 1 | #include "RGB_lamp.h" 2 | 3 | uint16_t Time = 0; 4 | uint16_t Number = 0; 5 | uint8_t RGB_Data[192][3] = { 6 | {64, 1, 0}, {63, 2, 0}, {62, 3, 0}, {61, 4, 0}, {60, 5, 0}, {59, 6, 0}, {58, 7, 0}, {57, 8, 0}, 7 | {56, 9, 0}, {55, 10, 0}, {54, 11, 0}, {53, 12, 0}, {52, 13, 0}, {51, 14, 0}, {50, 15, 0}, {49, 16, 0}, 8 | {48, 17, 0}, {47, 18, 0}, {46, 19, 0}, {45, 20, 0}, {44, 21, 0}, {43, 22, 0}, {42, 23, 0}, {41, 24, 0}, 9 | {40, 25, 0}, {39, 26, 0}, {38, 27, 0}, {37, 28, 0}, {36, 29, 0}, {35, 30, 0}, {34, 31, 0}, {33, 32, 0}, 10 | {32, 33, 0}, {31, 34, 0}, {30, 35, 0}, {29, 36, 0}, {28, 37, 0}, {27, 38, 0}, {26, 39, 0}, {25, 40, 0}, 11 | {24, 41, 0}, {23, 42, 0}, {22, 43, 0}, {21, 44, 0}, {20, 45, 0}, {19, 46, 0}, {18, 47, 0}, {17, 48, 0}, 12 | {16, 49, 0}, {15, 50, 0}, {14, 51, 0}, {13, 52, 0}, {12, 53, 0}, {11, 54, 0}, {10, 55, 0}, {9, 56, 0}, 13 | {8, 57, 0}, {7, 58, 0}, {6, 59, 0}, {5, 60, 0}, {4, 61, 0}, {3, 62, 0}, {2, 63, 0}, {1, 64, 0}, 14 | 15 | {0, 64, 1}, {0, 63, 2}, {0, 62, 3}, {0, 61, 4}, {0, 60, 5}, {0, 59, 6}, {0, 58, 7}, {0, 57, 8}, 16 | {0, 56, 9}, {0, 55, 10}, {0, 54, 11}, {0, 53, 12}, {0, 52, 13}, {0, 51, 14}, {0, 50, 15}, {0, 49, 16}, 17 | {0, 48, 17}, {0, 47, 18}, {0, 46, 19}, {0, 45, 20}, {0, 44, 21}, {0, 43, 22}, {0, 42, 23}, {0, 41, 24}, 18 | {0, 40, 25}, {0, 39, 26}, {0, 38, 27}, {0, 37, 28}, {0, 36, 29}, {0, 35, 30}, {0, 34, 31}, {0, 33, 32}, 19 | {0, 32, 33}, {0, 31, 34}, {0, 30, 35}, {0, 29, 36}, {0, 28, 37}, {0, 27, 38}, {0, 26, 39}, {0, 25, 40}, 20 | {0, 24, 41}, {0, 23, 42}, {0, 22, 43}, {0, 21, 44}, {0, 20, 45}, {0, 19, 46}, {0, 18, 47}, {0, 17, 48}, 21 | {0, 16, 49}, {0, 15, 50}, {0, 14, 51}, {0, 13, 52}, {0, 12, 53}, {0, 11, 54}, {0, 10, 55}, {0, 9, 56}, 22 | {0, 8, 57}, {0, 7, 58}, {0, 6, 59}, {0, 5, 60}, {0, 4, 61}, {0, 3, 62}, {0, 2, 63}, {0, 1, 64}, 23 | 24 | {1, 0, 64}, {2, 0, 63}, {3, 0, 62}, {4, 0, 61}, {5, 0, 60}, {6, 0, 59}, {7, 0, 58}, {8, 0, 57}, 25 | {9, 0, 56}, {10, 0, 55}, {11, 0, 54}, {12, 0, 53}, {13, 0, 52}, {14, 0, 51}, {15, 0, 50}, {16, 0, 49}, 26 | {17, 0, 48}, {18, 0, 47}, {19, 0, 46}, {20, 0, 45}, {21, 0, 44}, {22, 0, 43}, {23, 0, 42}, {24, 0, 41}, 27 | {25, 0, 40}, {26, 0, 39}, {27, 0, 38}, {28, 0, 37}, {29, 0, 36}, {30, 0, 35}, {31, 0, 34}, {32, 0, 33}, 28 | {33, 0, 32}, {34, 0, 31}, {35, 0, 30}, {36, 0, 29}, {37, 0, 28}, {38, 0, 27}, {39, 0, 26}, {40, 0, 25}, 29 | {41, 0, 24}, {42, 0, 23}, {43, 0, 22}, {44, 0, 21}, {45, 0, 20}, {46, 0, 19}, {47, 0, 18}, {48, 0, 17}, 30 | {49, 0, 16}, {50, 0, 15}, {51, 0, 14}, {52, 0, 13}, {53, 0, 12}, {54, 0, 11}, {55, 0, 10}, {56, 0, 9}, 31 | {57, 0, 8}, {58, 0, 7}, {59, 0, 6}, {60, 0, 5}, {61, 0, 4}, {62, 0, 3}, {63, 0, 2}, {64, 0, 1} 32 | }; 33 | // data range -> Red:0~255 Green:0~255 Blue:0~255 34 | void Set_Color(uint8_t Red,uint8_t Green,uint8_t Blue) // Set RGB bead color 35 | { 36 | neopixelWrite(PIN_NEOPIXEL, Red, Green, Blue); 37 | } 38 | void RGB_Lamp_Loop(uint16_t Waiting) 39 | { 40 | Time++; 41 | if(Time == Waiting){ 42 | Time = 0; 43 | Number++; 44 | if(Number == 192) 45 | Number = 0; 46 | Set_Color( RGB_Data[Number][0]*3, RGB_Data[Number][1]*3, RGB_Data[Number][2]*3); // Color 47 | } 48 | } -------------------------------------------------------------------------------- /S3Example/ui_helpers.h: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.3.4 3 | // LVGL version: 8.3.6 4 | // Project name: SquareLine_Project 5 | 6 | #ifndef _SQUARELINE_PROJECT_UI_HELPERS_H 7 | #define _SQUARELINE_PROJECT_UI_HELPERS_H 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | #include "ui.h" 14 | 15 | #define _UI_TEMPORARY_STRING_BUFFER_SIZE 32 16 | #define _UI_BAR_PROPERTY_VALUE 0 17 | #define _UI_BAR_PROPERTY_VALUE_WITH_ANIM 1 18 | void _ui_bar_set_property(lv_obj_t * target, int id, int val); 19 | 20 | #define _UI_BASIC_PROPERTY_POSITION_X 0 21 | #define _UI_BASIC_PROPERTY_POSITION_Y 1 22 | #define _UI_BASIC_PROPERTY_WIDTH 2 23 | #define _UI_BASIC_PROPERTY_HEIGHT 3 24 | void _ui_basic_set_property(lv_obj_t * target, int id, int val); 25 | 26 | #define _UI_DROPDOWN_PROPERTY_SELECTED 0 27 | void _ui_dropdown_set_property(lv_obj_t * target, int id, int val); 28 | 29 | #define _UI_IMAGE_PROPERTY_IMAGE 0 30 | void _ui_image_set_property(lv_obj_t * target, int id, uint8_t * val); 31 | 32 | #define _UI_LABEL_PROPERTY_TEXT 0 33 | void _ui_label_set_property(lv_obj_t * target, int id, const char * val); 34 | 35 | #define _UI_ROLLER_PROPERTY_SELECTED 0 36 | #define _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM 1 37 | void _ui_roller_set_property(lv_obj_t * target, int id, int val); 38 | 39 | #define _UI_SLIDER_PROPERTY_VALUE 0 40 | #define _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM 1 41 | void _ui_slider_set_property(lv_obj_t * target, int id, int val); 42 | 43 | void _ui_screen_change(lv_obj_t ** target, lv_scr_load_anim_t fademode, int spd, int delay, void (*target_init)(void)); 44 | 45 | void _ui_screen_delete(lv_obj_t ** target); 46 | 47 | void _ui_arc_increment(lv_obj_t * target, int val); 48 | 49 | void _ui_bar_increment(lv_obj_t * target, int val, int anm); 50 | 51 | void _ui_slider_increment(lv_obj_t * target, int val, int anm); 52 | 53 | void _ui_keyboard_set_target(lv_obj_t * keyboard, lv_obj_t * textarea); 54 | 55 | #define _UI_MODIFY_FLAG_ADD 0 56 | #define _UI_MODIFY_FLAG_REMOVE 1 57 | #define _UI_MODIFY_FLAG_TOGGLE 2 58 | void _ui_flag_modify(lv_obj_t * target, int32_t flag, int value); 59 | 60 | #define _UI_MODIFY_STATE_ADD 0 61 | #define _UI_MODIFY_STATE_REMOVE 1 62 | #define _UI_MODIFY_STATE_TOGGLE 2 63 | void _ui_state_modify(lv_obj_t * target, int32_t state, int value); 64 | 65 | void scr_unloaded_delete_cb(lv_event_t * e); 66 | 67 | void _ui_opacity_set(lv_obj_t * target, int val); 68 | 69 | /** Describes an animation*/ 70 | typedef struct _ui_anim_user_data_t { 71 | lv_obj_t * target; 72 | lv_img_dsc_t ** imgset; 73 | int32_t imgset_size; 74 | int32_t val; 75 | } ui_anim_user_data_t; 76 | void _ui_anim_callback_free_user_data(lv_anim_t * a); 77 | 78 | void _ui_anim_callback_set_x(lv_anim_t * a, int32_t v); 79 | 80 | void _ui_anim_callback_set_y(lv_anim_t * a, int32_t v); 81 | 82 | void _ui_anim_callback_set_width(lv_anim_t * a, int32_t v); 83 | 84 | void _ui_anim_callback_set_height(lv_anim_t * a, int32_t v); 85 | 86 | void _ui_anim_callback_set_opacity(lv_anim_t * a, int32_t v); 87 | 88 | void _ui_anim_callback_set_image_zoom(lv_anim_t * a, int32_t v); 89 | 90 | void _ui_anim_callback_set_image_angle(lv_anim_t * a, int32_t v); 91 | 92 | void _ui_anim_callback_set_image_frame(lv_anim_t * a, int32_t v); 93 | 94 | int32_t _ui_anim_callback_get_x(lv_anim_t * a); 95 | 96 | int32_t _ui_anim_callback_get_y(lv_anim_t * a); 97 | 98 | int32_t _ui_anim_callback_get_width(lv_anim_t * a); 99 | 100 | int32_t _ui_anim_callback_get_height(lv_anim_t * a); 101 | 102 | int32_t _ui_anim_callback_get_opacity(lv_anim_t * a); 103 | 104 | int32_t _ui_anim_callback_get_image_zoom(lv_anim_t * a); 105 | 106 | int32_t _ui_anim_callback_get_image_angle(lv_anim_t * a); 107 | 108 | int32_t _ui_anim_callback_get_image_frame(lv_anim_t * a); 109 | 110 | void _ui_arc_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix); 111 | 112 | void _ui_slider_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix); 113 | 114 | void _ui_checked_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * txt_on, const char * txt_off); 115 | 116 | void _ui_spinbox_step(lv_obj_t * target, int val) 117 | ; 118 | 119 | #ifdef __cplusplus 120 | } /*extern "C"*/ 121 | #endif 122 | 123 | #endif 124 | -------------------------------------------------------------------------------- /C6example/ui_img_1699707072.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.4.1 3 | // LVGL version: 8.3.11 4 | // Project name: SquareLine_Project 5 | 6 | #include "ui.h" 7 | 8 | #ifndef LV_ATTRIBUTE_MEM_ALIGN 9 | #define LV_ATTRIBUTE_MEM_ALIGN 10 | #endif 11 | 12 | // IMAGE DATA: assets/Designbolts-Free-Valentine-Heart-Heart.16.png 13 | const LV_ATTRIBUTE_MEM_ALIGN uint8_t ui_img_1699707072_data[] = { 14 | 0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0x90,0x06,0x20,0x98,0x12,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0x98,0x12,0x20,0x98,0x06,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0xC0,0x0E,0x20,0xF8,0x9C,0x20,0xF8,0xF7,0x20,0xF8,0xFF,0x20,0xF8,0xE1,0x20,0xF8,0x65,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0xF8,0x65,0x20,0xF8,0xE1,0x20,0xF8,0xFF,0x20,0xF8,0xF7,0x20,0xF8,0x9C,0x20,0xC8,0x0E,0x89,0x43,0x00,0x20,0xA0,0x05,0x20,0xF8,0xC7,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0x80,0x20,0xF8,0x80,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xC7,0x20,0xB0,0x05,0x20,0xF8,0x6A,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFC,0x20,0xF8,0xFC,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0x6A, 15 | 0x20,0xF8,0xB5,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xB5,0x20,0xF8,0xB9,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xB9,0x20,0xF8,0x8D,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0x8D,0x20,0xD0,0x2F,0x20,0xF8,0xFD,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFD,0x20,0xE0,0x2F, 16 | 0x89,0x43,0x00,0x20,0xF8,0x96,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0x96,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0xA0,0x07,0x20,0xF8,0xC3,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xC3,0x20,0xB0,0x07,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0xB8,0x10,0x20,0xF8,0xCB,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xCB,0x20,0xC8,0x10,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0xB8,0x0F,0x20,0xF8,0xC5,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xC5,0x20,0xC8,0x0F,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00, 17 | 0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0xB0,0x0B,0x20,0xF8,0xBA,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xBA,0x20,0xB8,0x0B,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0xA0,0x06,0x20,0xF8,0xAB,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xAB,0x20,0xB0,0x06,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0x90,0x03,0x20,0xF8,0x9D,0x20,0xF8,0x9D,0x20,0xA0,0x03,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x00,0x68,0x01,0x00,0x70,0x01,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00, 18 | }; 19 | const lv_img_dsc_t ui_img_1699707072 = { 20 | .header.always_zero = 0, 21 | .header.w = 16, 22 | .header.h = 16, 23 | .data_size = sizeof(ui_img_1699707072_data), 24 | .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA, 25 | .data = ui_img_1699707072_data}; 26 | 27 | -------------------------------------------------------------------------------- /C6example/UI/ui_img_1699707072.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.4.1 3 | // LVGL version: 8.3.11 4 | // Project name: SquareLine_Project 5 | 6 | #include "ui.h" 7 | 8 | #ifndef LV_ATTRIBUTE_MEM_ALIGN 9 | #define LV_ATTRIBUTE_MEM_ALIGN 10 | #endif 11 | 12 | // IMAGE DATA: assets/Designbolts-Free-Valentine-Heart-Heart.16.png 13 | const LV_ATTRIBUTE_MEM_ALIGN uint8_t ui_img_1699707072_data[] = { 14 | 0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0x90,0x06,0x20,0x98,0x12,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0x98,0x12,0x20,0x98,0x06,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0xC0,0x0E,0x20,0xF8,0x9C,0x20,0xF8,0xF7,0x20,0xF8,0xFF,0x20,0xF8,0xE1,0x20,0xF8,0x65,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0xF8,0x65,0x20,0xF8,0xE1,0x20,0xF8,0xFF,0x20,0xF8,0xF7,0x20,0xF8,0x9C,0x20,0xC8,0x0E,0x89,0x43,0x00,0x20,0xA0,0x05,0x20,0xF8,0xC7,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0x80,0x20,0xF8,0x80,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xC7,0x20,0xB0,0x05,0x20,0xF8,0x6A,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFC,0x20,0xF8,0xFC,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0x6A, 15 | 0x20,0xF8,0xB5,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xB5,0x20,0xF8,0xB9,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xB9,0x20,0xF8,0x8D,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0x8D,0x20,0xD0,0x2F,0x20,0xF8,0xFD,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFD,0x20,0xE0,0x2F, 16 | 0x89,0x43,0x00,0x20,0xF8,0x96,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0x96,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0xA0,0x07,0x20,0xF8,0xC3,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xC3,0x20,0xB0,0x07,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0xB8,0x10,0x20,0xF8,0xCB,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xCB,0x20,0xC8,0x10,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0xB8,0x0F,0x20,0xF8,0xC5,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xC5,0x20,0xC8,0x0F,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00, 17 | 0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0xB0,0x0B,0x20,0xF8,0xBA,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xBA,0x20,0xB8,0x0B,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0xA0,0x06,0x20,0xF8,0xAB,0x20,0xF8,0xFF,0x20,0xF8,0xFF,0x20,0xF8,0xAB,0x20,0xB0,0x06,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x20,0x90,0x03,0x20,0xF8,0x9D,0x20,0xF8,0x9D,0x20,0xA0,0x03,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x00,0x68,0x01,0x00,0x70,0x01,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00, 18 | }; 19 | const lv_img_dsc_t ui_img_1699707072 = { 20 | .header.always_zero = 0, 21 | .header.w = 16, 22 | .header.h = 16, 23 | .data_size = sizeof(ui_img_1699707072_data), 24 | .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA, 25 | .data = ui_img_1699707072_data}; 26 | 27 | -------------------------------------------------------------------------------- /S3Example/ui_img_1438100199.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.3.4 3 | // LVGL version: 8.3.6 4 | // Project name: SquareLine_Project 5 | 6 | #include "ui.h" 7 | 8 | #ifndef LV_ATTRIBUTE_MEM_ALIGN 9 | #define LV_ATTRIBUTE_MEM_ALIGN 10 | #endif 11 | 12 | // IMAGE DATA: assets\Custom-Icon-Design-Pretty-Office-9-Battery-3.16.png 13 | const LV_ATTRIBUTE_MEM_ALIGN uint8_t ui_img_1438100199_data[] = { 14 | 0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00, 15 | 0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0xF3,0x9C,0x23,0x7A,0xE7,0xF3,0x57,0xDF,0xFB,0x56,0xDF,0xFB,0x56,0xDF,0xFB,0x56,0xDF,0xFB,0x56,0xDF,0xFB,0x56,0xDF,0xFB,0x56,0xDF,0xFB,0x56,0xDF,0xFB,0x79,0xE7,0xFB,0x7D,0xEF,0xFB,0x7D,0xEF,0xFB,0x7D,0xEF,0xEF,0xF3,0x9C,0x17,0x89,0x43,0x00,0xB2,0x94,0x37,0x11,0xC7,0xFF,0x46,0x96,0xFF,0x46,0x96,0xFF,0x46,0x96,0xFF,0x46,0x96,0xFF,0x46,0x96,0xFF,0x46,0x96,0xFF,0x46,0x96,0xFF,0x46,0x96,0xFF,0xED,0xBE,0xFF,0x5D,0xEF,0xFF,0x5D,0xEF,0xFF,0x3C,0xE7,0xFF,0x96,0xB5,0x27,0x89,0x43,0x00,0x92,0x94,0x37,0xD2,0xC6,0xFF,0x0A,0x96,0xFF,0x0A,0x96,0xFF,0x0A,0x96,0xFF,0x0A,0x96,0xFF,0x0A,0x96,0xFF,0x0A,0x96,0xFF,0x0A,0x96,0xFF,0x0A,0x96,0xFF,0xB0,0xB6,0xFF,0x1C,0xE7,0xFF,0x1C,0xE7,0xFF,0x1C,0xE7,0xFF,0x1C,0xE7,0xDC,0xBA,0xD6,0x51, 16 | 0x30,0x84,0x37,0xEE,0xA5,0xFF,0xE5,0x64,0xFF,0xE5,0x64,0xFF,0xE5,0x64,0xFF,0xE5,0x64,0xFF,0xE5,0x64,0xFF,0xE5,0x64,0xFF,0xE5,0x64,0xFF,0xE5,0x64,0xFF,0xCB,0x95,0xFF,0x79,0xCE,0xFF,0x79,0xCE,0xFF,0x79,0xCE,0xFF,0x79,0xCE,0xFF,0x18,0xC6,0x80,0xCF,0x7B,0x37,0x8D,0x95,0xFF,0x65,0x54,0xFF,0x65,0x54,0xFF,0x65,0x54,0xFF,0x65,0x54,0xFF,0x65,0x54,0xFF,0x65,0x54,0xFF,0x65,0x54,0xFF,0x65,0x54,0xFF,0x6B,0x8D,0xFF,0x18,0xBE,0xFF,0x18,0xBE,0xFF,0xF7,0xBD,0xFF,0x55,0xAD,0x74,0x10,0x84,0x16,0xCF,0x7B,0x37,0x51,0xB6,0xFF,0xCB,0x85,0xFF,0xAA,0x85,0xFF,0xAA,0x85,0xFF,0xAA,0x85,0xFF,0xAA,0x85,0xFF,0xAA,0x85,0xFF,0xAA,0x85,0xFF,0xCB,0x85,0xFF,0x70,0xAE,0xFF,0x9A,0xD6,0xFF,0x9A,0xD6,0xFF,0x59,0xC6,0xFF,0xCF,0x7B,0x27,0x89,0x43,0x00,0xAE,0x73,0x15,0x37,0xC6,0xB4,0x56,0xC6,0xBB,0x56,0xC6,0xBB,0x56,0xC6,0xBB,0x56,0xC6,0xBB,0x56,0xC6,0xBB,0x56,0xC6,0xBB,0x56,0xC6,0xBB,0x56,0xC6,0xBB,0x57,0xC6,0xBB,0x59,0xC6,0xBB,0x59,0xC6,0xBB,0x18,0xC6,0xB1,0xAE,0x73,0x0D,0x89,0x43,0x00, 17 | 0x89,0x43,0x00,0x10,0x84,0x01,0x71,0x8C,0x02,0xB2,0x94,0x05,0xF3,0x9C,0x07,0xF3,0x9C,0x0B,0xF3,0x9C,0x0B,0xF3,0x9C,0x0B,0xF3,0x9C,0x0B,0xF3,0x9C,0x0B,0xF3,0x9C,0x0B,0xF3,0x9C,0x07,0x92,0x94,0x05,0x71,0x8C,0x03,0x6D,0x6B,0x01,0x89,0x43,0x00,0x34,0xA5,0x2B,0x34,0xA5,0x85,0x34,0xA5,0xA9,0x34,0xA5,0xC0,0x34,0xA5,0xC9,0x34,0xA5,0xD7,0x34,0xA5,0xD7,0x34,0xA5,0xD7,0x34,0xA5,0xD7,0x34,0xA5,0xD7,0x34,0xA5,0xD7,0x34,0xA5,0xCB,0x34,0xA5,0xC1,0x34,0xA5,0xAC,0x34,0xA5,0x89,0x34,0xA5,0x37,0x89,0x43,0x00,0x6D,0x6B,0x05,0xAE,0x73,0x0B,0xEF,0x7B,0x11,0x30,0x84,0x17,0x30,0x84,0x1B,0x30,0x84,0x1B,0x30,0x84,0x1B,0x30,0x84,0x1B,0x30,0x84,0x1B,0x30,0x84,0x1B,0x30,0x84,0x18,0xEF,0x7B,0x12,0xCF,0x7B,0x0C,0x6D,0x6B,0x05,0xEB,0x5A,0x01,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00, 18 | 19 | }; 20 | const lv_img_dsc_t ui_img_1438100199 = { 21 | .header.always_zero = 0, 22 | .header.w = 16, 23 | .header.h = 16, 24 | .data_size = sizeof(ui_img_1438100199_data), 25 | .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA, 26 | .data = ui_img_1438100199_data 27 | }; 28 | 29 | -------------------------------------------------------------------------------- /C6example/UI/ui_helpers.h: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.4.1 3 | // LVGL version: 8.3.11 4 | // Project name: SquareLine_Project 5 | 6 | #ifndef _SQUARELINE_PROJECT_UI_HELPERS_H 7 | #define _SQUARELINE_PROJECT_UI_HELPERS_H 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | #include "ui.h" 14 | 15 | #define _UI_TEMPORARY_STRING_BUFFER_SIZE 32 16 | #define _UI_BAR_PROPERTY_VALUE 0 17 | #define _UI_BAR_PROPERTY_VALUE_WITH_ANIM 1 18 | void _ui_bar_set_property( lv_obj_t *target, int id, int val); 19 | 20 | #define _UI_BASIC_PROPERTY_POSITION_X 0 21 | #define _UI_BASIC_PROPERTY_POSITION_Y 1 22 | #define _UI_BASIC_PROPERTY_WIDTH 2 23 | #define _UI_BASIC_PROPERTY_HEIGHT 3 24 | void _ui_basic_set_property( lv_obj_t *target, int id, int val); 25 | 26 | #define _UI_DROPDOWN_PROPERTY_SELECTED 0 27 | void _ui_dropdown_set_property( lv_obj_t *target, int id, int val); 28 | 29 | #define _UI_IMAGE_PROPERTY_IMAGE 0 30 | void _ui_image_set_property( lv_obj_t *target, int id, uint8_t *val); 31 | 32 | #define _UI_LABEL_PROPERTY_TEXT 0 33 | void _ui_label_set_property( lv_obj_t *target, int id, const char *val); 34 | 35 | #define _UI_ROLLER_PROPERTY_SELECTED 0 36 | #define _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM 1 37 | void _ui_roller_set_property( lv_obj_t *target, int id, int val); 38 | 39 | #define _UI_SLIDER_PROPERTY_VALUE 0 40 | #define _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM 1 41 | void _ui_slider_set_property( lv_obj_t *target, int id, int val); 42 | 43 | void _ui_screen_change( lv_obj_t ** target, lv_scr_load_anim_t fademode, int spd, int delay, void (*target_init)(void)); 44 | 45 | void _ui_screen_delete( lv_obj_t ** target ); 46 | 47 | void _ui_arc_increment( lv_obj_t *target, int val); 48 | 49 | void _ui_bar_increment( lv_obj_t *target, int val, int anm); 50 | 51 | void _ui_slider_increment( lv_obj_t *target, int val, int anm); 52 | 53 | void _ui_keyboard_set_target( lv_obj_t *keyboard, lv_obj_t *textarea); 54 | 55 | #define _UI_MODIFY_FLAG_ADD 0 56 | #define _UI_MODIFY_FLAG_REMOVE 1 57 | #define _UI_MODIFY_FLAG_TOGGLE 2 58 | void _ui_flag_modify( lv_obj_t *target, int32_t flag, int value); 59 | 60 | #define _UI_MODIFY_STATE_ADD 0 61 | #define _UI_MODIFY_STATE_REMOVE 1 62 | #define _UI_MODIFY_STATE_TOGGLE 2 63 | void _ui_state_modify( lv_obj_t *target, int32_t state, int value); 64 | 65 | #define UI_MOVE_CURSOR_UP 0 66 | #define UI_MOVE_CURSOR_RIGHT 1 67 | #define UI_MOVE_CURSOR_DOWN 2 68 | #define UI_MOVE_CURSOR_LEFT 3 69 | void _ui_textarea_move_cursor(lv_obj_t * target, int val) ; 70 | 71 | void scr_unloaded_delete_cb(lv_event_t * e); 72 | 73 | void _ui_opacity_set( lv_obj_t *target, int val); 74 | 75 | /** Describes an animation*/ 76 | typedef struct _ui_anim_user_data_t { 77 | lv_obj_t *target; 78 | lv_img_dsc_t **imgset; 79 | int32_t imgset_size; 80 | int32_t val; 81 | } ui_anim_user_data_t; 82 | void _ui_anim_callback_free_user_data(lv_anim_t *a); 83 | 84 | void _ui_anim_callback_set_x(lv_anim_t* a, int32_t v); 85 | 86 | void _ui_anim_callback_set_y(lv_anim_t* a, int32_t v); 87 | 88 | void _ui_anim_callback_set_width(lv_anim_t* a, int32_t v); 89 | 90 | void _ui_anim_callback_set_height(lv_anim_t* a, int32_t v); 91 | 92 | void _ui_anim_callback_set_opacity(lv_anim_t* a, int32_t v); 93 | 94 | void _ui_anim_callback_set_image_zoom(lv_anim_t* a, int32_t v); 95 | 96 | void _ui_anim_callback_set_image_angle(lv_anim_t* a, int32_t v); 97 | 98 | void _ui_anim_callback_set_image_frame(lv_anim_t* a, int32_t v); 99 | 100 | int32_t _ui_anim_callback_get_x(lv_anim_t* a); 101 | 102 | int32_t _ui_anim_callback_get_y(lv_anim_t* a); 103 | 104 | int32_t _ui_anim_callback_get_width(lv_anim_t* a); 105 | 106 | int32_t _ui_anim_callback_get_height(lv_anim_t* a); 107 | 108 | int32_t _ui_anim_callback_get_opacity(lv_anim_t* a); 109 | 110 | int32_t _ui_anim_callback_get_image_zoom(lv_anim_t* a); 111 | 112 | int32_t _ui_anim_callback_get_image_angle(lv_anim_t* a); 113 | 114 | int32_t _ui_anim_callback_get_image_frame(lv_anim_t* a); 115 | 116 | void _ui_arc_set_text_value( lv_obj_t *trg, lv_obj_t *src, const char *prefix, const char *postfix); 117 | 118 | void _ui_slider_set_text_value( lv_obj_t *trg, lv_obj_t *src, const char *prefix, const char *postfix); 119 | 120 | void _ui_checked_set_text_value( lv_obj_t *trg, lv_obj_t *src, const char *txt_on, const char *txt_off); 121 | 122 | void _ui_spinbox_step(lv_obj_t * target, int val) ; 123 | 124 | void _ui_switch_theme(int val) ; 125 | 126 | 127 | #ifdef __cplusplus 128 | } /*extern "C"*/ 129 | #endif 130 | 131 | #endif 132 | -------------------------------------------------------------------------------- /C6example/ui_helpers.h: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.4.1 3 | // LVGL version: 8.3.11 4 | // Project name: SquareLine_Project 5 | 6 | #ifndef _SQUARELINE_PROJECT_UI_HELPERS_H 7 | #define _SQUARELINE_PROJECT_UI_HELPERS_H 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | #include "ui.h" 14 | 15 | #define _UI_TEMPORARY_STRING_BUFFER_SIZE 32 16 | #define _UI_BAR_PROPERTY_VALUE 0 17 | #define _UI_BAR_PROPERTY_VALUE_WITH_ANIM 1 18 | void _ui_bar_set_property( lv_obj_t *target, int id, int val); 19 | 20 | #define _UI_BASIC_PROPERTY_POSITION_X 0 21 | #define _UI_BASIC_PROPERTY_POSITION_Y 1 22 | #define _UI_BASIC_PROPERTY_WIDTH 2 23 | #define _UI_BASIC_PROPERTY_HEIGHT 3 24 | void _ui_basic_set_property( lv_obj_t *target, int id, int val); 25 | 26 | #define _UI_DROPDOWN_PROPERTY_SELECTED 0 27 | void _ui_dropdown_set_property( lv_obj_t *target, int id, int val); 28 | 29 | #define _UI_IMAGE_PROPERTY_IMAGE 0 30 | void _ui_image_set_property( lv_obj_t *target, int id, uint8_t *val); 31 | 32 | #define _UI_LABEL_PROPERTY_TEXT 0 33 | void _ui_label_set_property( lv_obj_t *target, int id, const char *val); 34 | 35 | #define _UI_ROLLER_PROPERTY_SELECTED 0 36 | #define _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM 1 37 | void _ui_roller_set_property( lv_obj_t *target, int id, int val); 38 | 39 | #define _UI_SLIDER_PROPERTY_VALUE 0 40 | #define _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM 1 41 | void _ui_slider_set_property( lv_obj_t *target, int id, int val); 42 | 43 | void _ui_screen_change( lv_obj_t ** target, lv_scr_load_anim_t fademode, int spd, int delay, void (*target_init)(void)); 44 | 45 | void _ui_screen_delete( lv_obj_t ** target ); 46 | 47 | void _ui_arc_increment( lv_obj_t *target, int val); 48 | 49 | void _ui_bar_increment( lv_obj_t *target, int val, int anm); 50 | 51 | void _ui_slider_increment( lv_obj_t *target, int val, int anm); 52 | 53 | void _ui_keyboard_set_target( lv_obj_t *keyboard, lv_obj_t *textarea); 54 | 55 | #define _UI_MODIFY_FLAG_ADD 0 56 | #define _UI_MODIFY_FLAG_REMOVE 1 57 | #define _UI_MODIFY_FLAG_TOGGLE 2 58 | void _ui_flag_modify( lv_obj_t *target, int32_t flag, int value); 59 | 60 | #define _UI_MODIFY_STATE_ADD 0 61 | #define _UI_MODIFY_STATE_REMOVE 1 62 | #define _UI_MODIFY_STATE_TOGGLE 2 63 | void _ui_state_modify( lv_obj_t *target, int32_t state, int value); 64 | 65 | #define UI_MOVE_CURSOR_UP 0 66 | #define UI_MOVE_CURSOR_RIGHT 1 67 | #define UI_MOVE_CURSOR_DOWN 2 68 | #define UI_MOVE_CURSOR_LEFT 3 69 | void _ui_textarea_move_cursor(lv_obj_t * target, int val) ; 70 | 71 | void scr_unloaded_delete_cb(lv_event_t * e); 72 | 73 | void _ui_opacity_set( lv_obj_t *target, int val); 74 | 75 | /** Describes an animation*/ 76 | typedef struct _ui_anim_user_data_t { 77 | lv_obj_t *target; 78 | lv_img_dsc_t **imgset; 79 | int32_t imgset_size; 80 | int32_t val; 81 | } ui_anim_user_data_t; 82 | void _ui_anim_callback_free_user_data(lv_anim_t *a); 83 | 84 | void _ui_anim_callback_set_x(lv_anim_t* a, int32_t v); 85 | 86 | void _ui_anim_callback_set_y(lv_anim_t* a, int32_t v); 87 | 88 | void _ui_anim_callback_set_width(lv_anim_t* a, int32_t v); 89 | 90 | void _ui_anim_callback_set_height(lv_anim_t* a, int32_t v); 91 | 92 | void _ui_anim_callback_set_opacity(lv_anim_t* a, int32_t v); 93 | 94 | void _ui_anim_callback_set_image_zoom(lv_anim_t* a, int32_t v); 95 | 96 | void _ui_anim_callback_set_image_angle(lv_anim_t* a, int32_t v); 97 | 98 | void _ui_anim_callback_set_image_frame(lv_anim_t* a, int32_t v); 99 | 100 | int32_t _ui_anim_callback_get_x(lv_anim_t* a); 101 | 102 | int32_t _ui_anim_callback_get_y(lv_anim_t* a); 103 | 104 | int32_t _ui_anim_callback_get_width(lv_anim_t* a); 105 | 106 | int32_t _ui_anim_callback_get_height(lv_anim_t* a); 107 | 108 | int32_t _ui_anim_callback_get_opacity(lv_anim_t* a); 109 | 110 | int32_t _ui_anim_callback_get_image_zoom(lv_anim_t* a); 111 | 112 | int32_t _ui_anim_callback_get_image_angle(lv_anim_t* a); 113 | 114 | int32_t _ui_anim_callback_get_image_frame(lv_anim_t* a); 115 | 116 | void _ui_arc_set_text_value( lv_obj_t *trg, lv_obj_t *src, const char *prefix, const char *postfix); 117 | 118 | void _ui_slider_set_text_value( lv_obj_t *trg, lv_obj_t *src, const char *prefix, const char *postfix); 119 | 120 | void _ui_checked_set_text_value( lv_obj_t *trg, lv_obj_t *src, const char *txt_on, const char *txt_off); 121 | 122 | void _ui_spinbox_step(lv_obj_t * target, int val) ; 123 | 124 | void _ui_switch_theme(int val) ; 125 | 126 | 127 | #ifdef __cplusplus 128 | } /*extern "C"*/ 129 | #endif 130 | 131 | #endif 132 | -------------------------------------------------------------------------------- /S3Example/S3Example.ino: -------------------------------------------------------------------------------- 1 | #include "Display_ST7789.h" 2 | #include "LVGL_Driver.h" 3 | #include "RGB_lamp.h" 4 | #include "ui.h" 5 | 6 | #include "NimBLEDevice.h" 7 | 8 | 9 | const char* targetDeviceMAC1 = "a4:c1:38:fb:64:94"; // MAC address for Sensor 1 10 | static const NimBLEAdvertisedDevice* targetDevice1 = nullptr; 11 | 12 | // Separate temperature and humidity variables for each sensor 13 | float temp = 0.0; 14 | float humi = 0.0; 15 | float voltage; 16 | int up=0; 17 | 18 | int found=0; 19 | bool setupFinished=1; 20 | 21 | static BLEUUID serviceUUID("ebe0ccb0-7a0a-4b0c-8a1a-6ff2997da3a6"); 22 | static BLEUUID charUUID("ebe0ccc1-7a0a-4b0c-8a1a-6ff2997da3a6"); 23 | 24 | 25 | 26 | // Declare the callback class before setup() 27 | 28 | class scanCallbacks : public NimBLEScanCallbacks { 29 | void onResult(const NimBLEAdvertisedDevice* advertisedDevice) override { 30 | // Serial.printf("Advertised Device found: %s\n", advertisedDevice->toString().c_str()); 31 | 32 | //Serial.println(advertisedDevice->toString().c_str()); 33 | 34 | // Compare MAC addresses to identify the devices 35 | if (advertisedDevice->getAddress().toString() == targetDeviceMAC1) { 36 | found++; 37 | Serial.println("Found target device for Sensor 1!"); 38 | Serial.println(advertisedDevice->getRSSI()); 39 | targetDevice1 = advertisedDevice; // Store the first target device 40 | } 41 | } 42 | } scanCB; 43 | 44 | 45 | 46 | // Separate notifyCallback for Sensor 1 47 | static void notifyCallback1( 48 | BLERemoteCharacteristic* pBLERemoteCharacteristic, 49 | uint8_t* pData, 50 | size_t length, 51 | bool isNotify) { 52 | Serial.print("Notify callback for SENSOR 0 "); 53 | temp = (pData[0] | (pData[1] << 8)) * 0.01; //little endian 54 | humi = pData[2]; 55 | voltage = (pData[3] | (pData[4] << 8)) * 0.001; //little endian 56 | Serial.printf("temp = %.1f C ; humidity = %.1f %% ; voltage = %.3f V\n", temp, humi, voltage); 57 | Serial.println(); 58 | 59 | _ui_label_set_property(ui_tmpLBL, _UI_LABEL_PROPERTY_TEXT, String(temp).c_str()); 60 | _ui_label_set_property(ui_humLBL, _UI_LABEL_PROPERTY_TEXT, String(humi).substring(0,4).c_str()); 61 | _ui_label_set_property(ui_batLBL, _UI_LABEL_PROPERTY_TEXT, String(voltage).c_str()); 62 | up++; 63 | if(up==8) up=0; 64 | _ui_label_set_property(ui_updLBL, _UI_LABEL_PROPERTY_TEXT, String(up).c_str()); 65 | 66 | } 67 | 68 | 69 | 70 | void connectToSensor(const NimBLEAdvertisedDevice* targetDevice, const char* sensorName, int sensorNumber) { 71 | if (targetDevice == nullptr) { 72 | Serial.println("Target device not found for " + String(sensorName)); 73 | return; 74 | } 75 | 76 | Serial.println("Connecting to " + String(sensorName)); 77 | 78 | // Create a client to connect to the sensor 79 | NimBLEClient* pClient = NimBLEDevice::createClient(); 80 | 81 | if (pClient->connect(targetDevice)) { 82 | Serial.println("Successfully connected to " + String(sensorName)); 83 | 84 | BLERemoteService* pRemoteService = pClient->getService(serviceUUID); 85 | if (pRemoteService == nullptr) { 86 | Serial.print("Failed to find our service UUID: "); 87 | Serial.println(serviceUUID.toString().c_str()); 88 | return; 89 | } 90 | Serial.println(" - Found our service"); 91 | 92 | // Obtain a reference to the characteristic in the service of the remote BLE server 93 | BLERemoteCharacteristic* pRemoteCharacteristic = pRemoteService->getCharacteristic(charUUID); 94 | if (pRemoteCharacteristic == nullptr) { 95 | Serial.print("Failed to find our characteristic UUID: "); 96 | Serial.println(charUUID.toString().c_str()); 97 | return; 98 | } 99 | Serial.println(" - Found our characteristic"); 100 | 101 | NimBLERemoteService* pSvc = pClient->getService(serviceUUID); 102 | // Register for notifications for the sensor 103 | if (sensorNumber == 1) { 104 | if (pSvc) { 105 | NimBLERemoteCharacteristic* pChr = pSvc->getCharacteristic(charUUID); 106 | if (pChr) { 107 | if (pChr->canNotify()) { 108 | if (!pChr->subscribe(true, notifyCallback1)) { 109 | pClient->disconnect(); 110 | 111 | } 112 | } 113 | } 114 | } 115 | } 116 | } 117 | } 118 | 119 | 120 | 121 | void setup() 122 | { 123 | Serial.begin(115200); 124 | LCD_Init(); 125 | Set_Backlight(14); 126 | Lvgl_Init(); 127 | ui_init(); 128 | 129 | 130 | delay(200); 131 | NimBLEDevice::init(""); 132 | 133 | // Set up the BLE scan for both devices 134 | NimBLEScan* pBLEScan = NimBLEDevice::getScan(); 135 | //NimBLEDevice::setPower(3); 136 | pBLEScan->setActiveScan(true); // Enable active scan for better results 137 | pBLEScan->setInterval(45); // Scan interval 138 | pBLEScan->setWindow(15); // Scan window 139 | pBLEScan->setScanCallbacks(&scanCB, false); 140 | pBLEScan->start(60000); // Scan for 60 seconds, using passive scan mode 141 | 142 | 143 | while (found <1) { 144 | delay(100); // Keep scanning until both devices are found 145 | } 146 | 147 | NimBLEDevice::getScan()->stop(); 148 | delay(100); 149 | Serial.println("ajmo se povezati 3"); 150 | // Connect to the first sensor (Sensor 1) 151 | connectToSensor(targetDevice1, "Sensor 1", 1); 152 | delay(200); 153 | } 154 | 155 | void loop() 156 | { 157 | 158 | 159 | Timer_Loop(); 160 | RGB_Lamp_Loop(2); 161 | delay(5); 162 | } 163 | -------------------------------------------------------------------------------- /S3Example/Display_ST7789.cpp: -------------------------------------------------------------------------------- 1 | #include "Display_ST7789.h" 2 | 3 | SPIClass LCDspi(FSPI); 4 | #define SPI_WRITE(_dat) LCDspi.transfer(_dat) 5 | #define SPI_WRITE_Word(_dat) LCDspi.transfer16(_dat) 6 | void SPI_Init() 7 | { 8 | LCDspi.begin(EXAMPLE_PIN_NUM_SCLK,EXAMPLE_PIN_NUM_MISO,EXAMPLE_PIN_NUM_MOSI); 9 | } 10 | 11 | void LCD_WriteCommand(uint8_t Cmd) 12 | { 13 | LCDspi.beginTransaction(SPISettings(SPIFreq, MSBFIRST, SPI_MODE0)); 14 | digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, LOW); 15 | digitalWrite(EXAMPLE_PIN_NUM_LCD_DC, LOW); 16 | SPI_WRITE(Cmd); 17 | digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, HIGH); 18 | LCDspi.endTransaction(); 19 | } 20 | void LCD_WriteData(uint8_t Data) 21 | { 22 | LCDspi.beginTransaction(SPISettings(SPIFreq, MSBFIRST, SPI_MODE0)); 23 | digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, LOW); 24 | digitalWrite(EXAMPLE_PIN_NUM_LCD_DC, HIGH); 25 | SPI_WRITE(Data); 26 | digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, HIGH); 27 | LCDspi.endTransaction(); 28 | } 29 | void LCD_WriteData_Word(uint16_t Data) 30 | { 31 | LCDspi.beginTransaction(SPISettings(SPIFreq, MSBFIRST, SPI_MODE0)); 32 | digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, LOW); 33 | digitalWrite(EXAMPLE_PIN_NUM_LCD_DC, HIGH); 34 | SPI_WRITE_Word(Data); 35 | digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, HIGH); 36 | LCDspi.endTransaction(); 37 | } 38 | void LCD_WriteData_nbyte(uint8_t* SetData,uint8_t* ReadData,uint32_t Size) 39 | { 40 | LCDspi.beginTransaction(SPISettings(SPIFreq, MSBFIRST, SPI_MODE0)); 41 | digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, LOW); 42 | digitalWrite(EXAMPLE_PIN_NUM_LCD_DC, HIGH); 43 | LCDspi.transferBytes(SetData, ReadData, Size); 44 | digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, HIGH); 45 | LCDspi.endTransaction(); 46 | } 47 | 48 | void LCD_Reset(void) 49 | { 50 | digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, LOW); 51 | delay(50); 52 | digitalWrite(EXAMPLE_PIN_NUM_LCD_RST, LOW); 53 | delay(50); 54 | digitalWrite(EXAMPLE_PIN_NUM_LCD_RST, HIGH); 55 | delay(50); 56 | } 57 | void LCD_Init(void) 58 | { 59 | pinMode(EXAMPLE_PIN_NUM_LCD_CS, OUTPUT); 60 | pinMode(EXAMPLE_PIN_NUM_LCD_DC, OUTPUT); 61 | pinMode(EXAMPLE_PIN_NUM_LCD_RST, OUTPUT); 62 | Backlight_Init(); 63 | SPI_Init(); 64 | 65 | LCD_Reset(); 66 | //************* Start Initial Sequence **********// 67 | LCD_WriteCommand(0x11); 68 | delay(120); 69 | LCD_WriteCommand(0x36); 70 | if (HORIZONTAL) 71 | LCD_WriteData(0x00); 72 | else 73 | LCD_WriteData(0x70); 74 | 75 | LCD_WriteCommand(0x3A); 76 | LCD_WriteData(0x05); 77 | 78 | LCD_WriteCommand(0xB0); 79 | LCD_WriteData(0x00); 80 | LCD_WriteData(0xE8); 81 | 82 | LCD_WriteCommand(0xB2); 83 | LCD_WriteData(0x0C); 84 | LCD_WriteData(0x0C); 85 | LCD_WriteData(0x00); 86 | LCD_WriteData(0x33); 87 | LCD_WriteData(0x33); 88 | 89 | LCD_WriteCommand(0xB7); 90 | LCD_WriteData(0x35); 91 | 92 | LCD_WriteCommand(0xBB); 93 | LCD_WriteData(0x35); 94 | 95 | LCD_WriteCommand(0xC0); 96 | LCD_WriteData(0x2C); 97 | 98 | LCD_WriteCommand(0xC2); 99 | LCD_WriteData(0x01); 100 | 101 | LCD_WriteCommand(0xC3); 102 | LCD_WriteData(0x13); 103 | 104 | LCD_WriteCommand(0xC4); 105 | LCD_WriteData(0x20); 106 | 107 | LCD_WriteCommand(0xC6); 108 | LCD_WriteData(0x0F); 109 | 110 | LCD_WriteCommand(0xD0); 111 | LCD_WriteData(0xA4); 112 | LCD_WriteData(0xA1); 113 | 114 | LCD_WriteCommand(0xD6); 115 | LCD_WriteData(0xA1); 116 | 117 | LCD_WriteCommand(0xE0); 118 | LCD_WriteData(0xF0); 119 | LCD_WriteData(0x00); 120 | LCD_WriteData(0x04); 121 | LCD_WriteData(0x04); 122 | LCD_WriteData(0x04); 123 | LCD_WriteData(0x05); 124 | LCD_WriteData(0x29); 125 | LCD_WriteData(0x33); 126 | LCD_WriteData(0x3E); 127 | LCD_WriteData(0x38); 128 | LCD_WriteData(0x12); 129 | LCD_WriteData(0x12); 130 | LCD_WriteData(0x28); 131 | LCD_WriteData(0x30); 132 | 133 | LCD_WriteCommand(0xE1); 134 | LCD_WriteData(0xF0); 135 | LCD_WriteData(0x07); 136 | LCD_WriteData(0x0A); 137 | LCD_WriteData(0x0D); 138 | LCD_WriteData(0x0B); 139 | LCD_WriteData(0x07); 140 | LCD_WriteData(0x28); 141 | LCD_WriteData(0x33); 142 | LCD_WriteData(0x3E); 143 | LCD_WriteData(0x36); 144 | LCD_WriteData(0x14); 145 | LCD_WriteData(0x14); 146 | LCD_WriteData(0x29); 147 | LCD_WriteData(0x32); 148 | 149 | LCD_WriteCommand(0x21); 150 | 151 | LCD_WriteCommand(0x11); 152 | delay(120); 153 | LCD_WriteCommand(0x29); 154 | } 155 | /****************************************************************************** 156 | function: Set the cursor position 157 | parameter : 158 | Xstart: Start uint16_t x coordinate 159 | Ystart: Start uint16_t y coordinate 160 | Xend : End uint16_t coordinates 161 | Yend : End uint16_t coordinatesen 162 | ******************************************************************************/ 163 | void LCD_SetCursor(uint16_t Xstart, uint16_t Ystart, uint16_t Xend, uint16_t Yend) 164 | { 165 | if (HORIZONTAL) { 166 | // set the X coordinates 167 | LCD_WriteCommand(0x2A); 168 | LCD_WriteData(Xstart >> 8); 169 | LCD_WriteData(Xstart + Offset_X); 170 | LCD_WriteData(Xend >> 8); 171 | LCD_WriteData(Xend + Offset_X); 172 | 173 | // set the Y coordinates 174 | LCD_WriteCommand(0x2B); 175 | LCD_WriteData(Ystart >> 8); 176 | LCD_WriteData(Ystart + Offset_Y); 177 | LCD_WriteData(Yend >> 8); 178 | LCD_WriteData(Yend + Offset_Y); 179 | } 180 | else { 181 | // set the X coordinates 182 | LCD_WriteCommand(0x2A); 183 | LCD_WriteData(Ystart >> 8); 184 | LCD_WriteData(Ystart + Offset_Y); 185 | LCD_WriteData(Yend >> 8); 186 | LCD_WriteData(Yend + Offset_Y); 187 | // set the Y coordinates 188 | LCD_WriteCommand(0x2B); 189 | LCD_WriteData(Xstart >> 8); 190 | LCD_WriteData(Xstart + Offset_X); 191 | LCD_WriteData(Xend >> 8); 192 | LCD_WriteData(Xend + Offset_X); 193 | } 194 | LCD_WriteCommand(0x2C); 195 | } 196 | /****************************************************************************** 197 | function: Refresh the image in an area 198 | parameter : 199 | Xstart: Start uint16_t x coordinate 200 | Ystart: Start uint16_t y coordinate 201 | Xend : End uint16_t coordinates 202 | Yend : End uint16_t coordinates 203 | color : Set the color 204 | ******************************************************************************/ 205 | void LCD_addWindow(uint16_t Xstart, uint16_t Ystart, uint16_t Xend, uint16_t Yend,uint16_t* color) 206 | { 207 | uint16_t Show_Width = Xend - Xstart + 1; 208 | uint16_t Show_Height = Yend - Ystart + 1; 209 | uint32_t numBytes = Show_Width * Show_Height * sizeof(uint16_t); 210 | uint8_t Read_D[numBytes]; 211 | LCD_SetCursor(Xstart, Ystart, Xend, Yend); 212 | LCD_WriteData_nbyte((uint8_t*)color, Read_D, numBytes); 213 | } 214 | // backlight 215 | void Backlight_Init(void) 216 | { 217 | ledcAttach(EXAMPLE_PIN_NUM_BK_LIGHT, Frequency, Resolution); 218 | ledcWrite(EXAMPLE_PIN_NUM_BK_LIGHT, 100); 219 | } 220 | 221 | void Set_Backlight(uint8_t Light) // 222 | { 223 | 224 | if(Light > 100 || Light < 0) 225 | printf("Set Backlight parameters in the range of 0 to 100 \r\n"); 226 | else{ 227 | uint32_t Backlight = Light*10; 228 | ledcWrite(EXAMPLE_PIN_NUM_BK_LIGHT, Backlight); 229 | } 230 | } 231 | 232 | 233 | 234 | 235 | 236 | -------------------------------------------------------------------------------- /S3Example/ui_helpers.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.3.4 3 | // LVGL version: 8.3.6 4 | // Project name: SquareLine_Project 5 | 6 | #include "ui_helpers.h" 7 | 8 | void _ui_bar_set_property(lv_obj_t * target, int id, int val) 9 | { 10 | if(id == _UI_BAR_PROPERTY_VALUE_WITH_ANIM) lv_bar_set_value(target, val, LV_ANIM_ON); 11 | if(id == _UI_BAR_PROPERTY_VALUE) lv_bar_set_value(target, val, LV_ANIM_OFF); 12 | } 13 | 14 | void _ui_basic_set_property(lv_obj_t * target, int id, int val) 15 | { 16 | if(id == _UI_BASIC_PROPERTY_POSITION_X) lv_obj_set_x(target, val); 17 | if(id == _UI_BASIC_PROPERTY_POSITION_Y) lv_obj_set_y(target, val); 18 | if(id == _UI_BASIC_PROPERTY_WIDTH) lv_obj_set_width(target, val); 19 | if(id == _UI_BASIC_PROPERTY_HEIGHT) lv_obj_set_height(target, val); 20 | } 21 | 22 | void _ui_dropdown_set_property(lv_obj_t * target, int id, int val) 23 | { 24 | if(id == _UI_DROPDOWN_PROPERTY_SELECTED) lv_dropdown_set_selected(target, val); 25 | } 26 | 27 | void _ui_image_set_property(lv_obj_t * target, int id, uint8_t * val) 28 | { 29 | if(id == _UI_IMAGE_PROPERTY_IMAGE) lv_img_set_src(target, val); 30 | } 31 | 32 | void _ui_label_set_property(lv_obj_t * target, int id, const char * val) 33 | { 34 | if(id == _UI_LABEL_PROPERTY_TEXT) lv_label_set_text(target, val); 35 | } 36 | 37 | void _ui_roller_set_property(lv_obj_t * target, int id, int val) 38 | { 39 | if(id == _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM) lv_roller_set_selected(target, val, LV_ANIM_ON); 40 | if(id == _UI_ROLLER_PROPERTY_SELECTED) lv_roller_set_selected(target, val, LV_ANIM_OFF); 41 | } 42 | 43 | void _ui_slider_set_property(lv_obj_t * target, int id, int val) 44 | { 45 | if(id == _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM) lv_slider_set_value(target, val, LV_ANIM_ON); 46 | if(id == _UI_SLIDER_PROPERTY_VALUE) lv_slider_set_value(target, val, LV_ANIM_OFF); 47 | } 48 | 49 | void _ui_screen_change(lv_obj_t ** target, lv_scr_load_anim_t fademode, int spd, int delay, void (*target_init)(void)) 50 | { 51 | if(*target == NULL) 52 | target_init(); 53 | lv_scr_load_anim(*target, fademode, spd, delay, false); 54 | } 55 | 56 | void _ui_screen_delete(lv_obj_t ** target) 57 | { 58 | if(*target == NULL) { 59 | lv_obj_del(*target); 60 | target = NULL; 61 | } 62 | } 63 | 64 | void _ui_arc_increment(lv_obj_t * target, int val) 65 | { 66 | int old = lv_arc_get_value(target); 67 | lv_arc_set_value(target, old + val); 68 | lv_event_send(target, LV_EVENT_VALUE_CHANGED, 0); 69 | } 70 | 71 | void _ui_bar_increment(lv_obj_t * target, int val, int anm) 72 | { 73 | int old = lv_bar_get_value(target); 74 | lv_bar_set_value(target, old + val, anm); 75 | } 76 | 77 | void _ui_slider_increment(lv_obj_t * target, int val, int anm) 78 | { 79 | int old = lv_slider_get_value(target); 80 | lv_slider_set_value(target, old + val, anm); 81 | lv_event_send(target, LV_EVENT_VALUE_CHANGED, 0); 82 | } 83 | 84 | void _ui_keyboard_set_target(lv_obj_t * keyboard, lv_obj_t * textarea) 85 | { 86 | lv_keyboard_set_textarea(keyboard, textarea); 87 | } 88 | 89 | void _ui_flag_modify(lv_obj_t * target, int32_t flag, int value) 90 | { 91 | if(value == _UI_MODIFY_FLAG_TOGGLE) { 92 | if(lv_obj_has_flag(target, flag)) lv_obj_clear_flag(target, flag); 93 | else lv_obj_add_flag(target, flag); 94 | } 95 | else if(value == _UI_MODIFY_FLAG_ADD) lv_obj_add_flag(target, flag); 96 | else lv_obj_clear_flag(target, flag); 97 | } 98 | void _ui_state_modify(lv_obj_t * target, int32_t state, int value) 99 | { 100 | if(value == _UI_MODIFY_STATE_TOGGLE) { 101 | if(lv_obj_has_state(target, state)) lv_obj_clear_state(target, state); 102 | else lv_obj_add_state(target, state); 103 | } 104 | else if(value == _UI_MODIFY_STATE_ADD) lv_obj_add_state(target, state); 105 | else lv_obj_clear_state(target, state); 106 | } 107 | 108 | void scr_unloaded_delete_cb(lv_event_t * e) 109 | { 110 | lv_obj_t ** var = lv_event_get_user_data(e); 111 | lv_obj_del(*var); 112 | (*var) = NULL; 113 | } 114 | 115 | void _ui_opacity_set(lv_obj_t * target, int val) 116 | { 117 | lv_obj_set_style_opa(target, val, 0); 118 | } 119 | 120 | void _ui_anim_callback_free_user_data(lv_anim_t * a) 121 | { 122 | lv_mem_free(a->user_data); 123 | a->user_data = NULL; 124 | } 125 | 126 | void _ui_anim_callback_set_x(lv_anim_t * a, int32_t v) 127 | { 128 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 129 | lv_obj_set_x(usr->target, v); 130 | } 131 | 132 | void _ui_anim_callback_set_y(lv_anim_t * a, int32_t v) 133 | { 134 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 135 | lv_obj_set_y(usr->target, v); 136 | } 137 | 138 | void _ui_anim_callback_set_width(lv_anim_t * a, int32_t v) 139 | { 140 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 141 | lv_obj_set_width(usr->target, v); 142 | } 143 | 144 | void _ui_anim_callback_set_height(lv_anim_t * a, int32_t v) 145 | { 146 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 147 | lv_obj_set_height(usr->target, v); 148 | } 149 | 150 | void _ui_anim_callback_set_opacity(lv_anim_t * a, int32_t v) 151 | { 152 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 153 | lv_obj_set_style_opa(usr->target, v, 0); 154 | } 155 | 156 | void _ui_anim_callback_set_image_zoom(lv_anim_t * a, int32_t v) 157 | { 158 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 159 | lv_img_set_zoom(usr->target, v); 160 | } 161 | 162 | void _ui_anim_callback_set_image_angle(lv_anim_t * a, int32_t v) 163 | { 164 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 165 | lv_img_set_angle(usr->target, v); 166 | } 167 | 168 | void _ui_anim_callback_set_image_frame(lv_anim_t * a, int32_t v) 169 | { 170 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 171 | usr->val = v; 172 | if(v < 0) v = 0; 173 | if(v >= usr->imgset_size) v = usr->imgset_size - 1; 174 | lv_img_set_src(usr->target, usr->imgset[v]); 175 | } 176 | 177 | int32_t _ui_anim_callback_get_x(lv_anim_t * a) 178 | { 179 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 180 | return lv_obj_get_x_aligned(usr->target); 181 | } 182 | 183 | int32_t _ui_anim_callback_get_y(lv_anim_t * a) 184 | { 185 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 186 | return lv_obj_get_y_aligned(usr->target); 187 | } 188 | 189 | int32_t _ui_anim_callback_get_width(lv_anim_t * a) 190 | { 191 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 192 | return lv_obj_get_width(usr->target); 193 | } 194 | 195 | int32_t _ui_anim_callback_get_height(lv_anim_t * a) 196 | { 197 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 198 | return lv_obj_get_height(usr->target); 199 | } 200 | 201 | int32_t _ui_anim_callback_get_opacity(lv_anim_t * a) 202 | { 203 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 204 | return lv_obj_get_style_opa(usr->target, 0); 205 | } 206 | 207 | int32_t _ui_anim_callback_get_image_zoom(lv_anim_t * a) 208 | { 209 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 210 | return lv_img_get_zoom(usr->target); 211 | } 212 | 213 | int32_t _ui_anim_callback_get_image_angle(lv_anim_t * a) 214 | { 215 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 216 | return lv_img_get_angle(usr->target); 217 | } 218 | 219 | int32_t _ui_anim_callback_get_image_frame(lv_anim_t * a) 220 | { 221 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 222 | return usr->val; 223 | } 224 | 225 | void _ui_arc_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix) 226 | { 227 | char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE]; 228 | lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_arc_get_value(src), postfix); 229 | lv_label_set_text(trg, buf); 230 | } 231 | 232 | void _ui_slider_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix) 233 | { 234 | char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE]; 235 | lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_slider_get_value(src), postfix); 236 | lv_label_set_text(trg, buf); 237 | } 238 | void _ui_checked_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * txt_on, const char * txt_off) 239 | { 240 | if(lv_obj_has_state(src, LV_STATE_CHECKED)) lv_label_set_text(trg, txt_on); 241 | else lv_label_set_text(trg, txt_off); 242 | } 243 | 244 | void _ui_spinbox_step(lv_obj_t * target, int val) 245 | { 246 | if(val > 0) lv_spinbox_increment(target); 247 | else lv_spinbox_decrement(target); 248 | 249 | lv_event_send(target, LV_EVENT_VALUE_CHANGED, 0); 250 | } 251 | 252 | -------------------------------------------------------------------------------- /C6example/Display_ST7789.cpp: -------------------------------------------------------------------------------- 1 | #include "Display_ST7789.h" 2 | 3 | #define SPI_WRITE(_dat) SPI.transfer(_dat) 4 | #define SPI_WRITE_Word(_dat) SPI.transfer16(_dat) 5 | 6 | int Offset_X=34; 7 | int Offset_Y=0; 8 | 9 | 10 | 11 | void SPI_Init() 12 | { 13 | SPI.begin(EXAMPLE_PIN_NUM_SCLK,EXAMPLE_PIN_NUM_MISO,EXAMPLE_PIN_NUM_MOSI); 14 | } 15 | 16 | void LCD_WriteCommand(uint8_t Cmd) 17 | { 18 | SPI.beginTransaction(SPISettings(SPIFreq, MSBFIRST, SPI_MODE0)); 19 | digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, LOW); 20 | digitalWrite(EXAMPLE_PIN_NUM_LCD_DC, LOW); 21 | SPI_WRITE(Cmd); 22 | digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, HIGH); 23 | SPI.endTransaction(); 24 | } 25 | void LCD_WriteData(uint8_t Data) 26 | { 27 | SPI.beginTransaction(SPISettings(SPIFreq, MSBFIRST, SPI_MODE0)); 28 | digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, LOW); 29 | digitalWrite(EXAMPLE_PIN_NUM_LCD_DC, HIGH); 30 | SPI_WRITE(Data); 31 | digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, HIGH); 32 | SPI.endTransaction(); 33 | } 34 | void LCD_WriteData_Word(uint16_t Data) 35 | { 36 | SPI.beginTransaction(SPISettings(SPIFreq, MSBFIRST, SPI_MODE0)); 37 | digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, LOW); 38 | digitalWrite(EXAMPLE_PIN_NUM_LCD_DC, HIGH); 39 | SPI_WRITE_Word(Data); 40 | digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, HIGH); 41 | SPI.endTransaction(); 42 | } 43 | void LCD_WriteData_nbyte(uint8_t* SetData,uint8_t* ReadData,uint32_t Size) 44 | { 45 | SPI.beginTransaction(SPISettings(SPIFreq, MSBFIRST, SPI_MODE0)); 46 | digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, LOW); 47 | digitalWrite(EXAMPLE_PIN_NUM_LCD_DC, HIGH); 48 | SPI.transferBytes(SetData, ReadData, Size); 49 | digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, HIGH); 50 | SPI.endTransaction(); 51 | } 52 | 53 | void LCD_Reset(void) 54 | { 55 | digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, LOW); 56 | delay(50); 57 | digitalWrite(EXAMPLE_PIN_NUM_LCD_RST, LOW); 58 | delay(50); 59 | digitalWrite(EXAMPLE_PIN_NUM_LCD_RST, HIGH); 60 | delay(50); 61 | } 62 | 63 | void SetOrientation(uint8_t orientation) 64 | { 65 | uint8_t madctl = 0; 66 | 67 | switch (orientation) 68 | { 69 | case VERTICAL: // Portrait 70 | madctl = 0x00; // MY=0, MX=0, MV=0 71 | Offset_X = 34; 72 | Offset_Y = 0; 73 | break; 74 | case HORIZONTAL: // Landscape 75 | madctl = 0x60; // MY=0, MX=1, MV=1 76 | Offset_X = 0; 77 | Offset_Y = 34; 78 | break; 79 | case 2: // Inverted Portrait 80 | madctl = 0xC0; // MY=1, MX=1, MV=0 81 | Offset_X = 34; 82 | Offset_Y = 0; 83 | break; 84 | case 3: // Inverted Landscape 85 | madctl = 0xA0; // MY=1, MX=0, MV=1 86 | Offset_X = 0; 87 | Offset_Y = 34; 88 | break; 89 | default: 90 | return; // Invalid orientation 91 | } 92 | 93 | LCD_WriteCommand(0x36); 94 | LCD_WriteData(madctl); 95 | } 96 | void LCD_Init(void) 97 | { 98 | pinMode(EXAMPLE_PIN_NUM_LCD_CS, OUTPUT); 99 | pinMode(EXAMPLE_PIN_NUM_LCD_DC, OUTPUT); 100 | pinMode(EXAMPLE_PIN_NUM_LCD_RST, OUTPUT); 101 | Backlight_Init(); 102 | SPI_Init(); 103 | 104 | LCD_Reset(); 105 | //************* Start Initial Sequence **********// 106 | LCD_WriteCommand(0x11); 107 | delay(120); 108 | LCD_WriteCommand(0x36); 109 | 110 | SetOrientation(HORIZONTAL); // Change to VERTICAL if needed 111 | 112 | LCD_WriteCommand(0x3A); 113 | LCD_WriteData(0x05); 114 | 115 | LCD_WriteCommand(0xB0); 116 | LCD_WriteData(0x00); 117 | LCD_WriteData(0xE8); 118 | 119 | LCD_WriteCommand(0xB2); 120 | LCD_WriteData(0x0C); 121 | LCD_WriteData(0x0C); 122 | LCD_WriteData(0x00); 123 | LCD_WriteData(0x33); 124 | LCD_WriteData(0x33); 125 | 126 | LCD_WriteCommand(0xB7); 127 | LCD_WriteData(0x35); 128 | 129 | LCD_WriteCommand(0xBB); 130 | LCD_WriteData(0x35); 131 | 132 | LCD_WriteCommand(0xC0); 133 | LCD_WriteData(0x2C); 134 | 135 | LCD_WriteCommand(0xC2); 136 | LCD_WriteData(0x01); 137 | 138 | LCD_WriteCommand(0xC3); 139 | LCD_WriteData(0x13); 140 | 141 | LCD_WriteCommand(0xC4); 142 | LCD_WriteData(0x20); 143 | 144 | LCD_WriteCommand(0xC6); 145 | LCD_WriteData(0x0F); 146 | 147 | LCD_WriteCommand(0xD0); 148 | LCD_WriteData(0xA4); 149 | LCD_WriteData(0xA1); 150 | 151 | LCD_WriteCommand(0xD6); 152 | LCD_WriteData(0xA1); 153 | 154 | LCD_WriteCommand(0xE0); 155 | LCD_WriteData(0xF0); 156 | LCD_WriteData(0x00); 157 | LCD_WriteData(0x04); 158 | LCD_WriteData(0x04); 159 | LCD_WriteData(0x04); 160 | LCD_WriteData(0x05); 161 | LCD_WriteData(0x29); 162 | LCD_WriteData(0x33); 163 | LCD_WriteData(0x3E); 164 | LCD_WriteData(0x38); 165 | LCD_WriteData(0x12); 166 | LCD_WriteData(0x12); 167 | LCD_WriteData(0x28); 168 | LCD_WriteData(0x30); 169 | 170 | LCD_WriteCommand(0xE1); 171 | LCD_WriteData(0xF0); 172 | LCD_WriteData(0x07); 173 | LCD_WriteData(0x0A); 174 | LCD_WriteData(0x0D); 175 | LCD_WriteData(0x0B); 176 | LCD_WriteData(0x07); 177 | LCD_WriteData(0x28); 178 | LCD_WriteData(0x33); 179 | LCD_WriteData(0x3E); 180 | LCD_WriteData(0x36); 181 | LCD_WriteData(0x14); 182 | LCD_WriteData(0x14); 183 | LCD_WriteData(0x29); 184 | LCD_WriteData(0x32); 185 | 186 | LCD_WriteCommand(0x21); 187 | 188 | LCD_WriteCommand(0x11); 189 | delay(120); 190 | LCD_WriteCommand(0x29); 191 | } 192 | /****************************************************************************** 193 | function: Set the cursor position 194 | parameter : 195 | Xstart: Start uint16_t x coordinate 196 | Ystart: Start uint16_t y coordinate 197 | Xend : End uint16_t coordinates 198 | Yend : End uint16_t coordinatesen 199 | ******************************************************************************/ 200 | void LCD_SetCursor(uint16_t Xstart, uint16_t Ystart, uint16_t Xend, uint16_t Yend) 201 | { 202 | if (HORIZONTAL) { 203 | // set the X coordinates 204 | LCD_WriteCommand(0x2A); 205 | LCD_WriteData(Xstart >> 8); 206 | LCD_WriteData(Xstart + Offset_X); 207 | LCD_WriteData(Xend >> 8); 208 | LCD_WriteData(Xend + Offset_X); 209 | 210 | // set the Y coordinates 211 | LCD_WriteCommand(0x2B); 212 | LCD_WriteData(Ystart >> 8); 213 | LCD_WriteData(Ystart + Offset_Y); 214 | LCD_WriteData(Yend >> 8); 215 | LCD_WriteData(Yend + Offset_Y); 216 | } 217 | else { 218 | // set the X coordinates 219 | LCD_WriteCommand(0x2A); 220 | LCD_WriteData(Ystart >> 8); 221 | LCD_WriteData(Ystart + Offset_Y); 222 | LCD_WriteData(Yend >> 8); 223 | LCD_WriteData(Yend + Offset_Y); 224 | // set the Y coordinates 225 | LCD_WriteCommand(0x2B); 226 | LCD_WriteData(Xstart >> 8); 227 | LCD_WriteData(Xstart + Offset_X); 228 | LCD_WriteData(Xend >> 8); 229 | LCD_WriteData(Xend + Offset_X); 230 | } 231 | LCD_WriteCommand(0x2C); 232 | } 233 | /****************************************************************************** 234 | function: Refresh the image in an area 235 | parameter : 236 | Xstart: Start uint16_t x coordinate 237 | Ystart: Start uint16_t y coordinate 238 | Xend : End uint16_t coordinates 239 | Yend : End uint16_t coordinates 240 | color : Set the color 241 | ******************************************************************************/ 242 | void LCD_addWindow(uint16_t Xstart, uint16_t Ystart, uint16_t Xend, uint16_t Yend,uint16_t* color) 243 | { 244 | // uint16_t i,j; 245 | // LCD_SetCursor(Xstart, Ystart, Xend,Yend); 246 | // uint16_t Show_Width = Xend - Xstart + 1; 247 | // uint16_t Show_Height = Yend - Ystart + 1; 248 | // for(i = 0; i < Show_Height; i++){ 249 | // for(j = 0; j < Show_Width; j++){ 250 | // LCD_WriteData_Word(color[(i*(Show_Width))+j]); 251 | // } 252 | // } 253 | uint16_t Show_Width = Xend - Xstart + 1; 254 | uint16_t Show_Height = Yend - Ystart + 1; 255 | uint32_t numBytes = Show_Width * Show_Height * sizeof(uint16_t); 256 | uint8_t Read_D[numBytes]; 257 | LCD_SetCursor(Xstart, Ystart, Xend, Yend); 258 | LCD_WriteData_nbyte((uint8_t*)color, Read_D, numBytes); 259 | } 260 | // backlight 261 | void Backlight_Init(void) 262 | { 263 | ledcAttach(EXAMPLE_PIN_NUM_BK_LIGHT, Frequency, Resolution); 264 | ledcWrite(EXAMPLE_PIN_NUM_BK_LIGHT, 100); 265 | } 266 | 267 | void Set_Backlight(uint8_t Light) // 268 | { 269 | 270 | if(Light > 100 || Light < 0) 271 | printf("Set Backlight parameters in the range of 0 to 100 \r\n"); 272 | else{ 273 | uint32_t Backlight = Light*10; 274 | ledcWrite(EXAMPLE_PIN_NUM_BK_LIGHT, Backlight); 275 | } 276 | } 277 | 278 | 279 | 280 | 281 | 282 | 283 | -------------------------------------------------------------------------------- /C6example/ui_helpers.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.4.1 3 | // LVGL version: 8.3.11 4 | // Project name: SquareLine_Project 5 | 6 | #include "ui_helpers.h" 7 | 8 | void _ui_bar_set_property( lv_obj_t *target, int id, int val) 9 | { 10 | if (id == _UI_BAR_PROPERTY_VALUE_WITH_ANIM) lv_bar_set_value(target, val, LV_ANIM_ON); 11 | if (id == _UI_BAR_PROPERTY_VALUE) lv_bar_set_value(target, val, LV_ANIM_OFF); 12 | } 13 | 14 | void _ui_basic_set_property( lv_obj_t *target, int id, int val) 15 | { 16 | if (id == _UI_BASIC_PROPERTY_POSITION_X) lv_obj_set_x(target, val); 17 | if (id == _UI_BASIC_PROPERTY_POSITION_Y) lv_obj_set_y(target, val); 18 | if (id == _UI_BASIC_PROPERTY_WIDTH) lv_obj_set_width(target, val); 19 | if (id == _UI_BASIC_PROPERTY_HEIGHT) lv_obj_set_height(target, val); 20 | } 21 | 22 | 23 | void _ui_dropdown_set_property( lv_obj_t *target, int id, int val) 24 | { 25 | if (id == _UI_DROPDOWN_PROPERTY_SELECTED) lv_dropdown_set_selected(target, val); 26 | } 27 | 28 | void _ui_image_set_property( lv_obj_t *target, int id, uint8_t *val) 29 | { 30 | if (id == _UI_IMAGE_PROPERTY_IMAGE) lv_img_set_src(target, val); 31 | } 32 | 33 | void _ui_label_set_property( lv_obj_t *target, int id, const char *val) 34 | { 35 | if (id == _UI_LABEL_PROPERTY_TEXT) lv_label_set_text(target, val); 36 | } 37 | 38 | 39 | void _ui_roller_set_property( lv_obj_t *target, int id, int val) 40 | { 41 | if (id == _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM) lv_roller_set_selected(target, val, LV_ANIM_ON); 42 | if (id == _UI_ROLLER_PROPERTY_SELECTED) lv_roller_set_selected(target, val, LV_ANIM_OFF); 43 | } 44 | 45 | void _ui_slider_set_property( lv_obj_t *target, int id, int val) 46 | { 47 | if (id == _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM) lv_slider_set_value(target, val, LV_ANIM_ON); 48 | if (id == _UI_SLIDER_PROPERTY_VALUE) lv_slider_set_value(target, val, LV_ANIM_OFF); 49 | } 50 | 51 | 52 | void _ui_screen_change( lv_obj_t ** target, lv_scr_load_anim_t fademode, int spd, int delay, void (*target_init)(void)) 53 | { 54 | if(*target == NULL) 55 | target_init(); 56 | lv_scr_load_anim(*target, fademode, spd, delay, false); 57 | } 58 | 59 | void _ui_screen_delete( lv_obj_t ** target ) 60 | { 61 | if(*target == NULL) 62 | { 63 | lv_obj_del(*target); 64 | target = NULL; 65 | } 66 | } 67 | 68 | void _ui_arc_increment( lv_obj_t *target, int val) 69 | { 70 | int old = lv_arc_get_value(target); 71 | lv_arc_set_value(target, old+val); 72 | lv_event_send(target,LV_EVENT_VALUE_CHANGED, 0); 73 | } 74 | 75 | void _ui_bar_increment( lv_obj_t *target, int val, int anm) 76 | { 77 | int old = lv_bar_get_value(target); 78 | lv_bar_set_value(target, old+val, anm); 79 | } 80 | 81 | void _ui_slider_increment( lv_obj_t *target, int val, int anm) 82 | { 83 | int old = lv_slider_get_value(target); 84 | lv_slider_set_value(target, old+val, anm); 85 | lv_event_send(target,LV_EVENT_VALUE_CHANGED, 0); 86 | } 87 | 88 | void _ui_keyboard_set_target( lv_obj_t *keyboard, lv_obj_t *textarea) 89 | { 90 | lv_keyboard_set_textarea(keyboard, textarea); 91 | } 92 | 93 | void _ui_flag_modify( lv_obj_t *target, int32_t flag, int value) 94 | { 95 | if (value==_UI_MODIFY_FLAG_TOGGLE) 96 | { 97 | if ( lv_obj_has_flag(target,flag) ) lv_obj_clear_flag(target,flag); 98 | else lv_obj_add_flag(target,flag); 99 | } 100 | else if (value==_UI_MODIFY_FLAG_ADD) lv_obj_add_flag(target,flag); 101 | else lv_obj_clear_flag(target,flag); 102 | } 103 | void _ui_state_modify( lv_obj_t *target, int32_t state, int value) 104 | { 105 | if (value==_UI_MODIFY_STATE_TOGGLE) 106 | { 107 | if ( lv_obj_has_state(target,state) ) lv_obj_clear_state(target,state); 108 | else lv_obj_add_state(target,state); 109 | } 110 | else if (value==_UI_MODIFY_STATE_ADD) lv_obj_add_state(target,state); 111 | else lv_obj_clear_state(target,state); 112 | } 113 | 114 | 115 | void _ui_textarea_move_cursor(lv_obj_t * target, int val) 116 | { 117 | if (val==UI_MOVE_CURSOR_UP) lv_textarea_cursor_up(target); 118 | if (val==UI_MOVE_CURSOR_RIGHT) lv_textarea_cursor_right(target); 119 | if (val==UI_MOVE_CURSOR_DOWN) lv_textarea_cursor_down(target); 120 | if (val==UI_MOVE_CURSOR_LEFT) lv_textarea_cursor_left(target); 121 | lv_obj_add_state(target, LV_STATE_FOCUSED); 122 | } 123 | 124 | void scr_unloaded_delete_cb(lv_event_t * e) 125 | { 126 | lv_obj_t ** var = lv_event_get_user_data(e); 127 | lv_obj_del(*var); 128 | (*var) = NULL; 129 | } 130 | 131 | void _ui_opacity_set( lv_obj_t *target, int val) 132 | { 133 | lv_obj_set_style_opa(target, val, 0); 134 | } 135 | 136 | void _ui_anim_callback_free_user_data(lv_anim_t *a) 137 | { 138 | lv_mem_free(a->user_data); 139 | a->user_data=NULL; 140 | } 141 | 142 | void _ui_anim_callback_set_x(lv_anim_t* a, int32_t v) 143 | { 144 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 145 | lv_obj_set_x(usr->target, v); 146 | } 147 | 148 | void _ui_anim_callback_set_y(lv_anim_t* a, int32_t v) 149 | { 150 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 151 | lv_obj_set_y(usr->target, v); 152 | } 153 | 154 | void _ui_anim_callback_set_width(lv_anim_t* a, int32_t v) 155 | { 156 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 157 | lv_obj_set_width(usr->target, v); 158 | } 159 | 160 | void _ui_anim_callback_set_height(lv_anim_t* a, int32_t v) 161 | { 162 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 163 | lv_obj_set_height(usr->target, v); 164 | } 165 | 166 | void _ui_anim_callback_set_opacity(lv_anim_t* a, int32_t v) 167 | { 168 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 169 | lv_obj_set_style_opa(usr->target, v, 0); 170 | } 171 | 172 | void _ui_anim_callback_set_image_zoom(lv_anim_t* a, int32_t v) 173 | { 174 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 175 | lv_img_set_zoom(usr->target, v); 176 | } 177 | 178 | void _ui_anim_callback_set_image_angle(lv_anim_t* a, int32_t v) 179 | { 180 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 181 | lv_img_set_angle(usr->target, v); 182 | } 183 | 184 | void _ui_anim_callback_set_image_frame(lv_anim_t* a, int32_t v) 185 | { 186 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 187 | usr->val = v; 188 | if ( v<0 ) v=0; 189 | if ( v>=usr->imgset_size ) v=usr->imgset_size-1; 190 | lv_img_set_src(usr->target, usr->imgset[v]); 191 | } 192 | 193 | int32_t _ui_anim_callback_get_x(lv_anim_t* a) 194 | { 195 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 196 | return lv_obj_get_x_aligned(usr->target); 197 | } 198 | 199 | int32_t _ui_anim_callback_get_y(lv_anim_t* a) 200 | { 201 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 202 | return lv_obj_get_y_aligned(usr->target); 203 | } 204 | 205 | int32_t _ui_anim_callback_get_width(lv_anim_t* a) 206 | { 207 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 208 | return lv_obj_get_width(usr->target); 209 | } 210 | 211 | int32_t _ui_anim_callback_get_height(lv_anim_t* a) 212 | { 213 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 214 | return lv_obj_get_height(usr->target); 215 | } 216 | 217 | int32_t _ui_anim_callback_get_opacity(lv_anim_t* a) 218 | { 219 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 220 | return lv_obj_get_style_opa(usr->target, 0); 221 | } 222 | 223 | int32_t _ui_anim_callback_get_image_zoom(lv_anim_t* a) 224 | { 225 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 226 | return lv_img_get_zoom(usr->target); 227 | } 228 | 229 | int32_t _ui_anim_callback_get_image_angle(lv_anim_t* a) 230 | { 231 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 232 | return lv_img_get_angle(usr->target); 233 | } 234 | 235 | int32_t _ui_anim_callback_get_image_frame(lv_anim_t* a) 236 | { 237 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 238 | return usr->val; 239 | } 240 | 241 | void _ui_arc_set_text_value( lv_obj_t *trg, lv_obj_t *src, const char *prefix, const char *postfix) 242 | { 243 | char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE]; 244 | lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_arc_get_value(src), postfix); 245 | lv_label_set_text(trg, buf); 246 | } 247 | 248 | void _ui_slider_set_text_value( lv_obj_t *trg, lv_obj_t *src, const char *prefix, const char *postfix) 249 | { 250 | char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE]; 251 | lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_slider_get_value(src), postfix); 252 | lv_label_set_text(trg, buf); 253 | } 254 | void _ui_checked_set_text_value( lv_obj_t *trg, lv_obj_t *src, const char *txt_on, const char *txt_off) 255 | { 256 | if (lv_obj_has_state(src,LV_STATE_CHECKED)) lv_label_set_text(trg,txt_on); 257 | else lv_label_set_text(trg,txt_off); 258 | } 259 | 260 | 261 | void _ui_spinbox_step(lv_obj_t * target, int val) 262 | { 263 | if(val > 0) lv_spinbox_increment(target); 264 | else lv_spinbox_decrement(target); 265 | 266 | lv_event_send(target,LV_EVENT_VALUE_CHANGED, 0); 267 | } 268 | 269 | void _ui_switch_theme(int val) 270 | { 271 | #ifdef UI_THEME_ACTIVE 272 | ui_theme_set(val); 273 | #endif 274 | } 275 | 276 | 277 | -------------------------------------------------------------------------------- /C6example/UI/ui_helpers.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.4.1 3 | // LVGL version: 8.3.11 4 | // Project name: SquareLine_Project 5 | 6 | #include "ui_helpers.h" 7 | 8 | void _ui_bar_set_property( lv_obj_t *target, int id, int val) 9 | { 10 | if (id == _UI_BAR_PROPERTY_VALUE_WITH_ANIM) lv_bar_set_value(target, val, LV_ANIM_ON); 11 | if (id == _UI_BAR_PROPERTY_VALUE) lv_bar_set_value(target, val, LV_ANIM_OFF); 12 | } 13 | 14 | void _ui_basic_set_property( lv_obj_t *target, int id, int val) 15 | { 16 | if (id == _UI_BASIC_PROPERTY_POSITION_X) lv_obj_set_x(target, val); 17 | if (id == _UI_BASIC_PROPERTY_POSITION_Y) lv_obj_set_y(target, val); 18 | if (id == _UI_BASIC_PROPERTY_WIDTH) lv_obj_set_width(target, val); 19 | if (id == _UI_BASIC_PROPERTY_HEIGHT) lv_obj_set_height(target, val); 20 | } 21 | 22 | 23 | void _ui_dropdown_set_property( lv_obj_t *target, int id, int val) 24 | { 25 | if (id == _UI_DROPDOWN_PROPERTY_SELECTED) lv_dropdown_set_selected(target, val); 26 | } 27 | 28 | void _ui_image_set_property( lv_obj_t *target, int id, uint8_t *val) 29 | { 30 | if (id == _UI_IMAGE_PROPERTY_IMAGE) lv_img_set_src(target, val); 31 | } 32 | 33 | void _ui_label_set_property( lv_obj_t *target, int id, const char *val) 34 | { 35 | if (id == _UI_LABEL_PROPERTY_TEXT) lv_label_set_text(target, val); 36 | } 37 | 38 | 39 | void _ui_roller_set_property( lv_obj_t *target, int id, int val) 40 | { 41 | if (id == _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM) lv_roller_set_selected(target, val, LV_ANIM_ON); 42 | if (id == _UI_ROLLER_PROPERTY_SELECTED) lv_roller_set_selected(target, val, LV_ANIM_OFF); 43 | } 44 | 45 | void _ui_slider_set_property( lv_obj_t *target, int id, int val) 46 | { 47 | if (id == _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM) lv_slider_set_value(target, val, LV_ANIM_ON); 48 | if (id == _UI_SLIDER_PROPERTY_VALUE) lv_slider_set_value(target, val, LV_ANIM_OFF); 49 | } 50 | 51 | 52 | void _ui_screen_change( lv_obj_t ** target, lv_scr_load_anim_t fademode, int spd, int delay, void (*target_init)(void)) 53 | { 54 | if(*target == NULL) 55 | target_init(); 56 | lv_scr_load_anim(*target, fademode, spd, delay, false); 57 | } 58 | 59 | void _ui_screen_delete( lv_obj_t ** target ) 60 | { 61 | if(*target == NULL) 62 | { 63 | lv_obj_del(*target); 64 | target = NULL; 65 | } 66 | } 67 | 68 | void _ui_arc_increment( lv_obj_t *target, int val) 69 | { 70 | int old = lv_arc_get_value(target); 71 | lv_arc_set_value(target, old+val); 72 | lv_event_send(target,LV_EVENT_VALUE_CHANGED, 0); 73 | } 74 | 75 | void _ui_bar_increment( lv_obj_t *target, int val, int anm) 76 | { 77 | int old = lv_bar_get_value(target); 78 | lv_bar_set_value(target, old+val, anm); 79 | } 80 | 81 | void _ui_slider_increment( lv_obj_t *target, int val, int anm) 82 | { 83 | int old = lv_slider_get_value(target); 84 | lv_slider_set_value(target, old+val, anm); 85 | lv_event_send(target,LV_EVENT_VALUE_CHANGED, 0); 86 | } 87 | 88 | void _ui_keyboard_set_target( lv_obj_t *keyboard, lv_obj_t *textarea) 89 | { 90 | lv_keyboard_set_textarea(keyboard, textarea); 91 | } 92 | 93 | void _ui_flag_modify( lv_obj_t *target, int32_t flag, int value) 94 | { 95 | if (value==_UI_MODIFY_FLAG_TOGGLE) 96 | { 97 | if ( lv_obj_has_flag(target,flag) ) lv_obj_clear_flag(target,flag); 98 | else lv_obj_add_flag(target,flag); 99 | } 100 | else if (value==_UI_MODIFY_FLAG_ADD) lv_obj_add_flag(target,flag); 101 | else lv_obj_clear_flag(target,flag); 102 | } 103 | void _ui_state_modify( lv_obj_t *target, int32_t state, int value) 104 | { 105 | if (value==_UI_MODIFY_STATE_TOGGLE) 106 | { 107 | if ( lv_obj_has_state(target,state) ) lv_obj_clear_state(target,state); 108 | else lv_obj_add_state(target,state); 109 | } 110 | else if (value==_UI_MODIFY_STATE_ADD) lv_obj_add_state(target,state); 111 | else lv_obj_clear_state(target,state); 112 | } 113 | 114 | 115 | void _ui_textarea_move_cursor(lv_obj_t * target, int val) 116 | { 117 | if (val==UI_MOVE_CURSOR_UP) lv_textarea_cursor_up(target); 118 | if (val==UI_MOVE_CURSOR_RIGHT) lv_textarea_cursor_right(target); 119 | if (val==UI_MOVE_CURSOR_DOWN) lv_textarea_cursor_down(target); 120 | if (val==UI_MOVE_CURSOR_LEFT) lv_textarea_cursor_left(target); 121 | lv_obj_add_state(target, LV_STATE_FOCUSED); 122 | } 123 | 124 | void scr_unloaded_delete_cb(lv_event_t * e) 125 | { 126 | lv_obj_t ** var = lv_event_get_user_data(e); 127 | lv_obj_del(*var); 128 | (*var) = NULL; 129 | } 130 | 131 | void _ui_opacity_set( lv_obj_t *target, int val) 132 | { 133 | lv_obj_set_style_opa(target, val, 0); 134 | } 135 | 136 | void _ui_anim_callback_free_user_data(lv_anim_t *a) 137 | { 138 | lv_mem_free(a->user_data); 139 | a->user_data=NULL; 140 | } 141 | 142 | void _ui_anim_callback_set_x(lv_anim_t* a, int32_t v) 143 | { 144 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 145 | lv_obj_set_x(usr->target, v); 146 | } 147 | 148 | void _ui_anim_callback_set_y(lv_anim_t* a, int32_t v) 149 | { 150 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 151 | lv_obj_set_y(usr->target, v); 152 | } 153 | 154 | void _ui_anim_callback_set_width(lv_anim_t* a, int32_t v) 155 | { 156 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 157 | lv_obj_set_width(usr->target, v); 158 | } 159 | 160 | void _ui_anim_callback_set_height(lv_anim_t* a, int32_t v) 161 | { 162 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 163 | lv_obj_set_height(usr->target, v); 164 | } 165 | 166 | void _ui_anim_callback_set_opacity(lv_anim_t* a, int32_t v) 167 | { 168 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 169 | lv_obj_set_style_opa(usr->target, v, 0); 170 | } 171 | 172 | void _ui_anim_callback_set_image_zoom(lv_anim_t* a, int32_t v) 173 | { 174 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 175 | lv_img_set_zoom(usr->target, v); 176 | } 177 | 178 | void _ui_anim_callback_set_image_angle(lv_anim_t* a, int32_t v) 179 | { 180 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 181 | lv_img_set_angle(usr->target, v); 182 | } 183 | 184 | void _ui_anim_callback_set_image_frame(lv_anim_t* a, int32_t v) 185 | { 186 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 187 | usr->val = v; 188 | if ( v<0 ) v=0; 189 | if ( v>=usr->imgset_size ) v=usr->imgset_size-1; 190 | lv_img_set_src(usr->target, usr->imgset[v]); 191 | } 192 | 193 | int32_t _ui_anim_callback_get_x(lv_anim_t* a) 194 | { 195 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 196 | return lv_obj_get_x_aligned(usr->target); 197 | } 198 | 199 | int32_t _ui_anim_callback_get_y(lv_anim_t* a) 200 | { 201 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 202 | return lv_obj_get_y_aligned(usr->target); 203 | } 204 | 205 | int32_t _ui_anim_callback_get_width(lv_anim_t* a) 206 | { 207 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 208 | return lv_obj_get_width(usr->target); 209 | } 210 | 211 | int32_t _ui_anim_callback_get_height(lv_anim_t* a) 212 | { 213 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 214 | return lv_obj_get_height(usr->target); 215 | } 216 | 217 | int32_t _ui_anim_callback_get_opacity(lv_anim_t* a) 218 | { 219 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 220 | return lv_obj_get_style_opa(usr->target, 0); 221 | } 222 | 223 | int32_t _ui_anim_callback_get_image_zoom(lv_anim_t* a) 224 | { 225 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 226 | return lv_img_get_zoom(usr->target); 227 | } 228 | 229 | int32_t _ui_anim_callback_get_image_angle(lv_anim_t* a) 230 | { 231 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 232 | return lv_img_get_angle(usr->target); 233 | } 234 | 235 | int32_t _ui_anim_callback_get_image_frame(lv_anim_t* a) 236 | { 237 | ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data; 238 | return usr->val; 239 | } 240 | 241 | void _ui_arc_set_text_value( lv_obj_t *trg, lv_obj_t *src, const char *prefix, const char *postfix) 242 | { 243 | char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE]; 244 | lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_arc_get_value(src), postfix); 245 | lv_label_set_text(trg, buf); 246 | } 247 | 248 | void _ui_slider_set_text_value( lv_obj_t *trg, lv_obj_t *src, const char *prefix, const char *postfix) 249 | { 250 | char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE]; 251 | lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_slider_get_value(src), postfix); 252 | lv_label_set_text(trg, buf); 253 | } 254 | void _ui_checked_set_text_value( lv_obj_t *trg, lv_obj_t *src, const char *txt_on, const char *txt_off) 255 | { 256 | if (lv_obj_has_state(src,LV_STATE_CHECKED)) lv_label_set_text(trg,txt_on); 257 | else lv_label_set_text(trg,txt_off); 258 | } 259 | 260 | 261 | void _ui_spinbox_step(lv_obj_t * target, int val) 262 | { 263 | if(val > 0) lv_spinbox_increment(target); 264 | else lv_spinbox_decrement(target); 265 | 266 | lv_event_send(target,LV_EVENT_VALUE_CHANGED, 0); 267 | } 268 | 269 | void _ui_switch_theme(int val) 270 | { 271 | #ifdef UI_THEME_ACTIVE 272 | ui_theme_set(val); 273 | #endif 274 | } 275 | 276 | 277 | -------------------------------------------------------------------------------- /S3Example/ui_img_371709059.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.3.4 3 | // LVGL version: 8.3.6 4 | // Project name: SquareLine_Project 5 | 6 | #include "ui.h" 7 | 8 | #ifndef LV_ATTRIBUTE_MEM_ALIGN 9 | #define LV_ATTRIBUTE_MEM_ALIGN 10 | #endif 11 | 12 | // IMAGE DATA: assets\Custom-Icon-Design-Pretty-Office-9-Battery-3.32.png 13 | const LV_ATTRIBUTE_MEM_ALIGN uint8_t ui_img_371709059_data[] = { 14 | 0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00, 15 | 0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00, 16 | 0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00, 17 | 0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00, 18 | 0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00, 19 | 0x89,0x43,0x00,0x3C,0xE7,0x20,0x3C,0xE7,0xD7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x5D,0xEF,0xF7,0x1C,0xE7,0xC9,0x3C,0xE7,0x0F,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x3C,0xE7,0x6C,0x9C,0xF7,0xFF,0x72,0xDF,0xFF,0x50,0xCF,0xFF,0x50,0xCF,0xFF,0x50,0xCF,0xFF,0x50,0xCF,0xFF,0x50,0xCF,0xFF,0x50,0xCF,0xFF,0x50,0xCF,0xFF,0x50,0xCF,0xFF,0x50,0xCF,0xFF,0x50,0xCF,0xFF,0x50,0xCF,0xFF,0x50,0xCF,0xFF,0x50,0xCF,0xFF,0x50,0xCF,0xFF,0x50,0xCF,0xFF,0x50,0xCF,0xFF,0x71,0xD7,0xFF,0x99,0xEF,0xFF,0x9E,0xF7,0xFF,0x9E,0xF7,0xFF,0x9E,0xF7,0xFF,0x9E,0xF7,0xFF,0x9E,0xF7,0xFF,0x9E,0xF7,0xFF,0x3C,0xE7,0x4D,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00, 20 | 0x89,0x43,0x00,0xFB,0xDE,0x6F,0x59,0xE7,0xFF,0xC6,0xAE,0xFF,0x64,0x8E,0xFF,0x44,0x8E,0xFF,0x44,0x8E,0xFF,0x44,0x8E,0xFF,0x44,0x8E,0xFF,0x44,0x8E,0xFF,0x44,0x8E,0xFF,0x44,0x8E,0xFF,0x44,0x8E,0xFF,0x44,0x8E,0xFF,0x44,0x8E,0xFF,0x44,0x8E,0xFF,0x44,0x8E,0xFF,0x44,0x8E,0xFF,0x44,0x8E,0xFF,0x44,0x8E,0xFF,0xA6,0x9E,0xFF,0x33,0xD7,0xFF,0x5D,0xEF,0xFF,0x5D,0xEF,0xFF,0x5D,0xEF,0xFF,0x5D,0xEF,0xFF,0x5D,0xEF,0xFF,0x3C,0xE7,0xFF,0xFB,0xDE,0x4F,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0xFB,0xDE,0x6F,0x59,0xE7,0xFF,0xAA,0xAE,0xFF,0x48,0x96,0xFF,0x48,0x96,0xFF,0x48,0x96,0xFF,0x48,0x96,0xFF,0x48,0x96,0xFF,0x48,0x96,0xFF,0x48,0x96,0xFF,0x48,0x96,0xFF,0x48,0x96,0xFF,0x48,0x96,0xFF,0x48,0x96,0xFF,0x48,0x96,0xFF,0x48,0x96,0xFF,0x48,0x96,0xFF,0x48,0x96,0xFF,0x48,0x96,0xFF,0x89,0xA6,0xFF,0x34,0xD7,0xFF,0x5D,0xEF,0xFF,0x5D,0xEF,0xFF,0x5D,0xEF,0xFF,0x5D,0xEF,0xFF,0x5D,0xEF,0xFF,0x3C,0xE7,0xFF,0xFB,0xDE,0x4F,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00, 21 | 0x89,0x43,0x00,0xFB,0xDE,0x6F,0x3A,0xE7,0xFF,0xAC,0xAE,0xFF,0x4B,0x9E,0xFF,0x4B,0x9E,0xFF,0x4B,0x9E,0xFF,0x4B,0x9E,0xFF,0x4B,0x9E,0xFF,0x4B,0x9E,0xFF,0x4B,0x9E,0xFF,0x4B,0x9E,0xFF,0x4B,0x9E,0xFF,0x4B,0x9E,0xFF,0x4B,0x9E,0xFF,0x4B,0x9E,0xFF,0x4B,0x9E,0xFF,0x4B,0x9E,0xFF,0x4B,0x9E,0xFF,0x4B,0x9E,0xFF,0x6C,0xA6,0xFF,0x35,0xD7,0xFF,0x3C,0xE7,0xFF,0x3C,0xE7,0xFF,0x3C,0xE7,0xFF,0x3C,0xE7,0xFF,0x3C,0xE7,0xFF,0x3C,0xE7,0xFF,0x3C,0xE7,0xC8,0x1C,0xE7,0xAC,0xDB,0xDE,0x4F,0x89,0x43,0x00,0x89,0x43,0x00,0x9A,0xD6,0x6F,0xF9,0xD6,0xFF,0x4A,0x9E,0xFF,0xC9,0x85,0xFF,0xC9,0x85,0xFF,0xC9,0x85,0xFF,0xC9,0x85,0xFF,0xC9,0x85,0xFF,0xC9,0x85,0xFF,0xC9,0x85,0xFF,0xC9,0x85,0xFF,0xC9,0x85,0xFF,0xC9,0x85,0xFF,0xC9,0x85,0xFF,0xC9,0x85,0xFF,0xC9,0x85,0xFF,0xC9,0x85,0xFF,0xC9,0x85,0xFF,0xC9,0x85,0xFF,0x0A,0x96,0xFF,0xF4,0xCE,0xFF,0xFB,0xDE,0xFF,0xFB,0xDE,0xFF,0xFB,0xDE,0xFF,0xFB,0xDE,0xFF,0xFB,0xDE,0xFF,0xFB,0xDE,0xFF,0xFB,0xDE,0xFF,0x1C,0xDF,0xFF,0xDB,0xDE,0xF4,0x9A,0xCE,0x02, 22 | 0x89,0x43,0x00,0x38,0xC6,0x6F,0xB7,0xCE,0xFF,0xC8,0x8D,0xFF,0x26,0x75,0xFF,0x26,0x6D,0xFF,0x26,0x6D,0xFF,0x26,0x6D,0xFF,0x26,0x6D,0xFF,0x26,0x6D,0xFF,0x26,0x6D,0xFF,0x26,0x6D,0xFF,0x26,0x6D,0xFF,0x26,0x6D,0xFF,0x26,0x6D,0xFF,0x26,0x6D,0xFF,0x26,0x6D,0xFF,0x26,0x6D,0xFF,0x26,0x6D,0xFF,0x26,0x6D,0xFF,0x67,0x7D,0xFF,0x92,0xBE,0xFF,0x9A,0xD6,0xFF,0x9A,0xD6,0xFF,0x9A,0xD6,0xFF,0x9A,0xD6,0xFF,0x9A,0xD6,0xFF,0x9A,0xD6,0xFF,0x9A,0xD6,0xFF,0x9A,0xD6,0xFF,0x79,0xCE,0xFF,0x38,0xC6,0x08,0x89,0x43,0x00,0xF7,0xBD,0x6F,0x55,0xC6,0xFF,0x45,0x75,0xFF,0x84,0x5C,0xFF,0x84,0x5C,0xFF,0x84,0x5C,0xFF,0x84,0x5C,0xFF,0x84,0x5C,0xFF,0x84,0x5C,0xFF,0x84,0x5C,0xFF,0x84,0x5C,0xFF,0x84,0x5C,0xFF,0x84,0x5C,0xFF,0x84,0x5C,0xFF,0x84,0x5C,0xFF,0x84,0x5C,0xFF,0x84,0x5C,0xFF,0x84,0x5C,0xFF,0x84,0x5C,0xFF,0xE5,0x64,0xFF,0x30,0xB6,0xFF,0x38,0xC6,0xFF,0x38,0xC6,0xFF,0x38,0xC6,0xFF,0x38,0xC6,0xFF,0x38,0xC6,0xFF,0x38,0xC6,0xFF,0x38,0xC6,0xFF,0x38,0xC6,0xFF,0xF7,0xBD,0xF6,0xD7,0xBD,0x02, 23 | 0x89,0x43,0x00,0xB6,0xB5,0x6F,0x15,0xBE,0xFF,0x06,0x75,0xFF,0x44,0x54,0xFF,0x44,0x54,0xFF,0x44,0x54,0xFF,0x44,0x54,0xFF,0x44,0x54,0xFF,0x44,0x54,0xFF,0x44,0x54,0xFF,0x44,0x54,0xFF,0x44,0x54,0xFF,0x44,0x54,0xFF,0x44,0x54,0xFF,0x44,0x54,0xFF,0x44,0x54,0xFF,0x44,0x54,0xFF,0x44,0x54,0xFF,0x44,0x54,0xFF,0xA5,0x64,0xFF,0x10,0xAE,0xFF,0x18,0xBE,0xFF,0x18,0xBE,0xFF,0x18,0xBE,0xFF,0x18,0xBE,0xFF,0x18,0xBE,0xFF,0xF7,0xBD,0xFF,0xD7,0xBD,0xCD,0xB6,0xB5,0xB5,0xB6,0xB5,0x58,0x89,0x43,0x00,0x89,0x43,0x00,0x96,0xB5,0x6F,0xF4,0xB5,0xFF,0x47,0x7D,0xFF,0x85,0x5C,0xFF,0x85,0x5C,0xFF,0x85,0x5C,0xFF,0x85,0x5C,0xFF,0x85,0x5C,0xFF,0x85,0x5C,0xFF,0x85,0x5C,0xFF,0x85,0x5C,0xFF,0x85,0x5C,0xFF,0x85,0x5C,0xFF,0x85,0x5C,0xFF,0x85,0x5C,0xFF,0x85,0x5C,0xFF,0x85,0x5C,0xFF,0x85,0x5C,0xFF,0x85,0x5C,0xFF,0xE6,0x6C,0xFF,0x31,0xB6,0xFF,0x18,0xBE,0xFF,0x18,0xBE,0xFF,0x18,0xBE,0xFF,0x18,0xBE,0xFF,0x18,0xBE,0xFF,0xD7,0xBD,0xFF,0x96,0xB5,0x4F,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00, 24 | 0x89,0x43,0x00,0x96,0xB5,0x6F,0x15,0xBE,0xFF,0xEB,0x95,0xFF,0x49,0x75,0xFF,0x48,0x75,0xFF,0x48,0x75,0xFF,0x48,0x75,0xFF,0x48,0x75,0xFF,0x48,0x75,0xFF,0x48,0x75,0xFF,0x48,0x75,0xFF,0x48,0x75,0xFF,0x48,0x75,0xFF,0x48,0x75,0xFF,0x48,0x75,0xFF,0x48,0x75,0xFF,0x48,0x75,0xFF,0x48,0x75,0xFF,0x48,0x75,0xFF,0xAA,0x85,0xFF,0x93,0xC6,0xFF,0x79,0xCE,0xFF,0x79,0xCE,0xFF,0x79,0xCE,0xFF,0x79,0xCE,0xFF,0x79,0xCE,0xFF,0xF7,0xBD,0xFF,0x96,0xB5,0x4F,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0xB6,0xB5,0x6F,0x36,0xC6,0xFF,0xCF,0xB6,0xFF,0x4D,0x9E,0xFF,0x2D,0x96,0xFF,0x2C,0x96,0xFF,0x2C,0x96,0xFF,0x2C,0x96,0xFF,0x2C,0x96,0xFF,0x2C,0x96,0xFF,0x2C,0x96,0xFF,0x2C,0x96,0xFF,0x2C,0x96,0xFF,0x2C,0x96,0xFF,0x2C,0x96,0xFF,0x2C,0x96,0xFF,0x2C,0x96,0xFF,0x2C,0x96,0xFF,0x4D,0x9E,0xFF,0x8E,0xAE,0xFF,0xF5,0xD6,0xFF,0xBA,0xD6,0xFF,0xBA,0xD6,0xFF,0xBA,0xD6,0xFF,0xBA,0xD6,0xFF,0xBA,0xD6,0xFF,0x18,0xBE,0xFF,0xB6,0xB5,0x4F,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00, 25 | 0x89,0x43,0x00,0xB6,0xB5,0x55,0x18,0xC6,0xFF,0xB6,0xCE,0xFF,0x95,0xC6,0xFF,0x95,0xC6,0xFF,0x95,0xC6,0xFF,0x95,0xC6,0xFF,0x95,0xC6,0xFF,0x95,0xC6,0xFF,0x95,0xC6,0xFF,0x95,0xC6,0xFF,0x95,0xC6,0xFF,0x95,0xC6,0xFF,0x95,0xC6,0xFF,0x95,0xC6,0xFF,0x95,0xC6,0xFF,0x95,0xC6,0xFF,0x95,0xC6,0xFF,0x95,0xC6,0xFF,0xB6,0xCE,0xFF,0x99,0xCE,0xFF,0x9A,0xD6,0xFF,0x9A,0xD6,0xFF,0x9A,0xD6,0xFF,0x9A,0xD6,0xFF,0x79,0xCE,0xFF,0x18,0xBE,0xFE,0xB6,0xB5,0x36,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0xD7,0xBD,0x01,0xF7,0xBD,0x5C,0xF7,0xBD,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0x18,0xBE,0x77,0xF7,0xBD,0x77,0xF7,0xBD,0x4F,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00, 26 | 0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x34,0xA5,0x01,0x34,0xA5,0x02,0x34,0xA5,0x04,0x34,0xA5,0x07,0x34,0xA5,0x09,0x34,0xA5,0x0D,0x34,0xA5,0x0D,0x34,0xA5,0x0F,0x34,0xA5,0x16,0x34,0xA5,0x17,0x34,0xA5,0x17,0x34,0xA5,0x17,0x34,0xA5,0x17,0x34,0xA5,0x17,0x34,0xA5,0x17,0x34,0xA5,0x17,0x34,0xA5,0x17,0x34,0xA5,0x17,0x34,0xA5,0x17,0x34,0xA5,0x16,0x34,0xA5,0x10,0x34,0xA5,0x0D,0x34,0xA5,0x0D,0x34,0xA5,0x0A,0x34,0xA5,0x07,0x34,0xA5,0x05,0x34,0xA5,0x03,0x34,0xA5,0x01,0x89,0x43,0x00,0x89,0x43,0x00, 27 | 0x34,0xA5,0x08,0x34,0xA5,0x39,0x34,0xA5,0x60,0x34,0xA5,0x78,0x34,0xA5,0x88,0x34,0xA5,0x98,0x34,0xA5,0xA2,0x34,0xA5,0xB1,0x34,0xA5,0xB2,0x34,0xA5,0xB6,0x34,0xA5,0xC5,0x34,0xA5,0xC7,0x34,0xA5,0xC7,0x34,0xA5,0xC7,0x34,0xA5,0xC7,0x34,0xA5,0xC7,0x34,0xA5,0xC7,0x34,0xA5,0xC7,0x34,0xA5,0xC7,0x34,0xA5,0xC7,0x34,0xA5,0xC7,0x34,0xA5,0xC6,0x34,0xA5,0xB8,0x34,0xA5,0xB2,0x34,0xA5,0xB1,0x34,0xA5,0xA5,0x34,0xA5,0x99,0x34,0xA5,0x8E,0x34,0xA5,0x7B,0x34,0xA5,0x63,0x34,0xA5,0x43,0x34,0xA5,0x10,0x34,0xA5,0x0E,0x34,0xA5,0x5D,0x34,0xA5,0x91,0x34,0xA5,0xAB,0x34,0xA5,0xBD,0x34,0xA5,0xC7,0x34,0xA5,0xD4,0x34,0xA5,0xD9,0x34,0xA5,0xDA,0x34,0xA5,0xE4,0x34,0xA5,0xE7,0x34,0xA5,0xE7,0x34,0xA5,0xE7,0x34,0xA5,0xE7,0x34,0xA5,0xE7,0x34,0xA5,0xE7,0x34,0xA5,0xE7,0x34,0xA5,0xE7,0x34,0xA5,0xE7,0x34,0xA5,0xE7,0x34,0xA5,0xE7,0x34,0xA5,0xE7,0x34,0xA5,0xE5,0x34,0xA5,0xDC,0x34,0xA5,0xD9,0x34,0xA5,0xD6,0x34,0xA5,0xC9,0x34,0xA5,0xC1,0x34,0xA5,0xAF,0x34,0xA5,0x97,0x34,0xA5,0x6D,0x34,0xA5,0x1C, 28 | 0x89,0x43,0x00,0x34,0xA5,0x02,0x34,0xA5,0x07,0x34,0xA5,0x0D,0x34,0xA5,0x14,0x34,0xA5,0x18,0x34,0xA5,0x22,0x34,0xA5,0x25,0x34,0xA5,0x27,0x34,0xA5,0x34,0x34,0xA5,0x37,0x34,0xA5,0x37,0x34,0xA5,0x37,0x34,0xA5,0x37,0x34,0xA5,0x37,0x34,0xA5,0x37,0x34,0xA5,0x37,0x34,0xA5,0x37,0x34,0xA5,0x37,0x34,0xA5,0x37,0x34,0xA5,0x37,0x34,0xA5,0x37,0x34,0xA5,0x36,0x34,0xA5,0x2A,0x34,0xA5,0x25,0x34,0xA5,0x23,0x34,0xA5,0x1A,0x34,0xA5,0x15,0x34,0xA5,0x0E,0x34,0xA5,0x08,0x34,0xA5,0x03,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00, 29 | 0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00,0x89,0x43,0x00, 30 | 31 | }; 32 | const lv_img_dsc_t ui_img_371709059 = { 33 | .header.always_zero = 0, 34 | .header.w = 32, 35 | .header.h = 32, 36 | .data_size = sizeof(ui_img_371709059_data), 37 | .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA, 38 | .data = ui_img_371709059_data 39 | }; 40 | 41 | -------------------------------------------------------------------------------- /S3Example/SquareLine_Project.sll: -------------------------------------------------------------------------------- 1 | {"name":"SquareLine_Project.spj","depth":1,"width":172,"height":320,"rotation":0,"offset_x":0,"offset_y":0,"shape":"RECTANGLE","multilang":"DISABLE","description":"","board":"Arduino with TFT_eSPI","board_version":"v1.1.1","editor_version":"1.3.4","image":"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","force_export_images":false,"flat_export":true,"pointfilter":false,"theme_simplified":false,"theme_dark":true,"theme_color1":5,"theme_color2":0,"uiExportFolderPath":"C:\\Users\\Danko\\Desktop\\ESP32-S3-LCD-1.47-Demo\\S3Example","projectExportFolderPath":"","backup_cnt":31,"autosave_cnt":0,"lvgl_version":"8.3.6","callfuncsexport":"C_FILE","lvgl_include_path":""} -------------------------------------------------------------------------------- /C6example/ui_Screen1.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.4.1 3 | // LVGL version: 8.3.11 4 | // Project name: SquareLine_Project 5 | 6 | #include "ui.h" 7 | 8 | void ui_Screen1_screen_init(void) 9 | { 10 | ui_Screen1 = lv_obj_create(NULL); 11 | lv_obj_clear_flag( ui_Screen1, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 12 | lv_obj_set_style_bg_color(ui_Screen1, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT ); 13 | lv_obj_set_style_bg_opa(ui_Screen1, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 14 | 15 | ui_Spinner2 = lv_spinner_create(ui_Screen1,1000,90); 16 | lv_obj_set_width( ui_Spinner2, 98); 17 | lv_obj_set_height( ui_Spinner2, 98); 18 | lv_obj_set_x( ui_Spinner2, 61 ); 19 | lv_obj_set_y( ui_Spinner2, 31 ); 20 | lv_obj_set_align( ui_Spinner2, LV_ALIGN_CENTER ); 21 | lv_obj_clear_flag( ui_Spinner2, LV_OBJ_FLAG_CLICKABLE ); /// Flags 22 | lv_obj_set_style_arc_color(ui_Spinner2, lv_color_hex(0x4040FF), LV_PART_MAIN | LV_STATE_DEFAULT ); 23 | lv_obj_set_style_arc_opa(ui_Spinner2, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 24 | lv_obj_set_style_arc_rounded(ui_Spinner2, false, LV_PART_MAIN| LV_STATE_DEFAULT); 25 | 26 | lv_obj_set_style_arc_width(ui_Spinner2, 10, LV_PART_INDICATOR| LV_STATE_DEFAULT); 27 | lv_obj_set_style_arc_rounded(ui_Spinner2, false, LV_PART_INDICATOR| LV_STATE_DEFAULT); 28 | lv_obj_set_style_arc_img_src( ui_Spinner2, &ui_img_img_png, LV_PART_INDICATOR | LV_STATE_DEFAULT ); 29 | 30 | ui_timeLBL = lv_label_create(ui_Screen1); 31 | lv_obj_set_width( ui_timeLBL, LV_SIZE_CONTENT); /// 1 32 | lv_obj_set_height( ui_timeLBL, LV_SIZE_CONTENT); /// 1 33 | lv_obj_set_x( ui_timeLBL, 28 ); 34 | lv_obj_set_y( ui_timeLBL, 12 ); 35 | lv_label_set_text(ui_timeLBL,"22:45"); 36 | lv_obj_set_style_text_font(ui_timeLBL, &lv_font_montserrat_48, LV_PART_MAIN| LV_STATE_DEFAULT); 37 | 38 | ui_dateLBL = lv_label_create(ui_Screen1); 39 | lv_obj_set_width( ui_dateLBL, LV_SIZE_CONTENT); /// 1 40 | lv_obj_set_height( ui_dateLBL, LV_SIZE_CONTENT); /// 1 41 | lv_obj_set_x( ui_dateLBL, 28 ); 42 | lv_obj_set_y( ui_dateLBL, 62 ); 43 | lv_label_set_text(ui_dateLBL,"December 25"); 44 | lv_obj_set_style_text_color(ui_dateLBL, lv_color_hex(0xD2D0D0), LV_PART_MAIN | LV_STATE_DEFAULT ); 45 | lv_obj_set_style_text_opa(ui_dateLBL, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 46 | lv_obj_set_style_text_font(ui_dateLBL, &lv_font_montserrat_18, LV_PART_MAIN| LV_STATE_DEFAULT); 47 | 48 | ui_Image2 = lv_img_create(ui_Screen1); 49 | lv_img_set_src(ui_Image2, &ui_img_img_png); 50 | lv_obj_set_width( ui_Image2, LV_SIZE_CONTENT); /// 160 51 | lv_obj_set_height( ui_Image2, LV_SIZE_CONTENT); /// 160 52 | lv_obj_set_x( ui_Image2, -144 ); 53 | lv_obj_set_y( ui_Image2, 65 ); 54 | lv_obj_set_align( ui_Image2, LV_ALIGN_CENTER ); 55 | lv_obj_add_flag( ui_Image2, LV_OBJ_FLAG_ADV_HITTEST ); /// Flags 56 | lv_obj_clear_flag( ui_Image2, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 57 | 58 | ui_secLBL = lv_label_create(ui_Screen1); 59 | lv_obj_set_width( ui_secLBL, LV_SIZE_CONTENT); /// 1 60 | lv_obj_set_height( ui_secLBL, LV_SIZE_CONTENT); /// 1 61 | lv_obj_set_x( ui_secLBL, 60 ); 62 | lv_obj_set_y( ui_secLBL, 32 ); 63 | lv_obj_set_align( ui_secLBL, LV_ALIGN_CENTER ); 64 | lv_label_set_text(ui_secLBL,"24"); 65 | lv_obj_set_style_text_color(ui_secLBL, lv_color_hex(0x41B9DE), LV_PART_MAIN | LV_STATE_DEFAULT ); 66 | lv_obj_set_style_text_opa(ui_secLBL, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 67 | lv_obj_set_style_text_font(ui_secLBL, &ui_font_Font1, LV_PART_MAIN| LV_STATE_DEFAULT); 68 | 69 | ui_Panel2 = lv_obj_create(ui_Screen1); 70 | lv_obj_set_width( ui_Panel2, 102); 71 | lv_obj_set_height( ui_Panel2, 6); 72 | lv_obj_set_x( ui_Panel2, 62 ); 73 | lv_obj_set_y( ui_Panel2, -31 ); 74 | lv_obj_set_align( ui_Panel2, LV_ALIGN_CENTER ); 75 | lv_obj_clear_flag( ui_Panel2, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 76 | lv_obj_set_style_radius(ui_Panel2, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 77 | lv_obj_set_style_bg_color(ui_Panel2, lv_color_hex(0x4189CA), LV_PART_MAIN | LV_STATE_DEFAULT ); 78 | lv_obj_set_style_bg_opa(ui_Panel2, 89, LV_PART_MAIN| LV_STATE_DEFAULT); 79 | lv_obj_set_style_border_width(ui_Panel2, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 80 | 81 | ui_Panel3 = lv_obj_create(ui_Screen1); 82 | lv_obj_set_width( ui_Panel3, 23); 83 | lv_obj_set_height( ui_Panel3, 18); 84 | lv_obj_set_x( ui_Panel3, 138 ); 85 | lv_obj_set_y( ui_Panel3, -69 ); 86 | lv_obj_set_align( ui_Panel3, LV_ALIGN_CENTER ); 87 | lv_obj_clear_flag( ui_Panel3, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 88 | lv_obj_set_style_radius(ui_Panel3, 2, LV_PART_MAIN| LV_STATE_DEFAULT); 89 | lv_obj_set_style_bg_color(ui_Panel3, lv_color_hex(0x0C4C72), LV_PART_MAIN | LV_STATE_DEFAULT ); 90 | lv_obj_set_style_bg_opa(ui_Panel3, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 91 | lv_obj_set_style_border_width(ui_Panel3, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 92 | 93 | ui_Label5 = lv_label_create(ui_Panel3); 94 | lv_obj_set_width( ui_Label5, LV_SIZE_CONTENT); /// 1 95 | lv_obj_set_height( ui_Label5, LV_SIZE_CONTENT); /// 1 96 | lv_obj_set_x( ui_Label5, -1 ); 97 | lv_obj_set_y( ui_Label5, 0 ); 98 | lv_obj_set_align( ui_Label5, LV_ALIGN_CENTER ); 99 | lv_label_set_text(ui_Label5,"MO"); 100 | lv_obj_set_style_text_font(ui_Label5, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 101 | 102 | ui_Panel1 = lv_obj_create(ui_Screen1); 103 | lv_obj_set_width( ui_Panel1, 23); 104 | lv_obj_set_height( ui_Panel1, 18); 105 | lv_obj_set_x( ui_Panel1, 138 ); 106 | lv_obj_set_y( ui_Panel1, -46 ); 107 | lv_obj_set_align( ui_Panel1, LV_ALIGN_CENTER ); 108 | lv_obj_clear_flag( ui_Panel1, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 109 | lv_obj_set_style_radius(ui_Panel1, 2, LV_PART_MAIN| LV_STATE_DEFAULT); 110 | lv_obj_set_style_bg_color(ui_Panel1, lv_color_hex(0x0C4C72), LV_PART_MAIN | LV_STATE_DEFAULT ); 111 | lv_obj_set_style_bg_opa(ui_Panel1, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 112 | lv_obj_set_style_border_width(ui_Panel1, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 113 | 114 | ui_Label6 = lv_label_create(ui_Panel1); 115 | lv_obj_set_width( ui_Label6, LV_SIZE_CONTENT); /// 1 116 | lv_obj_set_height( ui_Label6, LV_SIZE_CONTENT); /// 1 117 | lv_obj_set_x( ui_Label6, -1 ); 118 | lv_obj_set_y( ui_Label6, 0 ); 119 | lv_obj_set_align( ui_Label6, LV_ALIGN_CENTER ); 120 | lv_label_set_text(ui_Label6,"TU"); 121 | lv_obj_set_style_text_font(ui_Label6, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 122 | 123 | ui_Panel4 = lv_obj_create(ui_Screen1); 124 | lv_obj_set_width( ui_Panel4, 23); 125 | lv_obj_set_height( ui_Panel4, 18); 126 | lv_obj_set_x( ui_Panel4, 138 ); 127 | lv_obj_set_y( ui_Panel4, 0 ); 128 | lv_obj_set_align( ui_Panel4, LV_ALIGN_CENTER ); 129 | lv_obj_clear_flag( ui_Panel4, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 130 | lv_obj_set_style_radius(ui_Panel4, 2, LV_PART_MAIN| LV_STATE_DEFAULT); 131 | lv_obj_set_style_bg_color(ui_Panel4, lv_color_hex(0x0C4C72), LV_PART_MAIN | LV_STATE_DEFAULT ); 132 | lv_obj_set_style_bg_opa(ui_Panel4, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 133 | lv_obj_set_style_border_width(ui_Panel4, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 134 | 135 | ui_Label7 = lv_label_create(ui_Panel4); 136 | lv_obj_set_width( ui_Label7, LV_SIZE_CONTENT); /// 1 137 | lv_obj_set_height( ui_Label7, LV_SIZE_CONTENT); /// 1 138 | lv_obj_set_x( ui_Label7, -1 ); 139 | lv_obj_set_y( ui_Label7, 0 ); 140 | lv_obj_set_align( ui_Label7, LV_ALIGN_CENTER ); 141 | lv_label_set_text(ui_Label7,"TH"); 142 | lv_obj_set_style_text_font(ui_Label7, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 143 | 144 | ui_Panel5 = lv_obj_create(ui_Screen1); 145 | lv_obj_set_width( ui_Panel5, 23); 146 | lv_obj_set_height( ui_Panel5, 18); 147 | lv_obj_set_x( ui_Panel5, 138 ); 148 | lv_obj_set_y( ui_Panel5, -23 ); 149 | lv_obj_set_align( ui_Panel5, LV_ALIGN_CENTER ); 150 | lv_obj_clear_flag( ui_Panel5, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 151 | lv_obj_set_style_radius(ui_Panel5, 2, LV_PART_MAIN| LV_STATE_DEFAULT); 152 | lv_obj_set_style_bg_color(ui_Panel5, lv_color_hex(0x0C4C72), LV_PART_MAIN | LV_STATE_DEFAULT ); 153 | lv_obj_set_style_bg_opa(ui_Panel5, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 154 | lv_obj_set_style_border_width(ui_Panel5, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 155 | 156 | ui_Label8 = lv_label_create(ui_Panel5); 157 | lv_obj_set_width( ui_Label8, LV_SIZE_CONTENT); /// 1 158 | lv_obj_set_height( ui_Label8, LV_SIZE_CONTENT); /// 1 159 | lv_obj_set_x( ui_Label8, -1 ); 160 | lv_obj_set_y( ui_Label8, 0 ); 161 | lv_obj_set_align( ui_Label8, LV_ALIGN_CENTER ); 162 | lv_label_set_text(ui_Label8,"WE"); 163 | lv_obj_set_style_text_font(ui_Label8, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 164 | 165 | ui_ioLBL = lv_label_create(ui_Screen1); 166 | lv_obj_set_width( ui_ioLBL, LV_SIZE_CONTENT); /// 1 167 | lv_obj_set_height( ui_ioLBL, LV_SIZE_CONTENT); /// 1 168 | lv_obj_set_x( ui_ioLBL, 172 ); 169 | lv_obj_set_y( ui_ioLBL, 33 ); 170 | lv_label_set_text(ui_ioLBL,"192.168.2.3"); 171 | lv_obj_set_style_text_color(ui_ioLBL, lv_color_hex(0x67B2C0), LV_PART_MAIN | LV_STATE_DEFAULT ); 172 | lv_obj_set_style_text_opa(ui_ioLBL, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 173 | 174 | ui_Label10 = lv_label_create(ui_Screen1); 175 | lv_obj_set_width( ui_Label10, LV_SIZE_CONTENT); /// 1 176 | lv_obj_set_height( ui_Label10, LV_SIZE_CONTENT); /// 1 177 | lv_obj_set_x( ui_Label10, 172 ); 178 | lv_obj_set_y( ui_Label10, 17 ); 179 | lv_label_set_text(ui_Label10,"VOLOS CLOCK"); 180 | lv_obj_set_style_text_color(ui_Label10, lv_color_hex(0xCD25D6), LV_PART_MAIN | LV_STATE_DEFAULT ); 181 | lv_obj_set_style_text_opa(ui_Label10, 250, LV_PART_MAIN| LV_STATE_DEFAULT); 182 | lv_obj_set_style_text_font(ui_Label10, &lv_font_montserrat_12, LV_PART_MAIN| LV_STATE_DEFAULT); 183 | 184 | ui_Panel7 = lv_obj_create(ui_Screen1); 185 | lv_obj_set_width( ui_Panel7, 23); 186 | lv_obj_set_height( ui_Panel7, 18); 187 | lv_obj_set_x( ui_Panel7, 138 ); 188 | lv_obj_set_y( ui_Panel7, 23 ); 189 | lv_obj_set_align( ui_Panel7, LV_ALIGN_CENTER ); 190 | lv_obj_clear_flag( ui_Panel7, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 191 | lv_obj_set_style_radius(ui_Panel7, 2, LV_PART_MAIN| LV_STATE_DEFAULT); 192 | lv_obj_set_style_bg_color(ui_Panel7, lv_color_hex(0x0C4C72), LV_PART_MAIN | LV_STATE_DEFAULT ); 193 | lv_obj_set_style_bg_opa(ui_Panel7, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 194 | lv_obj_set_style_border_width(ui_Panel7, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 195 | 196 | ui_Label11 = lv_label_create(ui_Panel7); 197 | lv_obj_set_width( ui_Label11, LV_SIZE_CONTENT); /// 1 198 | lv_obj_set_height( ui_Label11, LV_SIZE_CONTENT); /// 1 199 | lv_obj_set_x( ui_Label11, -1 ); 200 | lv_obj_set_y( ui_Label11, 0 ); 201 | lv_obj_set_align( ui_Label11, LV_ALIGN_CENTER ); 202 | lv_label_set_text(ui_Label11,"FR"); 203 | lv_obj_set_style_text_font(ui_Label11, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 204 | 205 | ui_Panel8 = lv_obj_create(ui_Screen1); 206 | lv_obj_set_width( ui_Panel8, 23); 207 | lv_obj_set_height( ui_Panel8, 18); 208 | lv_obj_set_x( ui_Panel8, 138 ); 209 | lv_obj_set_y( ui_Panel8, 46 ); 210 | lv_obj_set_align( ui_Panel8, LV_ALIGN_CENTER ); 211 | lv_obj_clear_flag( ui_Panel8, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 212 | lv_obj_set_style_radius(ui_Panel8, 2, LV_PART_MAIN| LV_STATE_DEFAULT); 213 | lv_obj_set_style_bg_color(ui_Panel8, lv_color_hex(0x9A11A2), LV_PART_MAIN | LV_STATE_DEFAULT ); 214 | lv_obj_set_style_bg_opa(ui_Panel8, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 215 | lv_obj_set_style_border_width(ui_Panel8, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 216 | 217 | ui_Label12 = lv_label_create(ui_Panel8); 218 | lv_obj_set_width( ui_Label12, LV_SIZE_CONTENT); /// 1 219 | lv_obj_set_height( ui_Label12, LV_SIZE_CONTENT); /// 1 220 | lv_obj_set_x( ui_Label12, -1 ); 221 | lv_obj_set_y( ui_Label12, 0 ); 222 | lv_obj_set_align( ui_Label12, LV_ALIGN_CENTER ); 223 | lv_label_set_text(ui_Label12,"SA"); 224 | lv_obj_set_style_text_font(ui_Label12, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 225 | 226 | ui_Panel9 = lv_obj_create(ui_Screen1); 227 | lv_obj_set_width( ui_Panel9, 23); 228 | lv_obj_set_height( ui_Panel9, 18); 229 | lv_obj_set_x( ui_Panel9, 138 ); 230 | lv_obj_set_y( ui_Panel9, 69 ); 231 | lv_obj_set_align( ui_Panel9, LV_ALIGN_CENTER ); 232 | lv_obj_clear_flag( ui_Panel9, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 233 | lv_obj_set_style_radius(ui_Panel9, 2, LV_PART_MAIN| LV_STATE_DEFAULT); 234 | lv_obj_set_style_bg_color(ui_Panel9, lv_color_hex(0x9A11A2), LV_PART_MAIN | LV_STATE_DEFAULT ); 235 | lv_obj_set_style_bg_opa(ui_Panel9, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 236 | lv_obj_set_style_border_width(ui_Panel9, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 237 | 238 | ui_Label13 = lv_label_create(ui_Panel9); 239 | lv_obj_set_width( ui_Label13, LV_SIZE_CONTENT); /// 1 240 | lv_obj_set_height( ui_Label13, LV_SIZE_CONTENT); /// 1 241 | lv_obj_set_x( ui_Label13, -1 ); 242 | lv_obj_set_y( ui_Label13, 0 ); 243 | lv_obj_set_align( ui_Label13, LV_ALIGN_CENTER ); 244 | lv_label_set_text(ui_Label13,"SU"); 245 | lv_obj_set_style_text_font(ui_Label13, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 246 | 247 | ui_Panel6 = lv_obj_create(ui_Screen1); 248 | lv_obj_set_width( ui_Panel6, 65); 249 | lv_obj_set_height( ui_Panel6, 18); 250 | lv_obj_set_x( ui_Panel6, -32 ); 251 | lv_obj_set_y( ui_Panel6, 50 ); 252 | lv_obj_set_align( ui_Panel6, LV_ALIGN_CENTER ); 253 | lv_obj_clear_flag( ui_Panel6, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 254 | lv_obj_set_style_radius(ui_Panel6, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 255 | lv_obj_set_style_bg_color(ui_Panel6, lv_color_hex(0x8E9E1B), LV_PART_MAIN | LV_STATE_DEFAULT ); 256 | lv_obj_set_style_bg_opa(ui_Panel6, 150, LV_PART_MAIN| LV_STATE_DEFAULT); 257 | lv_obj_set_style_border_width(ui_Panel6, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 258 | 259 | ui_Label14 = lv_label_create(ui_Panel6); 260 | lv_obj_set_width( ui_Label14, LV_SIZE_CONTENT); /// 1 261 | lv_obj_set_height( ui_Label14, LV_SIZE_CONTENT); /// 1 262 | lv_obj_set_align( ui_Label14, LV_ALIGN_CENTER ); 263 | lv_label_set_text(ui_Label14,"VOLOS"); 264 | 265 | ui_Panel10 = lv_obj_create(ui_Screen1); 266 | lv_obj_set_width( ui_Panel10, 65); 267 | lv_obj_set_height( ui_Panel10, 18); 268 | lv_obj_set_x( ui_Panel10, -32 ); 269 | lv_obj_set_y( ui_Panel10, 72 ); 270 | lv_obj_set_align( ui_Panel10, LV_ALIGN_CENTER ); 271 | lv_obj_clear_flag( ui_Panel10, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 272 | lv_obj_set_style_radius(ui_Panel10, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 273 | lv_obj_set_style_bg_color(ui_Panel10, lv_color_hex(0x8E9E1B), LV_PART_MAIN | LV_STATE_DEFAULT ); 274 | lv_obj_set_style_bg_opa(ui_Panel10, 150, LV_PART_MAIN| LV_STATE_DEFAULT); 275 | lv_obj_set_style_border_width(ui_Panel10, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 276 | 277 | ui_Label4 = lv_label_create(ui_Panel10); 278 | lv_obj_set_width( ui_Label4, LV_SIZE_CONTENT); /// 1 279 | lv_obj_set_height( ui_Label4, LV_SIZE_CONTENT); /// 1 280 | lv_obj_set_align( ui_Label4, LV_ALIGN_CENTER ); 281 | lv_label_set_text(ui_Label4,"PROJECTS"); 282 | lv_obj_set_style_text_font(ui_Label4, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 283 | 284 | ui_yearLBL = lv_label_create(ui_Screen1); 285 | lv_obj_set_width( ui_yearLBL, LV_SIZE_CONTENT); /// 1 286 | lv_obj_set_height( ui_yearLBL, LV_SIZE_CONTENT); /// 1 287 | lv_obj_set_x( ui_yearLBL, -32 ); 288 | lv_obj_set_y( ui_yearLBL, 18 ); 289 | lv_obj_set_align( ui_yearLBL, LV_ALIGN_CENTER ); 290 | lv_label_set_text(ui_yearLBL,"2025"); 291 | lv_obj_set_style_text_color(ui_yearLBL, lv_color_hex(0xCACACA), LV_PART_MAIN | LV_STATE_DEFAULT ); 292 | lv_obj_set_style_text_opa(ui_yearLBL, 160, LV_PART_MAIN| LV_STATE_DEFAULT); 293 | lv_obj_set_style_text_font(ui_yearLBL, &lv_font_montserrat_26, LV_PART_MAIN| LV_STATE_DEFAULT); 294 | 295 | ui_dayPNL = lv_obj_create(ui_Screen1); 296 | lv_obj_set_width( ui_dayPNL, 6); 297 | lv_obj_set_height( ui_dayPNL, 18); 298 | lv_obj_set_x( ui_dayPNL, 122 ); 299 | lv_obj_set_y( ui_dayPNL, -69 ); 300 | lv_obj_set_align( ui_dayPNL, LV_ALIGN_CENTER ); 301 | lv_obj_clear_flag( ui_dayPNL, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 302 | lv_obj_set_style_radius(ui_dayPNL, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 303 | lv_obj_set_style_bg_color(ui_dayPNL, lv_color_hex(0x96AA10), LV_PART_MAIN | LV_STATE_DEFAULT ); 304 | lv_obj_set_style_bg_opa(ui_dayPNL, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 305 | lv_obj_set_style_border_width(ui_dayPNL, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 306 | 307 | ui_Panel11 = lv_obj_create(ui_Screen1); 308 | lv_obj_set_width( ui_Panel11, 87); 309 | lv_obj_set_height( ui_Panel11, 5); 310 | lv_obj_set_x( ui_Panel11, -42 ); 311 | lv_obj_set_y( ui_Panel11, 1 ); 312 | lv_obj_set_align( ui_Panel11, LV_ALIGN_CENTER ); 313 | lv_obj_clear_flag( ui_Panel11, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 314 | lv_obj_set_style_radius(ui_Panel11, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 315 | lv_obj_set_style_bg_color(ui_Panel11, lv_color_hex(0x0B2B34), LV_PART_MAIN | LV_STATE_DEFAULT ); 316 | lv_obj_set_style_bg_opa(ui_Panel11, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 317 | lv_obj_set_style_border_width(ui_Panel11, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 318 | 319 | ui_Label1 = lv_label_create(ui_Screen1); 320 | lv_obj_set_width( ui_Label1, LV_SIZE_CONTENT); /// 1 321 | lv_obj_set_height( ui_Label1, LV_SIZE_CONTENT); /// 1 322 | lv_obj_set_x( ui_Label1, 29 ); 323 | lv_obj_set_y( ui_Label1, 4 ); 324 | lv_label_set_text(ui_Label1,"Merry Christmass!!"); 325 | lv_obj_set_style_text_color(ui_Label1, lv_color_hex(0x6B5A6D), LV_PART_MAIN | LV_STATE_DEFAULT ); 326 | lv_obj_set_style_text_opa(ui_Label1, 250, LV_PART_MAIN| LV_STATE_DEFAULT); 327 | lv_obj_set_style_text_font(ui_Label1, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 328 | 329 | ui_Image1 = lv_img_create(ui_Screen1); 330 | lv_img_set_src(ui_Image1, &ui_img_1699707072); 331 | lv_obj_set_width( ui_Image1, LV_SIZE_CONTENT); /// 16 332 | lv_obj_set_height( ui_Image1, LV_SIZE_CONTENT); /// 16 333 | lv_obj_set_x( ui_Image1, 14 ); 334 | lv_obj_set_y( ui_Image1, 73 ); 335 | lv_obj_set_align( ui_Image1, LV_ALIGN_CENTER ); 336 | lv_obj_add_flag( ui_Image1, LV_OBJ_FLAG_ADV_HITTEST ); /// Flags 337 | lv_obj_clear_flag( ui_Image1, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 338 | 339 | ui_secHEX = lv_label_create(ui_Screen1); 340 | lv_obj_set_width( ui_secHEX, LV_SIZE_CONTENT); /// 1 341 | lv_obj_set_height( ui_secHEX, LV_SIZE_CONTENT); /// 1 342 | lv_obj_set_x( ui_secHEX, -47 ); 343 | lv_obj_set_y( ui_secHEX, 61 ); 344 | lv_obj_set_align( ui_secHEX, LV_ALIGN_TOP_RIGHT ); 345 | lv_label_set_text(ui_secHEX,"0"); 346 | lv_obj_set_style_text_color(ui_secHEX, lv_color_hex(0x6B5A6D), LV_PART_MAIN | LV_STATE_DEFAULT ); 347 | lv_obj_set_style_text_opa(ui_secHEX, 250, LV_PART_MAIN| LV_STATE_DEFAULT); 348 | lv_obj_set_style_text_font(ui_secHEX, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 349 | 350 | } 351 | -------------------------------------------------------------------------------- /C6example/UI/ui_Screen1.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.4.1 3 | // LVGL version: 8.3.11 4 | // Project name: SquareLine_Project 5 | 6 | #include "ui.h" 7 | 8 | void ui_Screen1_screen_init(void) 9 | { 10 | ui_Screen1 = lv_obj_create(NULL); 11 | lv_obj_clear_flag( ui_Screen1, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 12 | lv_obj_set_style_bg_color(ui_Screen1, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT ); 13 | lv_obj_set_style_bg_opa(ui_Screen1, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 14 | 15 | ui_Spinner2 = lv_spinner_create(ui_Screen1,1000,90); 16 | lv_obj_set_width( ui_Spinner2, 98); 17 | lv_obj_set_height( ui_Spinner2, 98); 18 | lv_obj_set_x( ui_Spinner2, 61 ); 19 | lv_obj_set_y( ui_Spinner2, 31 ); 20 | lv_obj_set_align( ui_Spinner2, LV_ALIGN_CENTER ); 21 | lv_obj_clear_flag( ui_Spinner2, LV_OBJ_FLAG_CLICKABLE ); /// Flags 22 | lv_obj_set_style_arc_color(ui_Spinner2, lv_color_hex(0x4040FF), LV_PART_MAIN | LV_STATE_DEFAULT ); 23 | lv_obj_set_style_arc_opa(ui_Spinner2, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 24 | lv_obj_set_style_arc_rounded(ui_Spinner2, false, LV_PART_MAIN| LV_STATE_DEFAULT); 25 | 26 | lv_obj_set_style_arc_width(ui_Spinner2, 10, LV_PART_INDICATOR| LV_STATE_DEFAULT); 27 | lv_obj_set_style_arc_rounded(ui_Spinner2, false, LV_PART_INDICATOR| LV_STATE_DEFAULT); 28 | lv_obj_set_style_arc_img_src( ui_Spinner2, &ui_img_img_png, LV_PART_INDICATOR | LV_STATE_DEFAULT ); 29 | 30 | ui_timeLBL = lv_label_create(ui_Screen1); 31 | lv_obj_set_width( ui_timeLBL, LV_SIZE_CONTENT); /// 1 32 | lv_obj_set_height( ui_timeLBL, LV_SIZE_CONTENT); /// 1 33 | lv_obj_set_x( ui_timeLBL, 28 ); 34 | lv_obj_set_y( ui_timeLBL, 12 ); 35 | lv_label_set_text(ui_timeLBL,"22:45"); 36 | lv_obj_set_style_text_font(ui_timeLBL, &lv_font_montserrat_48, LV_PART_MAIN| LV_STATE_DEFAULT); 37 | 38 | ui_dateLBL = lv_label_create(ui_Screen1); 39 | lv_obj_set_width( ui_dateLBL, LV_SIZE_CONTENT); /// 1 40 | lv_obj_set_height( ui_dateLBL, LV_SIZE_CONTENT); /// 1 41 | lv_obj_set_x( ui_dateLBL, 28 ); 42 | lv_obj_set_y( ui_dateLBL, 62 ); 43 | lv_label_set_text(ui_dateLBL,"December 25"); 44 | lv_obj_set_style_text_color(ui_dateLBL, lv_color_hex(0xD2D0D0), LV_PART_MAIN | LV_STATE_DEFAULT ); 45 | lv_obj_set_style_text_opa(ui_dateLBL, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 46 | lv_obj_set_style_text_font(ui_dateLBL, &lv_font_montserrat_18, LV_PART_MAIN| LV_STATE_DEFAULT); 47 | 48 | ui_Image2 = lv_img_create(ui_Screen1); 49 | lv_img_set_src(ui_Image2, &ui_img_img_png); 50 | lv_obj_set_width( ui_Image2, LV_SIZE_CONTENT); /// 160 51 | lv_obj_set_height( ui_Image2, LV_SIZE_CONTENT); /// 160 52 | lv_obj_set_x( ui_Image2, -144 ); 53 | lv_obj_set_y( ui_Image2, 65 ); 54 | lv_obj_set_align( ui_Image2, LV_ALIGN_CENTER ); 55 | lv_obj_add_flag( ui_Image2, LV_OBJ_FLAG_ADV_HITTEST ); /// Flags 56 | lv_obj_clear_flag( ui_Image2, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 57 | 58 | ui_secLBL = lv_label_create(ui_Screen1); 59 | lv_obj_set_width( ui_secLBL, LV_SIZE_CONTENT); /// 1 60 | lv_obj_set_height( ui_secLBL, LV_SIZE_CONTENT); /// 1 61 | lv_obj_set_x( ui_secLBL, 60 ); 62 | lv_obj_set_y( ui_secLBL, 32 ); 63 | lv_obj_set_align( ui_secLBL, LV_ALIGN_CENTER ); 64 | lv_label_set_text(ui_secLBL,"24"); 65 | lv_obj_set_style_text_color(ui_secLBL, lv_color_hex(0x41B9DE), LV_PART_MAIN | LV_STATE_DEFAULT ); 66 | lv_obj_set_style_text_opa(ui_secLBL, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 67 | lv_obj_set_style_text_font(ui_secLBL, &ui_font_Font1, LV_PART_MAIN| LV_STATE_DEFAULT); 68 | 69 | ui_Panel2 = lv_obj_create(ui_Screen1); 70 | lv_obj_set_width( ui_Panel2, 102); 71 | lv_obj_set_height( ui_Panel2, 6); 72 | lv_obj_set_x( ui_Panel2, 62 ); 73 | lv_obj_set_y( ui_Panel2, -31 ); 74 | lv_obj_set_align( ui_Panel2, LV_ALIGN_CENTER ); 75 | lv_obj_clear_flag( ui_Panel2, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 76 | lv_obj_set_style_radius(ui_Panel2, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 77 | lv_obj_set_style_bg_color(ui_Panel2, lv_color_hex(0x4189CA), LV_PART_MAIN | LV_STATE_DEFAULT ); 78 | lv_obj_set_style_bg_opa(ui_Panel2, 89, LV_PART_MAIN| LV_STATE_DEFAULT); 79 | lv_obj_set_style_border_width(ui_Panel2, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 80 | 81 | ui_Panel3 = lv_obj_create(ui_Screen1); 82 | lv_obj_set_width( ui_Panel3, 23); 83 | lv_obj_set_height( ui_Panel3, 18); 84 | lv_obj_set_x( ui_Panel3, 138 ); 85 | lv_obj_set_y( ui_Panel3, -69 ); 86 | lv_obj_set_align( ui_Panel3, LV_ALIGN_CENTER ); 87 | lv_obj_clear_flag( ui_Panel3, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 88 | lv_obj_set_style_radius(ui_Panel3, 2, LV_PART_MAIN| LV_STATE_DEFAULT); 89 | lv_obj_set_style_bg_color(ui_Panel3, lv_color_hex(0x0C4C72), LV_PART_MAIN | LV_STATE_DEFAULT ); 90 | lv_obj_set_style_bg_opa(ui_Panel3, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 91 | lv_obj_set_style_border_width(ui_Panel3, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 92 | 93 | ui_Label5 = lv_label_create(ui_Panel3); 94 | lv_obj_set_width( ui_Label5, LV_SIZE_CONTENT); /// 1 95 | lv_obj_set_height( ui_Label5, LV_SIZE_CONTENT); /// 1 96 | lv_obj_set_x( ui_Label5, -1 ); 97 | lv_obj_set_y( ui_Label5, 0 ); 98 | lv_obj_set_align( ui_Label5, LV_ALIGN_CENTER ); 99 | lv_label_set_text(ui_Label5,"MO"); 100 | lv_obj_set_style_text_font(ui_Label5, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 101 | 102 | ui_Panel1 = lv_obj_create(ui_Screen1); 103 | lv_obj_set_width( ui_Panel1, 23); 104 | lv_obj_set_height( ui_Panel1, 18); 105 | lv_obj_set_x( ui_Panel1, 138 ); 106 | lv_obj_set_y( ui_Panel1, -46 ); 107 | lv_obj_set_align( ui_Panel1, LV_ALIGN_CENTER ); 108 | lv_obj_clear_flag( ui_Panel1, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 109 | lv_obj_set_style_radius(ui_Panel1, 2, LV_PART_MAIN| LV_STATE_DEFAULT); 110 | lv_obj_set_style_bg_color(ui_Panel1, lv_color_hex(0x0C4C72), LV_PART_MAIN | LV_STATE_DEFAULT ); 111 | lv_obj_set_style_bg_opa(ui_Panel1, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 112 | lv_obj_set_style_border_width(ui_Panel1, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 113 | 114 | ui_Label6 = lv_label_create(ui_Panel1); 115 | lv_obj_set_width( ui_Label6, LV_SIZE_CONTENT); /// 1 116 | lv_obj_set_height( ui_Label6, LV_SIZE_CONTENT); /// 1 117 | lv_obj_set_x( ui_Label6, -1 ); 118 | lv_obj_set_y( ui_Label6, 0 ); 119 | lv_obj_set_align( ui_Label6, LV_ALIGN_CENTER ); 120 | lv_label_set_text(ui_Label6,"TU"); 121 | lv_obj_set_style_text_font(ui_Label6, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 122 | 123 | ui_Panel4 = lv_obj_create(ui_Screen1); 124 | lv_obj_set_width( ui_Panel4, 23); 125 | lv_obj_set_height( ui_Panel4, 18); 126 | lv_obj_set_x( ui_Panel4, 138 ); 127 | lv_obj_set_y( ui_Panel4, 0 ); 128 | lv_obj_set_align( ui_Panel4, LV_ALIGN_CENTER ); 129 | lv_obj_clear_flag( ui_Panel4, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 130 | lv_obj_set_style_radius(ui_Panel4, 2, LV_PART_MAIN| LV_STATE_DEFAULT); 131 | lv_obj_set_style_bg_color(ui_Panel4, lv_color_hex(0x0C4C72), LV_PART_MAIN | LV_STATE_DEFAULT ); 132 | lv_obj_set_style_bg_opa(ui_Panel4, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 133 | lv_obj_set_style_border_width(ui_Panel4, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 134 | 135 | ui_Label7 = lv_label_create(ui_Panel4); 136 | lv_obj_set_width( ui_Label7, LV_SIZE_CONTENT); /// 1 137 | lv_obj_set_height( ui_Label7, LV_SIZE_CONTENT); /// 1 138 | lv_obj_set_x( ui_Label7, -1 ); 139 | lv_obj_set_y( ui_Label7, 0 ); 140 | lv_obj_set_align( ui_Label7, LV_ALIGN_CENTER ); 141 | lv_label_set_text(ui_Label7,"TH"); 142 | lv_obj_set_style_text_font(ui_Label7, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 143 | 144 | ui_Panel5 = lv_obj_create(ui_Screen1); 145 | lv_obj_set_width( ui_Panel5, 23); 146 | lv_obj_set_height( ui_Panel5, 18); 147 | lv_obj_set_x( ui_Panel5, 138 ); 148 | lv_obj_set_y( ui_Panel5, -23 ); 149 | lv_obj_set_align( ui_Panel5, LV_ALIGN_CENTER ); 150 | lv_obj_clear_flag( ui_Panel5, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 151 | lv_obj_set_style_radius(ui_Panel5, 2, LV_PART_MAIN| LV_STATE_DEFAULT); 152 | lv_obj_set_style_bg_color(ui_Panel5, lv_color_hex(0x0C4C72), LV_PART_MAIN | LV_STATE_DEFAULT ); 153 | lv_obj_set_style_bg_opa(ui_Panel5, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 154 | lv_obj_set_style_border_width(ui_Panel5, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 155 | 156 | ui_Label8 = lv_label_create(ui_Panel5); 157 | lv_obj_set_width( ui_Label8, LV_SIZE_CONTENT); /// 1 158 | lv_obj_set_height( ui_Label8, LV_SIZE_CONTENT); /// 1 159 | lv_obj_set_x( ui_Label8, -1 ); 160 | lv_obj_set_y( ui_Label8, 0 ); 161 | lv_obj_set_align( ui_Label8, LV_ALIGN_CENTER ); 162 | lv_label_set_text(ui_Label8,"WE"); 163 | lv_obj_set_style_text_font(ui_Label8, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 164 | 165 | ui_ioLBL = lv_label_create(ui_Screen1); 166 | lv_obj_set_width( ui_ioLBL, LV_SIZE_CONTENT); /// 1 167 | lv_obj_set_height( ui_ioLBL, LV_SIZE_CONTENT); /// 1 168 | lv_obj_set_x( ui_ioLBL, 172 ); 169 | lv_obj_set_y( ui_ioLBL, 33 ); 170 | lv_label_set_text(ui_ioLBL,"192.168.2.3"); 171 | lv_obj_set_style_text_color(ui_ioLBL, lv_color_hex(0x67B2C0), LV_PART_MAIN | LV_STATE_DEFAULT ); 172 | lv_obj_set_style_text_opa(ui_ioLBL, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 173 | 174 | ui_Label10 = lv_label_create(ui_Screen1); 175 | lv_obj_set_width( ui_Label10, LV_SIZE_CONTENT); /// 1 176 | lv_obj_set_height( ui_Label10, LV_SIZE_CONTENT); /// 1 177 | lv_obj_set_x( ui_Label10, 172 ); 178 | lv_obj_set_y( ui_Label10, 17 ); 179 | lv_label_set_text(ui_Label10,"VOLOS CLOCK"); 180 | lv_obj_set_style_text_color(ui_Label10, lv_color_hex(0xCD25D6), LV_PART_MAIN | LV_STATE_DEFAULT ); 181 | lv_obj_set_style_text_opa(ui_Label10, 250, LV_PART_MAIN| LV_STATE_DEFAULT); 182 | lv_obj_set_style_text_font(ui_Label10, &lv_font_montserrat_12, LV_PART_MAIN| LV_STATE_DEFAULT); 183 | 184 | ui_Panel7 = lv_obj_create(ui_Screen1); 185 | lv_obj_set_width( ui_Panel7, 23); 186 | lv_obj_set_height( ui_Panel7, 18); 187 | lv_obj_set_x( ui_Panel7, 138 ); 188 | lv_obj_set_y( ui_Panel7, 23 ); 189 | lv_obj_set_align( ui_Panel7, LV_ALIGN_CENTER ); 190 | lv_obj_clear_flag( ui_Panel7, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 191 | lv_obj_set_style_radius(ui_Panel7, 2, LV_PART_MAIN| LV_STATE_DEFAULT); 192 | lv_obj_set_style_bg_color(ui_Panel7, lv_color_hex(0x0C4C72), LV_PART_MAIN | LV_STATE_DEFAULT ); 193 | lv_obj_set_style_bg_opa(ui_Panel7, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 194 | lv_obj_set_style_border_width(ui_Panel7, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 195 | 196 | ui_Label11 = lv_label_create(ui_Panel7); 197 | lv_obj_set_width( ui_Label11, LV_SIZE_CONTENT); /// 1 198 | lv_obj_set_height( ui_Label11, LV_SIZE_CONTENT); /// 1 199 | lv_obj_set_x( ui_Label11, -1 ); 200 | lv_obj_set_y( ui_Label11, 0 ); 201 | lv_obj_set_align( ui_Label11, LV_ALIGN_CENTER ); 202 | lv_label_set_text(ui_Label11,"FR"); 203 | lv_obj_set_style_text_font(ui_Label11, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 204 | 205 | ui_Panel8 = lv_obj_create(ui_Screen1); 206 | lv_obj_set_width( ui_Panel8, 23); 207 | lv_obj_set_height( ui_Panel8, 18); 208 | lv_obj_set_x( ui_Panel8, 138 ); 209 | lv_obj_set_y( ui_Panel8, 46 ); 210 | lv_obj_set_align( ui_Panel8, LV_ALIGN_CENTER ); 211 | lv_obj_clear_flag( ui_Panel8, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 212 | lv_obj_set_style_radius(ui_Panel8, 2, LV_PART_MAIN| LV_STATE_DEFAULT); 213 | lv_obj_set_style_bg_color(ui_Panel8, lv_color_hex(0x9A11A2), LV_PART_MAIN | LV_STATE_DEFAULT ); 214 | lv_obj_set_style_bg_opa(ui_Panel8, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 215 | lv_obj_set_style_border_width(ui_Panel8, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 216 | 217 | ui_Label12 = lv_label_create(ui_Panel8); 218 | lv_obj_set_width( ui_Label12, LV_SIZE_CONTENT); /// 1 219 | lv_obj_set_height( ui_Label12, LV_SIZE_CONTENT); /// 1 220 | lv_obj_set_x( ui_Label12, -1 ); 221 | lv_obj_set_y( ui_Label12, 0 ); 222 | lv_obj_set_align( ui_Label12, LV_ALIGN_CENTER ); 223 | lv_label_set_text(ui_Label12,"SA"); 224 | lv_obj_set_style_text_font(ui_Label12, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 225 | 226 | ui_Panel9 = lv_obj_create(ui_Screen1); 227 | lv_obj_set_width( ui_Panel9, 23); 228 | lv_obj_set_height( ui_Panel9, 18); 229 | lv_obj_set_x( ui_Panel9, 138 ); 230 | lv_obj_set_y( ui_Panel9, 69 ); 231 | lv_obj_set_align( ui_Panel9, LV_ALIGN_CENTER ); 232 | lv_obj_clear_flag( ui_Panel9, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 233 | lv_obj_set_style_radius(ui_Panel9, 2, LV_PART_MAIN| LV_STATE_DEFAULT); 234 | lv_obj_set_style_bg_color(ui_Panel9, lv_color_hex(0x9A11A2), LV_PART_MAIN | LV_STATE_DEFAULT ); 235 | lv_obj_set_style_bg_opa(ui_Panel9, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 236 | lv_obj_set_style_border_width(ui_Panel9, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 237 | 238 | ui_Label13 = lv_label_create(ui_Panel9); 239 | lv_obj_set_width( ui_Label13, LV_SIZE_CONTENT); /// 1 240 | lv_obj_set_height( ui_Label13, LV_SIZE_CONTENT); /// 1 241 | lv_obj_set_x( ui_Label13, -1 ); 242 | lv_obj_set_y( ui_Label13, 0 ); 243 | lv_obj_set_align( ui_Label13, LV_ALIGN_CENTER ); 244 | lv_label_set_text(ui_Label13,"SU"); 245 | lv_obj_set_style_text_font(ui_Label13, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 246 | 247 | ui_Panel6 = lv_obj_create(ui_Screen1); 248 | lv_obj_set_width( ui_Panel6, 65); 249 | lv_obj_set_height( ui_Panel6, 18); 250 | lv_obj_set_x( ui_Panel6, -32 ); 251 | lv_obj_set_y( ui_Panel6, 50 ); 252 | lv_obj_set_align( ui_Panel6, LV_ALIGN_CENTER ); 253 | lv_obj_clear_flag( ui_Panel6, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 254 | lv_obj_set_style_radius(ui_Panel6, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 255 | lv_obj_set_style_bg_color(ui_Panel6, lv_color_hex(0x8E9E1B), LV_PART_MAIN | LV_STATE_DEFAULT ); 256 | lv_obj_set_style_bg_opa(ui_Panel6, 150, LV_PART_MAIN| LV_STATE_DEFAULT); 257 | lv_obj_set_style_border_width(ui_Panel6, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 258 | 259 | ui_Label14 = lv_label_create(ui_Panel6); 260 | lv_obj_set_width( ui_Label14, LV_SIZE_CONTENT); /// 1 261 | lv_obj_set_height( ui_Label14, LV_SIZE_CONTENT); /// 1 262 | lv_obj_set_align( ui_Label14, LV_ALIGN_CENTER ); 263 | lv_label_set_text(ui_Label14,"VOLOS"); 264 | 265 | ui_Panel10 = lv_obj_create(ui_Screen1); 266 | lv_obj_set_width( ui_Panel10, 65); 267 | lv_obj_set_height( ui_Panel10, 18); 268 | lv_obj_set_x( ui_Panel10, -32 ); 269 | lv_obj_set_y( ui_Panel10, 72 ); 270 | lv_obj_set_align( ui_Panel10, LV_ALIGN_CENTER ); 271 | lv_obj_clear_flag( ui_Panel10, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 272 | lv_obj_set_style_radius(ui_Panel10, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 273 | lv_obj_set_style_bg_color(ui_Panel10, lv_color_hex(0x8E9E1B), LV_PART_MAIN | LV_STATE_DEFAULT ); 274 | lv_obj_set_style_bg_opa(ui_Panel10, 150, LV_PART_MAIN| LV_STATE_DEFAULT); 275 | lv_obj_set_style_border_width(ui_Panel10, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 276 | 277 | ui_Label4 = lv_label_create(ui_Panel10); 278 | lv_obj_set_width( ui_Label4, LV_SIZE_CONTENT); /// 1 279 | lv_obj_set_height( ui_Label4, LV_SIZE_CONTENT); /// 1 280 | lv_obj_set_align( ui_Label4, LV_ALIGN_CENTER ); 281 | lv_label_set_text(ui_Label4,"PROJECTS"); 282 | lv_obj_set_style_text_font(ui_Label4, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 283 | 284 | ui_yearLBL = lv_label_create(ui_Screen1); 285 | lv_obj_set_width( ui_yearLBL, LV_SIZE_CONTENT); /// 1 286 | lv_obj_set_height( ui_yearLBL, LV_SIZE_CONTENT); /// 1 287 | lv_obj_set_x( ui_yearLBL, -32 ); 288 | lv_obj_set_y( ui_yearLBL, 18 ); 289 | lv_obj_set_align( ui_yearLBL, LV_ALIGN_CENTER ); 290 | lv_label_set_text(ui_yearLBL,"2025"); 291 | lv_obj_set_style_text_color(ui_yearLBL, lv_color_hex(0xCACACA), LV_PART_MAIN | LV_STATE_DEFAULT ); 292 | lv_obj_set_style_text_opa(ui_yearLBL, 160, LV_PART_MAIN| LV_STATE_DEFAULT); 293 | lv_obj_set_style_text_font(ui_yearLBL, &lv_font_montserrat_26, LV_PART_MAIN| LV_STATE_DEFAULT); 294 | 295 | ui_dayPNL = lv_obj_create(ui_Screen1); 296 | lv_obj_set_width( ui_dayPNL, 6); 297 | lv_obj_set_height( ui_dayPNL, 18); 298 | lv_obj_set_x( ui_dayPNL, 122 ); 299 | lv_obj_set_y( ui_dayPNL, -69 ); 300 | lv_obj_set_align( ui_dayPNL, LV_ALIGN_CENTER ); 301 | lv_obj_clear_flag( ui_dayPNL, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 302 | lv_obj_set_style_radius(ui_dayPNL, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 303 | lv_obj_set_style_bg_color(ui_dayPNL, lv_color_hex(0x96AA10), LV_PART_MAIN | LV_STATE_DEFAULT ); 304 | lv_obj_set_style_bg_opa(ui_dayPNL, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 305 | lv_obj_set_style_border_width(ui_dayPNL, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 306 | 307 | ui_Panel11 = lv_obj_create(ui_Screen1); 308 | lv_obj_set_width( ui_Panel11, 87); 309 | lv_obj_set_height( ui_Panel11, 5); 310 | lv_obj_set_x( ui_Panel11, -42 ); 311 | lv_obj_set_y( ui_Panel11, 1 ); 312 | lv_obj_set_align( ui_Panel11, LV_ALIGN_CENTER ); 313 | lv_obj_clear_flag( ui_Panel11, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 314 | lv_obj_set_style_radius(ui_Panel11, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 315 | lv_obj_set_style_bg_color(ui_Panel11, lv_color_hex(0x0B2B34), LV_PART_MAIN | LV_STATE_DEFAULT ); 316 | lv_obj_set_style_bg_opa(ui_Panel11, 255, LV_PART_MAIN| LV_STATE_DEFAULT); 317 | lv_obj_set_style_border_width(ui_Panel11, 0, LV_PART_MAIN| LV_STATE_DEFAULT); 318 | 319 | ui_Label1 = lv_label_create(ui_Screen1); 320 | lv_obj_set_width( ui_Label1, LV_SIZE_CONTENT); /// 1 321 | lv_obj_set_height( ui_Label1, LV_SIZE_CONTENT); /// 1 322 | lv_obj_set_x( ui_Label1, 29 ); 323 | lv_obj_set_y( ui_Label1, 4 ); 324 | lv_label_set_text(ui_Label1,"Merry Christmass!!"); 325 | lv_obj_set_style_text_color(ui_Label1, lv_color_hex(0x6B5A6D), LV_PART_MAIN | LV_STATE_DEFAULT ); 326 | lv_obj_set_style_text_opa(ui_Label1, 250, LV_PART_MAIN| LV_STATE_DEFAULT); 327 | lv_obj_set_style_text_font(ui_Label1, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 328 | 329 | ui_Image1 = lv_img_create(ui_Screen1); 330 | lv_img_set_src(ui_Image1, &ui_img_1699707072); 331 | lv_obj_set_width( ui_Image1, LV_SIZE_CONTENT); /// 16 332 | lv_obj_set_height( ui_Image1, LV_SIZE_CONTENT); /// 16 333 | lv_obj_set_x( ui_Image1, 14 ); 334 | lv_obj_set_y( ui_Image1, 73 ); 335 | lv_obj_set_align( ui_Image1, LV_ALIGN_CENTER ); 336 | lv_obj_add_flag( ui_Image1, LV_OBJ_FLAG_ADV_HITTEST ); /// Flags 337 | lv_obj_clear_flag( ui_Image1, LV_OBJ_FLAG_SCROLLABLE ); /// Flags 338 | 339 | ui_secHEX = lv_label_create(ui_Screen1); 340 | lv_obj_set_width( ui_secHEX, LV_SIZE_CONTENT); /// 1 341 | lv_obj_set_height( ui_secHEX, LV_SIZE_CONTENT); /// 1 342 | lv_obj_set_x( ui_secHEX, -47 ); 343 | lv_obj_set_y( ui_secHEX, 61 ); 344 | lv_obj_set_align( ui_secHEX, LV_ALIGN_TOP_RIGHT ); 345 | lv_label_set_text(ui_secHEX,"0"); 346 | lv_obj_set_style_text_color(ui_secHEX, lv_color_hex(0x6B5A6D), LV_PART_MAIN | LV_STATE_DEFAULT ); 347 | lv_obj_set_style_text_opa(ui_secHEX, 250, LV_PART_MAIN| LV_STATE_DEFAULT); 348 | lv_obj_set_style_text_font(ui_secHEX, &lv_font_montserrat_10, LV_PART_MAIN| LV_STATE_DEFAULT); 349 | 350 | } 351 | -------------------------------------------------------------------------------- /C6example/SquareLine_Project.sll: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SquareLine_Project.spj", 3 | "depth": 1, 4 | "width": 320, 5 | "height": 172, 6 | "rotation": 0, 7 | "offset_x": 0, 8 | "offset_y": 0, 9 | "shape": "RECTANGLE", 10 | "multilang": "DISABLE", 11 | "description": "", 12 | "board": "Arduino with TFT_eSPI", 13 | "board_version": "v1.1.2", 14 | "editor_version": "1.4.1", 15 | "image": "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", 16 | "force_export_images": false, 17 | "flat_export": true, 18 | "advanced_alpha": false, 19 | "pointfilter": false, 20 | "theme_simplified": false, 21 | "theme_dark": true, 22 | "theme_color1": 5, 23 | "theme_color2": 0, 24 | "uiExportFolderPath": "C:\\Users\\danko\\Desktop\\ESP32-C6-LCD-1.47-Demo\\Arduino\\examples\\newB\\UI", 25 | "projectExportFolderPath": "", 26 | "backup_cnt": 130, 27 | "autosave_cnt": 0, 28 | "lvgl_version": "8.3.11", 29 | "callfuncsexport": "C_FILE", 30 | "imageexport": "SOURCE", 31 | "lvgl_include_path": "", 32 | "drive_stdio": "-", 33 | "drive_stdio_path": "", 34 | "drive_posix": "-", 35 | "drive_posix_path": "", 36 | "drive_win32": "-", 37 | "drive_win32_path": "", 38 | "drive_fatfs": "-", 39 | "drive_fatfs_path": "", 40 | "naming": "Name", 41 | "naming_force_lowercase": false 42 | } --------------------------------------------------------------------------------