@@ -12,19 +12,77 @@ static unsigned long millisActual = 0; /**< Current value of the system timer in
1212extern Maps mapView;
1313extern Gps gps;
1414
15+ /* *
16+ * @brief Create LVGL Splash Screen
17+ *
18+ * @details Creates the LVGL splash screen object and canvas.
19+ */
20+ void createLVGLSplashScreen ()
21+ {
22+ splashScr = lv_obj_create (NULL );
23+ splashCanvas = lv_canvas_create (splashScr);
24+
25+ lv_obj_t *osmInfo = lv_obj_create (splashScr);
26+ lv_obj_set_width (osmInfo, tft.width ());
27+ lv_obj_set_height (osmInfo,50 * scale);
28+ lv_obj_clear_flag (osmInfo, LV_OBJ_FLAG_SCROLLABLE);
29+ lv_obj_set_flex_flow (osmInfo, LV_FLEX_FLOW_COLUMN);
30+ lv_obj_set_flex_align (osmInfo, LV_FLEX_ALIGN_SPACE_AROUND, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
31+ lv_obj_set_style_bg_opa (osmInfo, 0 , 0 );
32+ lv_obj_set_style_border_opa (osmInfo, 0 , 0 );
33+ lv_obj_t *label;
34+ label = lv_label_create (osmInfo);
35+ lv_obj_set_style_text_font (label, &lv_font_montserrat_12, 0 );
36+ lv_label_set_text (label, " Map data from OpenStreetMap - (c)OpenStreetMap" );
37+ label = lv_label_create (osmInfo);
38+ lv_obj_set_style_text_font (label, &lv_font_montserrat_12, 0 );
39+ lv_label_set_text (label, " (c)OpenStreetMap contributors" );
40+ lv_obj_set_align (osmInfo, LV_ALIGN_BOTTOM_MID);
41+ label = lv_label_create (splashScr);
42+ lv_obj_set_style_text_font (label, &lv_font_montserrat_18, 0 );
43+ lv_label_set_text_fmt (label,statusLine4, String (VERSION).c_str (), String (REVISION).c_str ());
44+ lv_obj_set_align (label, LV_ALIGN_CENTER);
45+ lv_obj_set_y (label, -130 * scale);
46+ }
47+
1548/* *
1649 * @brief Splash screen
1750 *
1851 * @details Displays the splash screen with logo, device information, Preloads the map and initializes display settings.
1952 */
2053void splashScreen ()
2154{
55+ setTime = false ;
56+
2257 // Preload Map
2358 mapView.currentMapTile = mapView.getMapTile (gps.gpsData .longitude , gps.gpsData .latitude , zoom, 0 , 0 );
2459 mapView.generateMap (zoom);
2560
26- setTime = false ;
61+ #ifdef ICENAV_BOARD
62+ millisActual = millis ();
63+
64+ tft.setBrightness (defBright);
2765
66+ TFT_eSprite splashSprite = TFT_eSprite (&tft);
67+ void *splashBuffer = splashSprite.createSprite (tft.width (), tft.height ());
68+ splashSprite.drawPngFile (logoFile, 0 , 0 );
69+ lv_canvas_set_buffer (splashCanvas, splashBuffer, tft.width (), tft.height (), LV_COLOR_FORMAT_RGB565_SWAPPED);
70+ splashSprite.deleteSprite ();
71+
72+ lv_screen_load_anim (splashScr, LV_SCR_LOAD_ANIM_FADE_OUT, 2500 , 0 , false );
73+ for ( int i=0 ; i < 1000 ; i++ )
74+ {
75+ lv_task_handler ();
76+ vTaskDelay (5 );
77+ }
78+ lv_obj_fade_out (splashScr, 2500 ,0 );
79+ for ( int i=0 ; i < 300 ; i++ )
80+ {
81+ lv_task_handler ();
82+ vTaskDelay (5 );
83+ }
84+ lv_obj_delete (splashScr);
85+ #else
2886 tft.fillScreen (TFT_BLACK);
2987 millisActual = millis ();
3088 tft.setBrightness (0 );
@@ -78,6 +136,7 @@ void splashScreen()
78136 }
79137
80138 millisActual = millis ();
139+
81140 while (millis () < millisActual + 100 );
82141
83142 for (uint8_t fadeOut = maxBrightness; fadeOut > 0 ; fadeOut--)
@@ -92,4 +151,5 @@ void splashScreen()
92151 while (millis () < millisActual + 100 );
93152
94153 tft.setBrightness (defBright);
154+ #endif
95155}
0 commit comments