mirror of
https://github.com/justcallmekoko/ESP32Marauder.git
synced 2025-12-22 23:26:45 -08:00
Add status bar
This commit is contained in:
BIN
3Dfiles/ESP32 Marauder V6 Backplate_external.stl
Normal file
BIN
3Dfiles/ESP32 Marauder V6 Backplate_external.stl
Normal file
Binary file not shown.
BIN
3Dfiles/ESP32 Marauder V6 Backplate_internal.stl
Normal file
BIN
3Dfiles/ESP32 Marauder V6 Backplate_internal.stl
Normal file
Binary file not shown.
@@ -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}
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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...");
|
||||
|
||||
@@ -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
Normal file
BIN
pictures/icons/battery_16.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
BIN
pictures/icons/sd_16.bmp
Normal file
BIN
pictures/icons/sd_16.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
6
pictures/xbm/battery_16.XBM
Normal file
6
pictures/xbm/battery_16.XBM
Normal file
@@ -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
pictures/xbm/sd_16.XBM
Normal file
6
pictures/xbm/sd_16.XBM
Normal file
@@ -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, };
|
||||
Reference in New Issue
Block a user