Browse Source

Изменил главный экран по требованию заказчика. Добавил заставку на 2с.

unknown 3 weeks ago
parent
commit
a11360e074

+ 5 - 0
desk/modules/menu/menu.cpp

@@ -1,6 +1,7 @@
 #include "stm32g4xx_hal.h"
 #include "cmsis_os.h"
 #include "menu_tree.h"
+#include "menu_items.h"
 #include "control.h"
 #include "uart_bridge.h"
 #include <stdio.h>
@@ -42,6 +43,10 @@ void menu_init(void)
     osThreadDef(menu_up_thr, vUpdate, osPriorityNormal, 0, 4*configMINIMAL_STACK_SIZE);
     menu_update_handle = osThreadCreate(osThread(menu_up_thr), NULL);
     
+    // Заставка
+    draw_screensaver();
+    osDelay(2000);
+    
     // Начальный экран
     selectedMenuItem = (menuItem *) &m_main;
     (*(selectedMenuItem->func_draw))(selectedMenuItem->Select);

+ 20 - 5
desk/modules/menu/menu_items.cpp

@@ -87,6 +87,13 @@ void menuFocus(void)
 // -------------------------------------------------------------------------- //    
 // Отрисовка
 
+// Заставка
+void draw_screensaver(void)
+{
+    Paint_DrawString_EN(25, 52, "TUBOT", &Font24, 0xf, 0x0);
+    oled_display();
+}
+
 // Главное меню. Отрисовка.
 void draw_main(uint8_t sel)
 {
@@ -185,20 +192,28 @@ static void screen_draw_main(uint8_t sel)
     oled_clear(BLACK);
     
     // Скругленная рамка и логотип
-    //GFX_DrawRoundRectangle(0, 0, 127, 127, 5, 15);  
+#if 0    
+    GFX_DrawRoundRectangle(0, 0, 127, 127, 5, 15);  
     Paint_DrawString_EN(50, 120, "Fly Electronics", &Font8, 0xf, 0x0);
+#endif    
     
     // Total
     //memset(screen_str_buf, 0, SCREEN_BUF_LEN);
     //oled_float_right_aligment(distance, 7, screen_str_buf);
-    Paint_DrawString_EN(1, 36, "Distance (m):", &Font12, 0xf, 0x0);
+    Paint_DrawString_EN(1, 30, "Distance (m):", &Font12, 0xf, 0x0);
     
+    memset(screen_str_buf, 0, SCREEN_BUF_LEN);
+    GFX_SetFont(font_8x5);
+    GFX_SetFontSize(4);
+    oled_float_symbol_formated(distance, screen_str_buf);
+    GFX_DrawString(4, 64, screen_str_buf, 15, 0);
+
+        
+#if 0    
     memset(screen_str_buf, 0, SCREEN_BUF_LEN);
     oled_float_right_aligment(distance, 7, screen_str_buf);
     Paint_DrawString_EN(4, 52, screen_str_buf, &Font24, 0xf, 0x0);
-
-    // void GFX_Image(int x, int y, const uint8_t *img, uint8_t w, uint8_t h)
-    GFX_Image(0, 0, (const uint8_t *)pict_gear[0], 32, 32);
+#endif    
     
 #if 0        
     // Основнаая рамка

+ 10 - 8
desk/modules/menu/menu_items.h

@@ -1,8 +1,10 @@
-#ifndef __MENU_ITEMS_H
-#define __MENU_ITEMS_H
-
-
-
-
-#endif  // __MENU_ITEMS_H
-
+#ifndef __MENU_ITEMS_H
+#define __MENU_ITEMS_H
+
+
+//
+void draw_screensaver(void);
+
+
+#endif  // __MENU_ITEMS_H
+

+ 15 - 0
desk/modules/ssd_1327/oled_common.cpp

@@ -531,6 +531,21 @@ void oled_float_right_aligment(float value, uint8_t char_num, char *out)
     strcat(out, buf);
 }
 
+//
+void oled_float_symbol_formated(float value, char *out)
+{
+    char buf[20];
+    
+    memset(buf, 0, 20);
+    if (value < 0) {
+        sprintf(buf, "%0*.1f", 6, value);
+    }
+    else {
+        sprintf(buf, "%0*.1f", 5, value);
+    }
+    strcpy(out, buf);
+}
+
 //
 void test_oled_old(void)
 {

+ 3 - 0
desk/modules/ssd_1327/oled_common.h

@@ -78,6 +78,9 @@ void oled_int_right_alignment_post(int value, uint8_t char_num, char *postfix, c
 //
 void oled_float_right_aligment(float value, uint8_t char_num, char *out);
 
+//
+void oled_float_symbol_formated(float value, char *out);
+
 //
 void oled_draw_rec(int x_start, int y_start, int x_end, int y_end, uint8_t color);
 

BIN
output/desk.bin


File diff suppressed because it is too large
+ 2 - 5
project/ewarm/settings/tuber.wsdt


Some files were not shown because too many files changed in this diff