Just Call Me Koko vor 5 Jahren
Ursprung
Commit
bf9baee37b

BIN
3Dfiles/ESP32 Marauder V6 Backplate_external.stl


BIN
3Dfiles/ESP32 Marauder V6 Backplate_internal.stl


+ 7 - 1
esp32_marauder/Assets.h

@@ -135,7 +135,13 @@ PROGMEM static const unsigned char menu_icons[][66] = {
     0xFF, 0xCF, 0x3D, 0xFF, 0xE7, 0x3F, 0xFF, 0xF3, 0x3F, 0xCF, 0xF9, 0x3F, 
     0xB7, 0xFC, 0x3F, 0x77, 0xFE, 0x3F, 0xF7, 0xFE, 0x3F, 0xEF, 0xFD, 0x3F, 
     0xDF, 0xFB, 0x3F, 0xBF, 0xFB, 0x3F, 0x7F, 0xFC, 0x3F, 0xFF, 0xFF, 0x3F, 
-    0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F}
+    0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F},
+    {0xFF, 0xFF, 0x3F, 0xFC, 0x9F, 0xF9, 0xDF, 0xFB, 0xDF, 0xFB, 0x1F, 0xF8, // Battery: 22
+    0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 
+    0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0xFF, 0xFF},
+    {0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFC, 0x07, 0xF8, 0x07, 0xF0, 0x07, 0xE0, // SD: 23
+    0x67, 0xE7, 0x97, 0xE9, 0x17, 0xE9, 0x67, 0xE9, 0x87, 0xE9, 0x97, 0xE9, 
+    0x67, 0xE7, 0x07, 0xE0, 0x07, 0xE0, 0xFF, 0xFF}
     };
 
 

+ 2 - 2
esp32_marauder/Display.cpp

@@ -646,12 +646,12 @@ void Display::updateBanner(String msg)
 
   this->buildBanner(msg, current_banner_pos);
 
-  this->img.pushSprite(0, 0);
+  this->img.pushSprite(0, STATUS_BAR_WIDTH);
 
   current_banner_pos--;
 
   if (current_banner_pos <= 0)
-    current_banner_pos = SCREEN_WIDTH;
+    current_banner_pos = SCREEN_WIDTH + 2;
 }
 
 

+ 6 - 3
esp32_marauder/Display.h

@@ -13,8 +13,8 @@
 
 #include <TFT_eSPI.h>
 
-//#define TFT_SHIELD
-#define TFT_DIY
+#define TFT_SHIELD
+//#define TFT_DIY
 
 #define SCREEN_WIDTH 240
 #define SCREEN_HEIGHT 320
@@ -32,6 +32,9 @@
 //#define MENU_FONT &FreeSans9pt7b
 //#define MENU_FONT &FreeSansBold9pt7b
 #define BUTTON_ARRAY_LEN 7
+#define STATUS_BAR_WIDTH 16
+
+#define STATUSBAR_COLOR 0x4A49
 
 
 class Display
@@ -56,7 +59,7 @@ class Display
     TFT_eSPI tft = TFT_eSPI();
     TFT_eSprite img = TFT_eSprite(&tft);
     TFT_eSPI_Button key[BUTTON_ARRAY_LEN];
-    String version_number = "v0.6.4";
+    String version_number = "v0.6.5";
 
     bool printing = false;
     bool loading = false;

+ 44 - 0
esp32_marauder/MenuFunctions.cpp

@@ -17,6 +17,10 @@ void MenuFunctions::main()
       this->orientDisplay();
       wifi_scan_obj.orient_display = false;
     }
+    if ((display_obj.current_banner_pos <= 0) || (display_obj.current_banner_pos == SCREEN_WIDTH))
+    {
+      this->drawStatusBar();
+    }
     display_obj.updateBanner(current_menu->name);
   }
 
@@ -143,6 +147,45 @@ void MenuFunctions::main()
   y = -1;
 }
 
+void MenuFunctions::drawStatusBar()
+{
+  display_obj.tft.fillRect(0, 0, 240, STATUS_BAR_WIDTH, STATUSBAR_COLOR);
+  //display_obj.tft.fillRect(0, STATUS_BAR_WIDTH + 1, 240, 1, TFT_DARKGREY);
+  display_obj.tft.setTextColor(TFT_WHITE, STATUSBAR_COLOR);
+  //display_obj.tft.setTextSize(2);
+
+  uint16_t the_color;
+
+  if ((String)battery_obj.battery_level != "25")
+    the_color = TFT_GREEN;
+  else
+    the_color = TFT_RED;
+  
+  display_obj.tft.setCursor(0, 1);
+  display_obj.tft.drawXBitmap(186, 
+                              0, 
+                              menu_icons[STATUS_BAT], 
+                              16, 
+                              16, 
+                              STATUSBAR_COLOR, 
+                              the_color);
+  display_obj.tft.drawString((String)battery_obj.battery_level + "%", 200, 1, 2);
+
+  if (sd_obj.supported)
+    the_color = TFT_GREEN;
+  else
+    the_color = TFT_RED;
+
+  display_obj.tft.drawXBitmap(170, 
+                              0, 
+                              menu_icons[STATUS_SD], 
+                              16, 
+                              16, 
+                              STATUSBAR_COLOR, 
+                              the_color);
+  //display_obj.tft.print((String)battery_obj.battery_level + "%");
+}
+
 void MenuFunctions::orientDisplay()
 {
   display_obj.tft.init();
@@ -382,6 +425,7 @@ void MenuFunctions::displayCurrentMenu()
   Serial.println("Displaying current menu...");
   display_obj.clearScreen();
   display_obj.tft.setTextColor(TFT_LIGHTGREY, TFT_DARKGREY);
+  this->drawStatusBar();
   //display_obj.tft.fillRect(0,0,240,16, TFT_DARKGREY);
   //display_obj.tft.drawCentreString(" ESP32 Marauder ",120,0,2);
   //Serial.println("Getting size...");

+ 7 - 0
esp32_marauder/MenuFunctions.h

@@ -3,11 +3,15 @@
 
 #include "WiFiScan.h"
 #include "Display.h"
+#include "BatteryInterface.h"
+#include "SDInterface.h"
 #include "Web.h"
 
 extern Display display_obj;
 extern WiFiScan wifi_scan_obj;
 extern Web web_obj;
+extern SDInterface sd_obj;
+extern BatteryInterface battery_obj;
 
 // Keypad start position, key sizes and spacing
 #define KEY_X 120 // Centre of key
@@ -47,6 +51,8 @@ extern Web web_obj;
 #define SD_UPDATE 19
 #define WEB_UPDATE 20
 #define EAPOL 21
+#define STATUS_BAT 22
+#define STATUS_SD 23
 
 struct Menu;
 
@@ -107,6 +113,7 @@ class MenuFunctions
     //TFT_eSPI_Button key[BUTTON_ARRAY_LEN];
     
     void addNodes(Menu* menu, String name, uint16_t color, Menu* child, int place, std::function<void()> callable);
+    void drawStatusBar();
     void showMenuList(Menu* menu, int layer);
     void orientDisplay();
 

BIN
pictures/icons/battery_16.bmp


BIN
pictures/icons/sd_16.bmp


+ 6 - 0
pictures/xbm/battery_16.XBM

@@ -0,0 +1,6 @@
+#define 1589480361777_width 16
+#define 1589480361777_height 16
+static char 1589480361777_bits[] = {
+  0xFF, 0xFF, 0x3F, 0xFC, 0x9F, 0xF9, 0xDF, 0xFB, 0xDF, 0xFB, 0x1F, 0xF8, 
+  0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 
+  0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0xFF, 0xFF, };

+ 6 - 0
pictures/xbm/sd_16.XBM

@@ -0,0 +1,6 @@
+#define 1589480446253_width 16
+#define 1589480446253_height 16
+static char 1589480446253_bits[] = {
+  0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFC, 0x07, 0xF8, 0x07, 0xF0, 0x07, 0xE0, 
+  0x67, 0xE7, 0x97, 0xE9, 0x17, 0xE9, 0x67, 0xE9, 0x87, 0xE9, 0x97, 0xE9, 
+  0x67, 0xE7, 0x07, 0xE0, 0x07, 0xE0, 0xFF, 0xFF, };